非确定性有限自动机构造

时间:2018-09-26 00:03:59

标签: finite-automata non-deterministic

感觉这应该比现在容易,但是我对此有疑问。这是询问的内容:

使用以下语言L = {ab,ba} *构建NFA。因此,我知道我可以在字符串中包含ab或ba的任意组合,但是如果说我连续获得两个a还是只是重新开始,我是否需要一个死状态?这是我拥有的两个图: g1 g2

这些都正确吗?而且由于它们是NFA与DFA,所以我需要在这里的某个地方使用lambda优势吗?

编辑: 因为我需要两个最终状态,所以这第三个正确吗? g3

1 个答案:

答案 0 :(得分:1)

如果您要制作NFA,则不需要死态。您可以让NFA崩溃。 DFA可能确实需要死态来确保完整性,具体取决于您的定义。

这是NFA(q0是初始状态和唯一接受状态):

         b
      +------+
      |      |
      V  a   |    
  +->q0 ---> q1
  |   |
a |   | b
  |   V
  +--q2

要使其成为DFA,您可以添加无效状态q3,并使所有上面未定义的转换都以q3终止。