【发布时间】: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结尾的字符串,并非所有只有一个1以1结尾的字符串,例如0010) .因此,您的组合 DFA 是错误的。它确实需要连接状态AF和BF,以便它可以接受像00100这样的字符串。当 DFA 与 AND 或 OR 结合使用时,您可以使用该运算来确定哪些状态正在接受。对于 AND,如果第一个和第二个原始 DFA 状态正在接受,则组合 DFA 的状态正在接受。对于 OR,如果第一个 OR 第二个原始状态正在接受,则状态正在接受。
标签: dfa