所以我可以很容易地将具有单一启动状态的给定NFA转换为等效的DFA,但是当涉及具有多个启动状态的NFA时,我就难住了。
由于DFA只能有一个启动状态(如果我是正确的),我如何知道NFA中的两个启动状态中哪一个成为DFA中的唯一启动状态?
作为参考,这是我试图转换的NFA:
N| a | b | c |
____________________________
->0| {0,2} | {0,3} | --- |
*->0| {0} | {0} | {3} |
0| {2} | --- | {2,3} |
* 0| {2} | --- | {3} |
地点:-> =初始状态,* =接受状态;——= empty set,
具有多个启动状态的NFA相当于具有附加状态的NFA(成为新的单一启动状态),并且ϵ-edges从该状态到"实际"启动状态:
N| a | b | c | ϵ |
----+-------+-------+-------+-------+
0| {0,2} | {0,3} | {} | {} |
* 1| {0} | {0} | {3} | {} |
2| {2} | {} | {2,3} | {} |
* 3| {2} | {} | {3} | {} |
->4| {} | {} | {} | {0,1} |