为什么字符串的数量应该大于或等于泵浦引理中的状态数?

时间:2015-03-27 19:55:53

标签: pumping-lemma

如果L是常规语言,则存在常量n(取决于L),以便语言{{1}中的每个字符串w如果L的长度大于或等于w,我们可以将n划分为三个字符串w

w = xyz

为什么我们选择w = length of string. n = Number of States. 大于或等于w? 什么是抽水长度?

2 个答案:

答案 0 :(得分:1)

如果你看一下引理的完整陈述(http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages),你会发现它实际上是在说明每个字符串都是由前缀x构成的,这个部分可以重复任何一个次数y和后缀z。现在很明显,在最短的情况下(当重复部分只采用一次时),w的长度等于语言所需的状态数。这个维基百科图像非常有用:

http://en.wikipedia.org/wiki/File:Pumping-Lemma_xyz_svg.svg

答案 1 :(得分:0)

你似乎误解了引理(你也没有完全说明),并将证明的各个方面与你所做的事情混合起来。该引理表示,对于每种常规语言L,都有一个常量p,使得属于p的至少L个符号的每个字符串都具有非空子字符串长度不大于p可以“抽”,总是产生L的另一个元素。常数p是(a)“抽气长度”。

这可以通过观察如果一种语言是规则的然后有一个接受它的有限状态自动机,并将p作为该自动机中的状态数(详细信息省略)来证明。

然而,这并不意味着最小FSA中识别给定常规语言的状态数是该语言可能的最小抽吸长度。例如,考虑由{a n }和{b n }的联合组成的语言适用于所有n。您需要一个四态FSA来识别这种语言,但其最小抽吸长度为1。