使用Ogden引理与常规泵浦引理用于无上下文语法

时间:2012-09-27 02:06:41

标签: string math context-free-grammar proof pumping-lemma

我正在学习问题中的引理之间的区别。我能找到的每个参考都使用了这个例子:

{(a^i)(b^j)(c^k)(d^l) : i = 0 or j = k = l}

显示两者之间的差异。我可以找到一个使用常规引理来“反驳”它的例子。

选择w = uvxyz,s.t。 | VY | > 0,| vxy | < = p。 假设w包含相同数量的b,c,d's。

我选择了:

u,v,x = ε
y = (the string of a's)
z = (the rest of the string w)

抽取y只会增加a的数量,如果| b | = | c | = | d |起初,它现在还会。

(类似的论据,如果w没有a。那么只需抽出你想要的任何东西。)

我的问题是,奥格登的引理如何改变这种策略? “标记”有什么作用?

谢谢!

2 个答案:

答案 0 :(得分:14)

这里一个重要的绊脚石问题是“能够抽水”并不意味着没有上下文,而是“无法抽水”表明它不是无环境的。 同样,being grey does not imply you're an elephant, but being an elephant does imply you're grey...

Grammar context free        => Pumping Lemma is definitely satisfied  
Grammar not context free    => Pumping Lemma *may* be satisfied
Pumping Lemma satisfied     => Grammar *may* be context free
Pumping Lemma not satisfied => Grammar definitely not context free
# (we can write exactly the same for Ogden's Lemma)
# Here "=>" should be read as implies

也就是说,为了证明语言上下文无关,我们必须显示失败(!)以满足其中一个这样的引理。 (即使它满足两者,我们还没有证明它是无上下文的。)

下面是L = { a^i b^j c^k d^l where i = 0 or j = k = l}不是上下文的草图证明(虽然它满足抽水引理,它不符合奥格登的引理)

Pumping lemma for context free grammars:

  

如果某个语言L是无上下文的,则存在一些整数p ≥ 1,以便sL的所有字符串|s| ≥ p都带有p(其中{ {1}}是一个抽水长度)可以写成   s = uvxyz
  使用子字符串u, v, x, y and z,以便:   1. |vxy| ≤ p
  2. |vy| ≥ 1
  3.对于每个自然数u v^n x y^n zL位于n

在我们的示例中:

对于s中的任何L|s|>=p)

  • 如果s包含a s,请选择v=a, x=epsilon, y=epsilon (并且我们没有矛盾对于无上下文的语言)
  • 如果s不包含a s w=b^j c^k d^l且其中一个j,则kl不为零,因为{ {1}})然后选择|s|>=1(如果v=bj>0 elif v=c,则k>0),v=c,{{1} } (我们对无语境的语言没有矛盾

(很遗憾:使用Pumping Lemma,我们无法证明x=epsilon的任何内容!
注意:上面的内容基本上就是你在问题中提出的论点。)

Ogden's Lemma:

  

如果某个语言y=epsilon没有上下文,则存在一些数字L(其中L可能是或可能不是抽样长度),以便对任何字符串{{1 p > 0中至少p的长度{} w pLp的每一种方式都可写为   w
  字符串ww = uxyzv使得:
  1. u, x, y, z,至少有一个标记位置,
  2. v最多有xz个标记位置,以及
  3. xyz位于p,每u x^n y z^n v

注意:这个标记是Ogden引理的关键部分,它说:“不仅每个元素都可以被”抽“,而且可以使用任何L标记位置进行抽取。

在我们的示例中:

n ≥ 0标记p s的位置(其中w = a b^p c^p d^pb满足Ogden引理的要求),并p 1}}是满足Ogden引理(w)条件的分解。

  • 如果u,x,y,z,vz=uxyzv包含多个符号,则x不在z中,因为错误的顺序会有符号(请考虑u x^2 y z^2 w )。
  • L(bc)^2 = bcbc必须包含x(按引理条件1。)

这使我们有五个案例要检查(z):

  • b
  • i,j>0
  • x=epsilon, z=b^i
  • x=a, z=b^i
  • x=b^i, z=c^j

在每种情况下(通过比较x=b^i, z=d^jx=b^i, z=epsilonb的数量),我们可以看到c不在d(我们对语言的矛盾(!)是无上下文的,也就是说,我们已经证明u x^2 v y^2 z不是上下文

总结一下,L不是没有上下文的,但是无法使用抽取引理(但可以由Ogden的引理)证明,因此{ {3}}那个:

  

Ogden的引理是针对无语境语言的第二个更强大的抽象引理。

答案 1 :(得分:0)

我不太确定如何在这里使用奥格登的引理,但你的“证明”是错误的。当使用泵浦引理来证明语言不是上下文时,你不能选择拆分为uvxyz。分裂是“为你”选择的,你必须证明任何uvxyz都没有满足引理。