大多数来源,例如http://www.cs.may.ie/staff/jpower/Courses/Previous/parsing/node5.html,都表明Kleene闭包是用4个节点构建的。
为什么不能用2来构建,如下所示?
答案 0 :(得分:5)
为了在连接两个NFA时获得正确的结果,您需要确保两个组件:
结束状态没有转换;或
没有转换到开始状态。
正常的汤普森建筑确保了两者。
没有这样的限制,组合不起作用。例如,对于您的构造,a*b*
的NFA也接受ababab
,这是错误的。