从NFA子集构建DFA

时间:2016-03-02 07:30:28

标签: dfa nfa

我正在阅读Alfred V.Aho撰写的编纂原则,技巧和工具一书。来自NFA的DFA的子集构造在NFA状态上具有以下操作

e-closure(s)| Set of NFA states reachable from NFA state s on e-transations alone  
e-closure(T)| Set of NFA states reachable from some NFA state s in set T on e-transation alone; =**U**s in T e-closure(s)  
move(T,a)   | Set of NFA states to which there is a transition on input symbol **a** from some state s in T  

以下是接受(a|b)*abb的NFA NFA N for <code>(a|b)*abb</code>

DFA D的转换表Dtran为
Transition Table
我遇到的问题是我无法理解我们如何获得DFA国家B C D和E的NFA国家 标记DFA状态时A.在NFA {0,1,2,4,7}中的状态中,只有27已转换为amove(A,a) ={3,8}e-closure({3,8}) ={1,2,3,4,6,7,8}My problem is how do we end up with {1,2,3,4,6,7,8}以及随后的NFA声明。

1 个答案:

答案 0 :(得分:0)

您还应该在转换后合并电子转换。因此,在查看move(A,a)={3,8}时,您应该添加状态{6,7,1,2,4},因为这些状态都可以从具有move(A,a)={3,8}且具有一个或多个e-transitions的状态2到达。

我没有检查,但我认为其他状态可以类似地构建。