为什么{a ^ nb ^ n}没有上下文?

时间:2013-10-10 19:48:26

标签: context-free-grammar pumping-lemma

我正在写关于Ppumping Lemma的事情。我知道语言L = {a ^ nb ^ n | n≥0}无上下文。但我不明白这种语言如何满足抽取引理的条件(对于无上下文的语言)?

如果我们选择字符串s = a ^ pb ^ p,| s | > p,| vxy | < p和| vy | > 0

当我们抽水时(向上或向下抽水)或者有些东西我不知道它似乎会超出语言。

任何解释都会有所帮助。

编辑:我正在将抽取引理应用于^ nb ^ n并且它无法保留所有情况的语言。那么,为什么上下文无关?

我只是想看到这种语言满足泵浦引理的条件。但是当我抽出s = uv ^ 2xy ^ 2z

时,它似乎失败了

2 个答案:

答案 0 :(得分:2)

请记住,您必须允许选择满足条件的v,x,y。特别是,您可以随时选择

u=a^{n-1}, v=a, x=empty, y=b, z=b^{n-1}. 

然后vxy根据需要很短,但是只能给你带来

uv^kxy^kz = a^{n-1} a^k empty b^k b^{n-1} = a^{n+k-1} b^{n+k-1}, 

仍然使用该语言。

答案 1 :(得分:0)

对于那些想要外行解释的人(重申Grijesh在评论中所写的内容)..

  

泵送引理是必要的,但还不够。

这是什么意思?

L1 = (a^n)(b^n)(c^n)

对于L1,我们无法找到u,v,x,y,z,这样我们就可以向上/向下泵送,而字符串仍然在L1中。 由于L1不满足抽水引理,它没有“必要”部分,我们可以肯定地说L1不是无上下文。

但是,

L2 = (a^n)(b^n)

对于L2,有一些方法可以选择u,v,x,y,z,这样我们可以向上/向下泵送,而字符串仍然在L2中(如果我们选择u,v,x,它也会失败) y,z以其他一些聪明的方式)。 但是,由于Pumping Lemma还不够,我们不能说这里的L2是否是Context Free。

  TLDR:抽水引理肯定只能说“不”,不能肯定   说“是”。