【问题标题】:How to determine which language is simpler如何确定哪种语言更简单
【发布时间】:2017-10-18 20:26:37
【问题描述】:

以下语言是对更简单语言的补充。 为更简单的语言构造一个 DFA,然后用它给出给定语言的 DFA 的状态图,其中 Σ = {a,b}。

L={ w : w 不包含子串 baba}。

我不知道哪种语言更简单,谁能解释一下?

【问题讨论】:

    标签: regular-language finite-automata automata dfa


    【解决方案1】:

    接受包含子字符串“baba”的任何单词的自动机是:

    (这是一种更简单的语言。它的正则表达式是: (a|b)*baba(a|b)* )

    我们可以通过将接受状态转换为非接受状态来构建补充 DFA,反之亦然,正如您提到的那样:

    (必须完成)

    【讨论】:

    • 非常感谢.. 状态 5 被省略,因为它是死状态或无法到达的状态,对吧??
    • 是的,这是一个死状态。您可以添加它以获得完整的 DFA
    【解决方案2】:

    我的逻辑和可计算性课程已经有一段时间了,但我猜补语 Lc 将是 = { w: w 包含子字符串 'baba'}。

    制作一个接受“baba”子字符串的 DFA 可能很容易,您可能只有状态 firstB、firstA、secondB 和 secondA 等等。

    然后制作补码 DFA 是微不足道的,只需使接受状态变为不接受状态,反之亦然。

    【讨论】:

    • 所以“更简单的语言”的意思是 { w: w 包含子字符串 'baba'}。正如你所提到的,我会将接受状态变为不接受状态,反之亦然??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多