因此,我可以将给定的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} |
其中: - > =初始状态, * =接受国家, --- =空集,
答案 0 :(得分:4)
具有多个开始状态的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} |