要确保:仅为无限常规语言提供引理?

时间:2012-08-06 16:36:37

标签: math finite-automata regular-language formal-languages pumping-lemma

所以这不是关于泵浦引理及其工作原理,而是关于先决条件。

你可以阅读网络中的任何地方,常规语言必须通过抽取引理,但现在任何人都会谈论有限语言,这实际上是常规语言的一部分。

所以我们可能都是aggree,以下语言是一种有限的语言,而且它是一种常规的语言,但它肯定没有通过泵引理:

L = {'abc', 'defghi'}

请告诉我,如果没有人写这篇文章或为什么我们错了 - 甚至没有。

4 个答案:

答案 0 :(得分:14)

有限语言与泵浦引理一起工作的原因是因为你可以使泵送长度长于语言中最长的单词。抽水引理as stated on Wikipedia(我没有我的计算理论书)如下:

  

L 成为常规语言。然后存在一个 p ≥1的整数,仅取决于 L ,使得 L 中的每个字符串 w 的长度为至少 p p 称为“抽水长度”)可写为 w = xyz (即, w 可以分为三个子串),满足以下条件:

     
      
  1. | ý | ≥1
  2.   
  3. | XY | ≤ p
  4.   
  5. 所有 i ≥0, xy i z L
  6.   

现在,考虑一些有限的语言 L ,让 k = max w L | w |是 L 中最长单词的长度。然后我声称​​ L 的最小抽气长度是 p = k +1。由于 L 没有字的长度至少为 k +1,因此每个都是空的>这样的词满足三个条件(或者,实际上,你需要指定的任何其他条件)。

你可以看到任何有限的语言都是常规的,当然(常规语言在有限联合下是封闭的,并且一个单词的所有语言都是常规的),但请注意,这个参数没有显示出来;重要的是要记住,虽然可以抽取任何常规语言there exist languages that can be pumped but are not regular

答案 1 :(得分:4)

“在普通语言的抽水乳房的背景下”

是的我们同意,所有有限语言都是常规语言意味着我们可以使用有限自动机以及任何有限语言的正则表达式。
a infinite language may be regular or not。维恩图如下所示。所以我们只需检查无限语言L,其常规不是!

想想FA:

  • automataa finite language can not contains loop!操作)的任何regular expressions for finite language will be without * and +

  • automata的任何a infinite language(regular) will contain the loopWe can't construct an automata for infinite language without loop;其中循环可以是通过某些其他状态的自循环。 {如果它的自循环然后单个符号重复任何数量的时间,如果通过其他状态,一系列符号进入循环可以重复任何数量的时间}。

抽水意味着重复。在泵浦引理w可以分为三个部分 x,y,z 。 'y'部分是w出现在循环中(即y> = 1)。所以抽取引理并没有找到循环部分y并且在任何时间内重复这个循环部分 enter image description here 您可以查看是否重复循环任意次,并生成新的字符串w',它仍然是语言。

注意Regular Expressions for infinite language can't be without * and +操作!

[回答] 有限语言的自动机中没有循环,所以我们不能用语言抽取(通过重复生成)新的字符串。 Pumping Lemma不适用于有限语言。

  

虽然有些作者也解释了有限语言的抽取引理,其中xy i z中的i可以有界重复(比如k≤i≤m)


enter image description here

在维恩图中每个有限集都是规则的。 无限集可能是规则的或不是。 Regular-Languages ⊆ Non-Regular Languages


答案 2 :(得分:0)

这是表明某种语言无限的最简单方法。假设L是某些正则表达式E,L(E)的语言。

假设L(E)等同于{ab^nc | n ≥ 0}

我们知道E的格式为ab*c,我们知道这种语言可能是常规的(我们无法证明某些事情是正常的),因为这个结论的抽象引理是k = 0换句话说,xz = ac,每个正则表达式都有一个等效的自动机。

结论很简单,如果DFA有一些过渡到自身的状态,那么语言是无限的。

     a   b   c

 q0  q1    
 q1     q1  q2
*q2         

q1已经过渡到自身,因此L(E)是无限的。

答案 3 :(得分:-1)

根据定义,有限语言是常规语言,因为您可以通过仅表达所有单词的并集来构建满足它的正则表达式(例如(abc)|(defghi)是满足您语言的正则表达式),因此您可以拥有满足它的deterministic finite automaton

不能通过泵浦引理并不意味着语言不规则。实际上,要使用泵浦引理,您的语言必须在其定义中具有某种闭包。如果你的语言只是一组单词,那就什么都没有了。在它。