
- 自動機理論教程
- 自動機理論 - 首頁
- 自動機理論 - 入門
- 自動機理論 - 歷史
- 自動機理論 - 應用
- 自動機理論術語
- 自動機中字串的基礎
- 自動機的集合論
- 語言和文法
- 計算理論中的文法
- 由文法生成的語言
- 喬姆斯基文法分類
- 有限自動機
- 確定性有限自動機 (DFA)
- 非確定性有限自動機 (NFA)
- 從NFA到DFA的轉換
- DFA的最小化
- 穆爾機與米利機
- DFA的補集
- 正則表示式
- 自動機中的正則表示式
- 自動機中的Arden定理
- 將正則表示式轉換為有限自動機
- 正則文法的泵引理
- 計算理論中的正則集
- 上下文無關文法
- 上下文無關文法 (CFG)
- 上下文無關文法中的二義性
- 上下文無關語言的閉包性質
- 簡化上下文無關文法
- 喬姆斯基正規化 (CNF)
- 格雷巴赫正規化 (GNF)
- 上下文無關文法的泵引理
- 下推自動機
- 下推自動機 (PDA)
- 下推自動機的接受
- 從CFG構造PDA
- 下推自動機和語法分析
- 圖靈機
- 圖靈機 (TM)基礎
- 圖靈機接受的語言
- 多磁帶圖靈機
- 多軌跡圖靈機
- 非確定性圖靈機
- 半無限帶圖靈機
- 線性有界自動機 (LBA)
- 可計算性和不可判定性
- 圖靈語言可判定性
- 不可判定語言
- 圖靈機停機問題
- 計算理論中的Rice定理
- Post對應問題 (PCP)
- 自動機理論資源
- 自動機理論 - 快速指南
- 自動機理論 - 資源
- 自動機理論 - 討論
NFA到DFA的轉換
問題陳述
設X = (Qx, ∑, δx, q0, Fx)為一個接受語言L(X)的NFA。我們必須設計一個等價的DFAY = (Qy, ∑, δy, q0, Fy),使得L(Y) = L(X)。以下過程將NFA轉換為其等價的DFA -
演算法
輸入 - 一個NFA
輸出 - 一個等價的DFA
步驟1 - 從給定的NFA建立狀態表。
步驟2 - 為等價的DFA在可能的輸入字母表下建立一個空白狀態表。
步驟3 - 將DFA的起始狀態標記為q0(與NFA相同)。
步驟4 - 找出每個可能的輸入字母表的狀態組合{Q0, Q1,... , Qn}。
步驟5 - 每次我們在輸入字母表列下生成一個新的DFA狀態時,都必須再次應用步驟4,否則轉到步驟6。
步驟6 - 包含NFA的任何最終狀態的狀態是等價DFA的最終狀態。
示例
讓我們考慮下圖所示的NFA。

q | δ(q,0) | δ(q,1) |
---|---|---|
a | {a,b,c,d,e} | {d,e} |
b | {c} | {e} |
c | ∅ | {b} |
d | {e} | ∅ |
e | ∅ | ∅ |
使用上述演算法,我們找到其等價的DFA。DFA的狀態表如下所示。
q | δ(q,0) | δ(q,1) |
---|---|---|
[a] | [a,b,c,d,e] | [d,e] |
[a,b,c,d,e] | [a,b,c,d,e] | [b,d,e] |
[d,e] | [e] | ∅ |
[b,d,e] | [c,e] | [e] |
[e] | ∅ | ∅ |
[c, e] | ∅ | [b] |
[b] | [c] | [e] |
[c] | ∅ | [b] |
DFA的狀態圖如下所示 -

廣告