【问题标题】:Context Free Language Question (Pumping Lemma)上下文无关语言问题(Pumping Lemma)
【发布时间】:2010-04-08 02:12:02
【问题描述】:

我知道这与编程没有直接关系,但我想知道是否有人知道如何将泵引理应用于以下证明:

证明 L={(a^n)(b^n)(c^m) : n!=m} 不是上下文无关语言

我对应用抽引引理很有信心,但是这个真的让我很恼火。你怎么看?

【问题讨论】:

  • 我想说这是数学和 CS 理论重叠的领域之一。
  • @Jonathan:这个问题通常会在 CS 课上讨论,而不是在数学课上。不过,这是一个模糊的区域。我肯定会把它归类为“程序员感兴趣的”。
  • @Jonathan:这绝对不是 mathoverflow.net 的问题。这一结果在本科 CS 中被广泛教授; mathoverflow 用于研究级数学。
  • @Charles 和@Dietrich:在 mathoverflow.net mathoverflow.net/questions/tagged/computer-science 上有一个计算机科学标签。认为那将是问这个问题的好地方。我的道歉!!!!!!

标签: theory automata proof language-theory


【解决方案1】:

编辑:我完全把你引到了错误的轨道上。当我自己还没有完全解决问题时,当我试图提供帮助时,就会发生这种情况。

奥格登引理

假设 L 是上下文无关的。根据奥格登引理,存在一个整数 p,它具有以下性质:

给定 L 中至少 p 个符号长的字符串 w,其中至少有 p 个符号被“标记”,w 可以表示为 uvxyz,它满足:

  1. x 至少有一个标记符号,
  2. u 和 v 都有标记符号,或者 y 和 z 都有标记符号,
  3. vxy 最多有 p 个标记符号,并且
  4. u vi x yi z 在 L for i >= 0

这是奥格登引理。现在,让 q 是一个整数,它可以被不大于 p 的每个正整数整除。令 w = ap+q bp+q cp。标记每个 c。通过#2,u 或v 必须至少包含一个c。如果 u 或 v 包含任何其他符号,则 #4 失败,因此 u 和 v 必须仅包含 c。但是当 i = q/|uv| 时,#4 失败。我们知道 q 可以被 |uv| 整除因为 p > |uv| > 0,并且 q 可以被所有小于 p 的正整数整除。

请注意,当您标记所有符号时,Ogden 引理会变成抽水引理。

抽引引理

假设 L 是上下文无关的。通过抽水引理,有一个长度 p(不一定与上面的 p 相同),使得 L 中的任何字符串 w 都可以表示为 uvxyz,其中

  1. |vxy|
  2. |vy| >= 1,并且
  3. u vi x yi z 在 L 中,因为 i >= 0。

给定 L 中的字符串 w,m > n 或 m

假设 m > n。 (注意Λ表示空字符串。)

  • 令 u = an bn cm-1
  • 令 v = c
  • 令 x = Λ
  • 令 y = Λ
  • 令 z = Λ

假设 n > m。

  • 令 u = an-1
  • 令 v = a
  • 令 x = Λ
  • 令 y = b
  • 令 z = bn-1 cm

这表明 L 中的任何字符串都没有提供使用泵引理来假设 L 是上下文无关语言(即使它是上下文敏感的)的反例。

【讨论】:

  • 我不遵循...虽然这会阻止抽出的选择包括所有 3 个字符,但它不会阻止选定的抽出部分成为所有 C,这必然会被抽成等于 n
  • 对不起,我查错了引理。我相信这需要奥格登引理,它更强。固定。
  • '需要奥格登引理',因为它不能用抽水引理证明?
  • 我用奥格登引理提出了我的证明。很抱歉之前没有帮助的提示。
  • 所以奥格登引理是唯一的选择?非常感谢您的见解!
猜你喜欢
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 2011-07-03
  • 2018-03-29
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
相关资源
最近更新 更多