FA接受所有二进制字符串,偶数为0,并且1的数量是3的倍数

时间:2016-08-27 18:55:10

标签: regex automation finite-automata computation-theory dfa

这个问题直接来自Wayne Goddard介绍计算理论的第1章练习(问题1.17)。

最初我想创建两个单独的DFA,一个用于确保输入中的0的数量是偶数,另一个用于确保输入中的1的数量可被3整除。但是将它们组合在一起两个单独的DFA成为一种语言被证明是比我想象的更困难的任务。如果有人能指出我正确的方向,我将非常感激。

我很难构建逻辑步骤,以确保在观察到新符号后我们保留以前获取的有关0和1的数据。

1 个答案:

答案 0 :(得分:0)

您构建两个不同的DFA并将它们组合在一起的想法是一个很好的想法。您从两个DFA开始,基本上希望构建一个同时运行它们的DFA。现在是使用product construction的好时机。documentation正是如此。我们的想法是建立一个新的DFA,其状态对应于状态对,一个来自第一个DFA,另一个来自第二个。如果您熟悉powerset结构,您会发现这种结构很容易上手;直觉非常相似。