【问题标题】:One Language and Proof How it's ambiguous?一种语言和证明 它是如何模棱两可的?
【发布时间】:2015-04-14 19:48:45
【问题描述】:

我刚参加了期中考试,但无法回答这个问题。

我们怎样才能表明下面的语言是模棱两可的?

L={a n bm c p : n≠m} U {a n bm c p : m≠p}

我认为这很难,谁能帮助我使用自动化工具或......我们如何证明它?

【问题讨论】:

    标签: grammar context-free-grammar computation-theory context-free-language


    【解决方案1】:

    考虑语言{a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> : n≠m} 的一种可能语法:

    S → A X C | X B C
    X → ε | a X b
    A → a | a A
    B → b | B b
    C → ε | C c
    

    在这个语法中,任何单词的最左边的派生词都不会扩展,C 直到所有其他非终结符都被扩展。联合的另一半的语法非常相似(a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> : m≠p} 将在扩展任何其他非终结符之前类似地扩展所有 As。因此,两个子集的交集中的任何单词都将具有(至少)两个不同的推导。

    证明该语言本质上是模棱两可的,需要证明上述对于该语言的任何语法都是正确的。这样的证明有效地基于 Ogden 引理,它是上下文无关语言的泵引理的推广;证明包括证明可以通过两种不同的方式“抽取”某个词。

    比较容易找到相似语言的证明 {a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> : n=m} ∪ {a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> : m=p} 本质上是模棱两可的:它经常被用作形式语言理论教科书中的示例。我认为您的语言的证明“更难”,因为它可能需要考虑更多案例,但应该非常相似。

    另一种方法是 Flajolet 的分析方法。

    【讨论】:

    • 怎么容易理解?
    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 2011-10-02
    • 2012-12-29
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多