2

I am a bit confused on the theory of the pumping lemma. As I know is used to decide if a language is regular or not. There is a variable let be m such that is the states?

x = vxu
Where vx >= m
And u not ε (>=1)
and a variable i such that v(x^i)u

So i cant understand how this is working. I mean where is that useful? By breaking a string into 3 parts and repeat the x? And how is that showing if it is regular or not? And is any difference between pumping lemma for regular languages and context-free languages?

4

1 回答 1

4

抽水引理是这样的:

对于常规语言L,存在一个p > 0使得对于所有w ∈ L 其中|w| ≥ p,存在一些分裂w = vxu,以下成立:

  • |vx| ≤ p
  • |x| > 0
  • vx i u ∈ L对于所有i ≥ 0

我再说一遍的原因是因为你的一些不平等是错误的。

抽水引理有什么用?

抽水引理的唯一用途是确定一种语言是否特别不规则。即,如果一种语言不遵循泵引理,它就不可能是正则的。仅仅因为一种语言泵,并不意味着它是规则的(这个引理用于反证)。

它如何显示它是否是正常的?

正如我上面所说,它没有,有一些不规则的可泵送语言(编辑维基百科有一个满足泵送引理但在这里不规则的语言示例),但是,我想也许你想要的问题请问是这样的:为什么所有的正则语言都可以抽?

为什么所有常规语言都可以抽?

考虑一个正则语言的特征,它被一些离散有限自动机M识别,具有一些有限数量的状态n

然后,考虑M语言中的某个字符串,我们称之为w,其中|w| ≥ n成立。

在检查w时,M必须通过|w| + 1个状态(包括其开始和结束状态)。因此,根据鸽巢原理M必须多次通过某些状态(因为|w| + 1 > n)。

w = a 1 a 2 ...a n

想象一下,这些是M的状态转换,从q s开始,到q f结束,在处理w中:

  a 1    a 2    a 3 ... a n 
q s → q 1 → q 2 → ... → q n = q f

现在让我们看看这些状态转换中M重复一个状态的部分,我们称该状态为R

  a 1    a 2    a 3      a r       a r+1    a r+2    a r+k        a r+k+1    a r+k+2   a n 
q s → q 1 → q 2 → ... → q r = R → q r+1 → ... → q r+k = R → q r+k+1 → ... → q n = q f

让我们在这里用一个简写来表达:

  a 1    a 2    a 3      a r 
q s → q 1 → q 2 → ... → q r

与此相同:

   v
q s →* q r

其中v = a 1 a 2 ...a r

现在让我们按照以下方式将w分成三部分,w = vxu

v = a 1 a 2 ...a r 
x = a r+1 a r+2 ...a r+k  
u = a r+k+1 a r+k+2 ...a n 

现在我们看到v

   v
q s →* R

对于x

  X
R →* R

来说:

  你
R →* q f

(我所做的只是将上面较长的状态转换图分成三个独立的)

在这里,您看到M也将接受vuvxxuvxxxu,..., vx i u for i ≥ 0 ,因为在状态R处理字符串x会使M保持在状态R

本质上,抽引引理的目的是找到字符串中在处理时不会改变M状态的位。

现在你可能想知道。如果没有被M识别的字符串,|w|怎么办?≥n成立吗?

好吧,在这种情况下,您可以推断该语言是规则的,仅仅因为它是有限的(∑* 的所有有限子集都是规则的),此外,抽水引理是空洞的,您只需选择抽水长度p > n,您可以确定M识别的所有字符串也满足|w| ≥ p可以被抽(因为你知道不存在)。

上下文无关语言的引理是否不同?

是的,这里是:

对于上下文无关语言L,存在一个p > 0使得对于所有w ∈ L 其中|w| ≥ p,存在一些分裂w = uxyzv,以下成立:

  • |xyz| ≤ p
  • |xz| > 0
  • ux i yz i v ∈ L对于所有i ≥ 0

它的证明有点复杂,而且这个答案已经很长了,所以这是草图:

本质上,这个引理利用的是另一个鸽笼原则风格的论点,但这一次,关注的是上下文无关语法中的变量数量,以及其最大产生式的长度。

使用此信息,可以看到对于给定的语法,有一些字符串足够大,以至于它们需要在自身内部复制解析树的一部分。解析树的这一部分是xyz,正在发生的事情是y被另一个xyz替换。

如果语言是有限的,这个引理也可以是空洞的,并且也用于对立式,就像常规语言的抽水引理一样。

如果您需要更多信息,我推荐Michael Sipser的《计算理论导论》。它对两个泵引理都有一些很好的部分,我觉得它很好地解释了它们。

于 2014-01-09T11:59:53.837 回答