【问题标题】:DFA of two simple languages and then product construction of those two languages两种简单语言的 DFA,然后是这两种语言的产品构造
【发布时间】:2019-01-30 14:24:18
【问题描述】:

下面的语言是两种更简单的语言的交集。首先,识别更简单的语言并给出识别它们的 DFA 的状态图。然后,使用产品构造来构建识别下面指定语言的 DFA;如果有不需要的状态或者可以组合的状态,给出其化简前后的状态图。

语言:{w 是 {0,1} 的成员* | w 包含奇数个 0,其 0 和 1 之和等于 1}

这是我提出的解决方案:https://imgur.com/a/lh5Hwfr底部的两个状态应该用0连接吗?

另外,如果是 OR 而不是 AND,DFA 会是什么?

【问题讨论】:

  • 您的第一个 DFA 是正确的,您的第二个是错误的(它接受以1 结尾的字符串,并非所有只有一个11 结尾的字符串,例如0010) .因此,您的组合 DFA 是错误的。它确实需要连接状态AFBF,以便它可以接受像00100 这样的字符串。当 DFA 与 AND 或 OR 结合使用时,您可以使用该运算来确定哪些状态正在接受。对于 AND,如果第一个和第二个原始 DFA 状态正在接受,则组合 DFA 的状态正在接受。对于 OR,如果第一个 OR 第二个原始状态正在接受,则状态正在接受。

标签: dfa


【解决方案1】:

这是一张我希望能帮助理解如何做到这一点的图:

语言 A 是“奇数个零”。状态标记为 Z0 和 Z1,表示零的偶数或奇数。

语言 B 是“恰好一”(相当于“数字之和等于一”)。状态标记为 I0、I1 和 I2,表示零、一个或多个。

语言 A+B 可以解释为 A∩B(忽略虚线圆圈)或 AUB(计算虚线圆圈)。如果构建 A∩B,状态 Z0I2 和 Z1I2 可以连接在一起。

我希望这不仅能给出问题中确切问题的答案,还能提供一个想法,如何为类似问题建立类似的答案。

【讨论】:

    猜你喜欢
    • 2012-12-29
    • 2017-06-06
    • 2022-12-21
    • 2013-10-08
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多