【问题标题】:To make sure: Pumping lemma for infinite regular languages only?确保:只为无限的常规语言抽取引理?
【发布时间】:2012-08-03 15:58:20
【问题描述】:

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

在网络上你能读到的任何地方,常规语言都必须通过抽引引理,但没有人谈论有限语言,它实际上是常规语言的一部分。

所以我们可能都同意,以下语言是一种有限语言,也是一种常规语言,但它绝对没有通过抽水引理:

L = {'abc', 'defghi'}

请告诉我是否根本没有人写它或为什么我们错了 - 甚至没有。

【问题讨论】:

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


    【解决方案1】:

    根据定义,有限语言是正则语言,因为您可以通过表达所有单词的并集来构建满足它的正则表达式(例如,(abc)|(defghi) 是满足您的语言的正则表达式),因此您可以有一个 @ 987654321@就满足了。

    无法通过抽引引理并不意味着语言不规则。实际上,要使用抽水引理,您的语言必须在其定义中具有某种闭包。如果您的语言只是一组单词,则没有什么可以“泵入”其中。

    【讨论】:

    • 这是倒退的:如果你的语言是常规的,那么你可以抽它。因此,反过来说,如果你不能泵出你的语言,那么它不是常规的。然而,,如果你能抽出你的语言,它可能会也可能不会是常规的。
    【解决方案2】:

    有限语言使用抽吸引理的原因是您可以使抽吸长度比语言中最长的单词更长。抽水引理as stated on Wikipedia(我没有我的计算理论书)如下:

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

    1. || ≥1
    2. |xy| ≤ p
    3. 对于所有 i ≥ 0,xyizL

    现在,考虑一些有限语言L,让k = maxwL |w|是 L 中最长单词的长度。然后我声称 L 的最小泵送长度是 p = k+1。由于在 L 中有 no 个词的长度至少为 k+1,因此(空洞地)every 这样的词满足三个条件(或者,实际上,你想指定的任何其他条件)。

    当然,您可以看到任何有限语言都是正则的(正则语言在有限联合下是封闭的,并且一个单词的所有语言都是正则的),但请注意,此论点并未表明这一点;重要的是要记住,尽管可以抽取任何常规语言,there exist languages that can be pumped but are not regular

    【讨论】:

      【解决方案3】:

      “在为常规语言抽取引理的情况下”

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

      想想FA:

      • a finite language can not contains loop! 的任何 automata(也为 regular expressions for finite language will be without * and +operation)。

      • 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 并重复这个循环部分任意次数。
      您可以查看是否重复循环任意次数并生成新字符串 w' 它仍然是语言。

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

      [answer]有限语言的自动机中没有循环,因此我们无法抽取(通过重复生成)语言中的新字符串。并且 Pumping Lemma 不适用于有限语言。

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


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


      【讨论】:

      • VERY OLD QUESTION~~ Although it was answered, I Liked to add my thoughts too!
      【解决方案4】:

      有一种最简单的方法可以表明某种语言是无限的。假设 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) 是无限的。

      【讨论】:

        猜你喜欢
        • 2013-01-20
        • 2012-11-04
        • 2016-06-09
        • 2014-08-03
        • 2020-06-28
        • 1970-01-01
        • 2017-12-19
        • 1970-01-01
        • 2015-12-01
        相关资源
        最近更新 更多