如果将NFA表转换为DFA表时,存在仅作为epsilon转换的状态,则如何将其转换为DFA表。
例如,如果状态1在ε列中仅接受2,那么它在DFA转换中的外观如何?
转换表:
a b c ε
1 {} {} {} {2}
2 {3} {} {} {}
3 {4} {3,4} {} {}
4 {4} {} {} {}
答案 0 :(得分:0)
我认为最好先消除epsilon过渡以获得NFA(无epsilon过渡)。从NFA中获得等效的DFA应该更容易。
如何消除ε过渡?
首先,我们有一个国家的ECLOSE
项。 ECLOSE(q)
被定义为通过跟随epsilon过渡可以达到的所有状态(包括状态q
本身)的集合。
就您而言:
ECLOSE(1) = {1,2}
要消除ε过渡,请执行以下步骤:
ECLOSE(1)
包含最终状态,则将state 1
设置为最终状态
状态state 1
的某些状态到state q
的过渡时,才添加从ECLOSE(1)
到state q
的过渡(带有相应的标签)经过上述步骤(您没有指定哪个状态是开始状态或最终状态),您应该获得:
a b c
1 {3} {} {}
2 {3} {} {}
3 {4} {3,4} {}
4 {4} {} {}