感觉这应该比现在容易,但是我对此有疑问。这是询问的内容:
使用以下语言L = {ab,ba} *构建NFA。因此,我知道我可以在字符串中包含ab或ba的任意组合,但是如果说我连续获得两个a还是只是重新开始,我是否需要一个死状态?这是我拥有的两个图:
这些都正确吗?而且由于它们是NFA与DFA,所以我需要在这里的某个地方使用lambda优势吗?
答案 0 :(得分:1)
如果您要制作NFA,则不需要死态。您可以让NFA崩溃。 DFA可能确实需要死态来确保完整性,具体取决于您的定义。
这是NFA(q0
是初始状态和唯一接受状态):
b
+------+
| |
V a |
+->q0 ---> q1
| |
a | | b
| V
+--q2
要使其成为DFA,您可以添加无效状态q3
,并使所有上面未定义的转换都以q3
终止。