1.設有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3}
畫出狀態轉換矩陣,狀態轉換圖,並說明該NFA識別的是什么樣的語言。
語言為:(a|b)*abb
2.NFA 確定化為 DFA
1.解決多值映射:子集法
1). 上述練習1的NFA
2). 將下圖NFA 確定化為 DFA
2.解決空弧:對初態和所有新狀態求ε-閉包
1).
圖轉換為矩陣:
狀態轉換圖:
識別語言為:0*(11*2 | 2)2*
2)
圖轉換為矩陣:
此矩陣相當於
對此矩陣畫出狀態轉換圖
子集法:
f(q,a)={q1,q2,…,qn},狀態集的子集
將{q1,q2,…,qn}看做一個狀態A,去記錄NFA讀入輸入符號之后可能達到的所有狀態的集合。
步驟:
1).根據NFA構造DFA狀態轉換矩陣
①確定DFA的字母表,初態(NFA的所有初態集)
②從初態出發,經字母表到達的狀態集看成一個新狀態
③將新狀態添加到DFA狀態集
④重復23步驟,直到沒有新的DFA狀態
2).畫出DFA
3).看NFA和DFA識別的符號串是否一致。