首页 > 技术文章 > 非确定的自动机NFA确定化为DFA

rinkong0403 2019-10-31 21:54 原文

NFA 确定化为 DFA

子集法:

f(q,a)={q1,q2,…,qn},状态集的子集

将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合。

步骤:

1.根据NFA构造DFA状态转换矩阵

①确定DFA初态(NFA的所有初态集),字母表

②从初态出发,经字母表到达的状态集看成一个新状态

③将新状态添加到DFA状态集

④重复23步骤,直到没有新的DFA状态

2.画出DFA

3.看NFA和DFA识别的符号串是否一致。

 

练习:

1.解决多值映射:子集法

1). 发给大家的图1

2). P64页练习3

2.解决空弧:对初态和所有新状态求ε-闭包

1). 发给大家的图2

2).P50图3.6

 

1.1

    a b
A 0 {01} 0
B   {01} {01} {02}
C {02} {01} {03}
D {03} {01}

0

1.2

 

2.1

    0 1 2
0 ε{A}={ABC} ε{A=}{ABC} ε{B=}{BC} ε{C}={C}
1 {BC} {} ε{B}={BC} ε{C}={C}
2 {C} {} {} ε{C}={C}
         

 

 

2.2

    a b  
A ε{0}={01247} ε{38}={3867124} ε{38}={567124}  
B ε{38}={3867124} ε{38}={3867124} ε{59}={5671249}  
C ε{5}={567124} ε{38}={3867124} ε{5}={567124}  
D ε{59}={5671249} ε{38}={3867124} ε{510}={56712410}  
E ε{510}={56712410} ε{38}={3867124} ε{5}={567129}  

推荐阅读