这个问题直接来自Wayne Goddard介绍计算理论的第1章练习(问题1.17)。
最初我想创建两个单独的DFA,一个用于确保输入中的0的数量是偶数,另一个用于确保输入中的1的数量可被3整除。但是将它们组合在一起两个单独的DFA成为一种语言被证明是比我想象的更困难的任务。如果有人能指出我正确的方向,我将非常感激。
我很难构建逻辑步骤,以确保在观察到新符号后我们保留以前获取的有关0和1的数据。
答案 0 :(得分:0)
您构建两个不同的DFA并将它们组合在一起的想法是一个很好的想法。您从两个DFA开始,基本上希望构建一个同时运行它们的DFA。现在是使用product construction的好时机。documentation正是如此。我们的想法是建立一个新的DFA,其状态对应于状态对,一个来自第一个DFA,另一个来自第二个。如果您熟悉powerset结构,您会发现这种结构很容易上手;直觉非常相似。