从NFA到DFA,一个州只有一个epsilon转换

时间:2018-10-16 23:05:33

标签: dfa state-machine deterministic nfa non-deterministic

如果将NFA表转换为DFA表时,存在仅作为epsilon转换的状态,则如何将其转换为DFA表。

例如,如果状态1在ε列中仅接受2,那么它在DFA转换中的外观如何?

转换表:

     a     b     c    ε
1   {}    {}    {}   {2}
2   {3}   {}    {}   {}
3   {4}   {3,4} {}   {}
4   {4}   {}    {}   {}

1 个答案:

答案 0 :(得分:0)

我认为最好先消除epsilon过渡以获得NFA(无epsilon过渡)。从NFA中获得等效的DFA应该更容易。

如何消除ε过渡?

首先,我们有一个国家的ECLOSE项。 ECLOSE(q)被定义为通过跟随epsilon过渡可以达到的所有状态(包括状态q本身)的集合。 就您而言:

ECLOSE(1) = {1,2}

要消除ε过渡,请执行以下步骤:

  1. 如果ECLOSE(1)包含最终状态,则将state 1设置为最终状态     状态
  2. 当且仅当从state 1的某些状态到state q的过渡时,才添加从ECLOSE(1)state q的过渡(带有相应的标签)
  3. 现在您可以删除所有epsilon过渡。

经过上述步骤(您没有指定哪个状态是开始状态或最终状态),您应该获得:

    a     b     c    
1   {3}   {}    {}   
2   {3}   {}    {}   
3   {4}   {3,4} {}   
4   {4}   {}    {}