NFA轉換為DFA:子集構造法


下面給出一個關於 NFA 到 DFA 轉化的例子,我們使用 a(b|c)* 做例: 

        對於ε的邊表示一種零代價的轉換,例如,n1可以在沒有任何字母(a,b,c)輸入操作的情況下直接滑到n2或n3,n4,n6,

也就是說n1和n2或n3,n4,n6是等價的。

        n0在a字母輸入后,可以通過 n1-n2-n3-n4(n1,n2,n3,n4之間為ε,不需要輸入操作,故可依次到達)到達n4就終止,因為繼續前進需要輸入b

同理,還可以依次通過 n1-n12-n3-n6以及 n1-n2-n9。通過的節點構成集合q1={n1,n2,n3,n4,n6,n9}。

        q1集合中的每一個節點在輸入b的情況下可以進入的所有狀態節點(只有n4的輸入為b,其他為ε),即n5-n8-n3-n4或n5-n8-n3-n6或n5-n8-n9,

就是集合q2={n5, n8, n9, n3, n4, n6 },繼續重復該步驟,得到所有的子集。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM