繁体   English   中英

CFL的泵浦引理

[英]Pumping lemma for CFLs

我的问题是:

令L = {x in {a,b} * | x具有相同数量的a和b}

我知道这是一种无上下文的语言,因为我可以为它创建一个语法(e是epsilon):

S -> aX | bY | e

X -> bS | aXX

Y -> aS | bYY

您还可以通过使用与常规语言相交的无上下文语言无上下文这一事实来证明它是无上下文的。

由于它是无上下文的语言,根据CFL的泵浦引理,任何长度超过泵送长度p的字符串都应该能够被泵送。 但是,如果我选择字符串s = a ^ pb ^ pa ^ pb ^ p,则不能抽取此字符串,因此语言不应该是无上下文的。

我哪里错了?

当然可以抽出绳子。 u = a^pb^(p-1), v = b, x = e, y = a, z=a^(p-1) b^p 现在uvxyz = s并且对于任何i uv^ixy^iz具有等量的as和bs。

设u = a ^ p,v = b ^(p-1),x = ba,y = a ^(p-1),z = b ^ p,因此你的字符串s = uvxyz。

那么uv ^ ixy ^ iz形式的任何字符串都是该语言,因此满足CFL泵浦引理的条件。

对于你的例子,抽水长度不是“p”...也许这就是你感到困惑的地方?

编辑: sepp2k正确地指出我选择的vxy违反了| vxy |的条件 <= p,语言的抽水长度。 他的解v = b,x = e,y = a是正确的。 对于这种语言,任何长度为2或更大的字符串都将填充 - “ab”或“ba”必须出现在某处,因此vy = ab或vy = ba将始终有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM