从简单语句中绘制DFA(或NFA)的步骤?

时间:2014-04-24 15:31:01

标签: regex dfa nfa

我收到了一个简单的声明:构建一个接受alphabet {0, 1}的{​​{1}}的DFA?

我的问题是设计它的步骤是什么?或者设计NFA,因为我知道将NFA转换为DFA的明确步骤,因此我会将NFA转换为DFA。

注意: - 这对我来说只是一个小课程,所以我从未研究过正则表达式或任何可能用于构建DFA的算法。

1 个答案:

答案 0 :(得分:4)

如果您想要更多地解释我如何得出这个,我很乐意解释,但是现在我只是画了DFA并解释了每个州。

对截图感到抱歉...我不知道如何将其直接转换为图片。

DFA

  • 在状态0的输入0上,它循环回自身。 1,它准备 本身就要结束,因为它可能是' 101'

  • q1在输入1上循环自身,因为它仍在准备结束 ' 101&#39 ;.输入' 0'在q1意味着它正在为输入' 10'做准备,所以它进入q2。

  • 输入' 0'在q2打破整个周期并返回到q0。输入' 1' 结果转移到接受状态q3。

  • q3上的任何输入都会返回到循环中的任何一点 输入对应于。

  • 也就是说,' 1'它会回到q1,或者第一个' 1' 在' 101'中遇到了,准备结束。

  • On' 0',它转到q2,因为为了到达q3,必须有 是' 1'的输入从q2开始,所以无论如何,最后两个输入 符号是' 10'现在

TikZ DFA examples.