给定L1和L2(不规则)上下文无关语言 - L1 U L2是否可能是常规的?
我知道这是可能的,但我无法找到一个显示的例子。很想得到一些帮助。
答案 0 :(得分:7)
鉴于
L1
和L2
无上下文(但不是常规)语言,两个L1 ∪ L2
的联合是否可能是常规的?
是的可能!
假设,第一语言L 1 是:
L 1 :{
anbm
|其中n = m
}
语言L 1 是CFL但不是常规。编写L 1 语言的另一种方法是anbn
。我认为这是CFL最常见的例子之一,可以在任何正式语言教科书中找到。
第二语言L 2 是:
L 2 :{
anbm
|其中n ≠ m
}
L 2 再次是CFL但不是常规。 基本上L 2 是L 1 的补语。
现在,L 1 和L 2 的联合是:
L:{
没有限制anbm
|对n
和m
值}
语言L
= L1 ∪ L2
是常规语言,L
的正则表达式为a*b*
。
所以暗示是补充CFL的联合是常规的。
注意:Context-free languages are closed under union operation,因此两个CFL的并集始终是CFL(可以是常规语言类是CFL类的子集),但它不能是非CFL,例如CSL。
根据评论添加:
鉴于
L1
和L2
无上下文(但不是常规)语言,两个L1 ∩ L2
的交集是否可能是常规的?
是的可能!
假设,第一语言L 1 是:
L 1 :{
anbm
|其中n = m
}
第二语言L 2 是:
L 2 :{
anbm
|其中n <= 3 or n ≠ m
}
语言L
= L1 ∩ L2
= {ab, aabb, aaabbb}
为a finite set and hence also a regular set。