在常规语言上引入引理?

时间:2014-01-09 02:57:55

标签: context-free-grammar pumping-lemma

我对泵浦引理的理论有点困惑。据我所知,用于判断语言是否正常。 有一个变量让我这样就是状态?

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

所以我无法理解这是如何运作的。我的意思是哪个有用?通过将一个字符串分成3个部分并重复x? 如何显示它是否是常规的? 常规语言的抽取引理和无上下文语言之间有什么区别吗?

1 个答案:

答案 0 :(得分:4)

泵浦引理是这样的:

  

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

     
      
  • | VX | ≤p
  •   
  • | X | > 0
  •   
  • vx i u∈L所有i≥0
  •   

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

什么是泵浦引理?

泵浦引理的唯一用途是确定某种语言是否具体常规。即如果一种语言不遵循抽水引理,则不能定期。 但是仅仅因为语言泵浦,并不意味着它是常规的(这个引理用于Contrapositive证明)。

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

正如我上面所说的那样,并不存在一些不规则的可泵送语言( EDIT 维基百科有一个满足抽水引理的语言示例,但不是常规的{ {3}})但是,我想也许你想问的问题是:为什么所有常规语言都可以被抽出来?

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

考虑常规语言的特征,正如一些离散有限自动机识别的那样, M ,有一些有限数量的状态 n

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

在检查 w 时, M 必须通过 | w | + 1 状态(包括其开始和结束状态)。因此,通过鸽子原则 M 必须多次通过某些状态(因为 | w | + 1&gt; n )。< / p>

w = a 1 a 2 ... a n

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

  a1   a2   a3 ... an
qs → q1 → q2 → ... → qn = qf

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

  a1   a2   a3     ar      ar+1   ar+2   ar+k       ar+k+1   ar+k+2  an
qs → q1 → q2 → ... → qr = R → qr+1 → ... → qr+k = R → qr+k+1 → ... → qn = qf

让我们用这里的简写来说明这一点:

  a1   a2   a3     ar
qs → q1 → q2 → ... → qr

与此相同:

   v
qs →* qr

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

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

v = a1a2...ar
x = ar+1ar+2...ar+k 
u = ar+k+1ar+k+2...an 

现在我们看到 v

   v
qs →* R

x

  x
R →* R

对于

  u
R →* qf

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

您在此处看到 M 也会接受 vu vxxu vxxxu ,...,< strong> vx i u i≥0,因为在 R 状态处理字符串 x ,将 M 保持在 R 状态。

基本上,泵浦引理的目的是找到在处理时不会改变 M 状态的字符串。

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

那么,在这种情况下,你可以推断出语言是规则的,只是因为它是有限的(Σ*的所有有限子集都是规则的),而且,泵浦引理是空的 true,您只需选择一个泵送长度 p> n ,您可以确定 M 识别的所有字符串也满足 | w | ≥p可以抽水(因为你知道不存在)。

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

是的,这是:

  

对于无背景语言 L ,存在 p&gt; 0 使得所有w∈L     其中 | w | ≥p,存在一些分裂 w = uxyzv ,其中包含以下内容:

     
      
  • | XYZ | ≤p
  •   
  • | XZ | &GT; 0
  •   
  • ux i yz i v∈L所有i≥0
  •   

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

基本上,这个引理利用的是另一个鸽派原则风格论证,但这一次,重点关注无语境语法中的变量数量,以及最大生成的长度。

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

如果语言是有限的,这个引理也可以是真实的,并且也可以用在Contrapositive中,就像常规语言的抽象引理一样。

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