【问题标题】:Union of two (irregular) Context Free Language results a Regular Language?两个(不规则)上下文无关语言的联合结果是规则语言?
【发布时间】:2014-02-08 11:34:15
【问题描述】:

给定 L1 和 L2(不规则)上下文无关语言 - L1 U L2 是否可能是规则的?

我知道这是可能的,但我找不到一个例子来证明这一点。希望得到一些帮助。

【问题讨论】:

  • 顺便说一句,L1 U L2 表示联合,而不是交集。

标签: regular-language formal-languages context-free-language


【解决方案1】:

两个 CFL 的并集可以是正则吗?

鉴于L<sub>1</sub>L<sub>2</sub> 上下文无关(但不是常规)语言,L<sub>1</sub> ∪ L<sub>2</sub> 的联合有可能是常规的吗?

可以!

假设,第一语言 L1 是:

L1 : { a<sup>n</sup>b<sup>m</sup> |其中n = m}

Language L1 是 CFL 但不是常规语言。 L1 语言的另一种写法是a<sup>n</sup>b<sup>n</sup>。我认为这是在任何正式语言教科书中都可以找到的 CFL 最狡猾的例子之一。

第二语言L2是:

L2 : { a<sup>n</sup>b<sup>m</sup> | n ≠ m }

L2 再次是 CFL,但不是常规的。 基本上L2是L1的补语。

现在,L1 和 L2 的并集是:

L : { a<sup>n</sup>b<sup>m</sup> | nm 的值没有限制}

语言L = L<sub>1</sub> ∪ L<sub>2</sub> 是正则语言,L 的正则表达式是a*b*

所以提示是补码 CFL 的并集是规则的。

注意:Context-free languages are closed under union operation,因此两个 CFL 的并集始终是 CFL(可以是正则的,因为常规语言类是 CFL 类的子集),但它不能是非 CFL,例如中超。

在cmets的基础上添加:

两个 CFL 的交集可以是规则的吗?

给定 L<sub>1</sub>L<sub>2</sub> 上下文无关(但不是常规)语言,L<sub>1</sub> ∩ L<sub>2</sub> 的交集是否可能是常规语言?

可以!

假设,第一语言 L1 是:

L1 : { a<sup>n</sup>b<sup>m</sup> |其中n = m}

第二语言L2是:

L2 : { a<sup>n</sup>b<sup>m</sup> |其中n &lt;= 3 or n ≠ m}

语言L = L<sub>1</sub> ∩ L<sub>2</sub> = {ab, aabb, aaabbb}a finite set and hence also a regular set

【讨论】:

  • 顺便说一句,路口呢?
  • @Rouki Intersection 总是对语言再生规则施加更多限制,因此两个 CFL 的交集可能甚至不是 CFL。请记住,常规语言的限制较少,限制从 rl -> cfl -> csl 开始增加。
  • 那么,是否不可能找到 2 个 CFL 的交集是正则语言的示例?
  • @Rouki 是的可能!假设 L1{a^nb^m where (n &lt; 3 or m != n)} 是 CFL(但不是常规)并且 L2{a^nb^m where (n == m)} 现在是 CFL(不是常规),L1 ∩ L2 b> = {ab, aabb, aaabbb}a finite set hence Regular too¯\_(ツ)_/¯
  • @Rouki 阅读更新的答案,l1 和 l2 不是补充语言。
猜你喜欢
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2014-02-20
  • 2021-12-11
  • 1970-01-01
  • 2012-03-14
相关资源
最近更新 更多