【问题标题】:Trying to prove that the complement of {a^i b^i c^i} is a context-free试图证明 {a^i b^i c^i} 的补集是上下文无关的
【发布时间】:2016-11-14 01:35:27
【问题描述】:

我试图证明 L= {a^i b^i c^i : i >= 1} 的补码是无上下文的。 L 补码是: {w is a word over {a,b,c}* : w not in L}。

众所周知,上下文无关语言在联合下是封闭的。所以,我试图将我的语言({a^i b^i c^i} 的补码)划分为上下文无关的子集,其中它们的联合必须是上下文无关的。谁能帮我找到子集?每次我尝试,我都会得到 L*!

谢谢。

【问题讨论】:

    标签: subset context-free-grammar context-free-language


    【解决方案1】:

    注意:在下文中,我省略了L不包含空字符串的约束,但只需要稍作调整即可。


    考虑a<sup>i</sup>b<sup>j</sup>c<sup>k</sup>

    如果i=jj=k 那么你有a<sup>i</sup>b<sup>i</sup>c<sup>i</sup>。相反,如果i≠jj≠k,那么你有a<sup>i</sup>b<sup>i</sup>c<sup>i</sup> 的补码。

    换句话说, <pre>L = { a<sup>i</sup>b<sup>j</sup>c<sup>k</sup> | i=j } ∩ { a<sup>i</sup>b<sup>j</sup>c<sup>k</sup> | j=k }</pre><pre>L' = { a<sup>i</sup>b<sup>j</sup>c<sup>k</sup> | i≠j } ∪ { a<sup>i</sup>b<sup>j</sup>c<sup>k</sup> | j≠k }</pre> 很容易证明上述方程中的每个子集都是上下文无关的。正如您所说,上下文无关语言在联合下是封闭的,但它们在交集下不是封闭的;因此,L' 是上下文无关的,即使 L 不是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2023-03-09
      • 2021-04-09
      • 2011-01-21
      • 2014-12-29
      • 1970-01-01
      • 2019-04-14
      相关资源
      最近更新 更多