【问题标题】:Non regular context-free language and infinite regular sublanguages非正则上下文无关语言和无限正则子语言
【发布时间】:2009-03-19 00:51:28
【问题描述】:

我为大学做了一份工作,基本上说:

“证明非正则语言 L={0^n 1^n : n natural} 没有无限的正则子语言。”

我通过矛盾证明了这一点。我基本上说有一种语言 S 是 L 的子语言,它是一种常规语言。因为 S 可能的正则表达式是 0*、1*、(1+0)* 和 (0o1)*。我检查每个语法并证明它们都不是语言 L 的一部分。

但是,我如何证明任何非常规上下文无关语言都不能包含任何常规无限子语言?

我不想要证明本身,我只想指出正确的方向。

【问题讨论】:

    标签: regex nlp context-free-grammar


    【解决方案1】:

    L = {0^n 1^n : n natural} 是非常规上下文无关的。

    M = 2*3* 是无限正则。

    N = L∪M 是非常规上下文无关的。 N 包含 M。

    【讨论】:

      【解决方案2】:

      对于 0^n 1^n 语言,查看pumping lemma. 可能很有价值抽引理可能有助于您的证明。

      您还可以认为常规语言在补码、并集、交集和 kleene 星号下是封闭的。

      也就是说,如果 L1 和 L2 是正则的,那么:

      L1 L2 (concatenation) is also regular.
      L1 n L2 is regular
      L1 U L2 is regular
      ¬L1 is regular 
      L1* is regular
      

      您有可能通过使用其中一些规则来证明任何包含正则无限子语言的语言都是正则的。

      【讨论】:

        【解决方案3】:

        你的直觉很好。这里有两件事。

        首先,几乎总是当问题采用“表明 L 不是正则/非 CF”的形式时,答案将涉及使用抽水引理。同样,当您遇到“表明没有 X ……”之类的问题时,简单的方法是(几乎总是)通过矛盾来证明。

        【讨论】:

          【解决方案4】:

          编辑:错误陈述,仅适用于上下文无关语言

          【讨论】:

          • 你能再解释一下你的逻辑吗?我不太确定你是对的。非正则在与 reg 的交集下不闭合: let L1 = {w ∈ {a,b}* st w = a^n b^n} and L2 = {w ∈ {a,b} st w = ab} L1是非正则,L2 是正则,L1 ∩ L2 = L2 是正则
          • 我的错误,我将声明与上下文无关语言混淆了。删除。
          【解决方案5】:

          由于您只需要提示(谢天谢地,因为我从大学开始就忘记了如何做证明),请查看definition of a regular language 及其具有的属性。仅从那里看,我就有足够的信息来证明这一说法。

          【讨论】:

            猜你喜欢
            • 2020-07-11
            • 2011-06-06
            • 2013-04-27
            • 1970-01-01
            • 2014-01-15
            • 2015-04-11
            • 2014-02-08
            • 2011-12-17
            • 2014-12-21
            相关资源
            最近更新 更多