
- 自動機理論教程
- 自動機理論 - 首頁
- 自動機理論 - 入門
- 自動機理論 - 歷史
- 自動機理論 - 應用
- 自動機理論術語
- 自動機中字串的基礎
- 自動機的集合論
- 語言和文法
- 計算理論中的文法
- 由文法生成的語言
- 喬姆斯基文法分類
- 有限自動機
- 確定性有限自動機 (DFA)
- 非確定性有限自動機 (NFA)
- 從NFA到DFA的轉換
- DFA的最小化
- 穆爾機與米利機
- DFA的補集
- 正則表示式
- 自動機中的正則表示式
- 自動機中的阿登定理
- 將正則表示式轉換為有限自動機
- 正則文法的泵引理
- 計算理論中的正則集
- 上下文無關文法
- 上下文無關文法 (CFG)
- 上下文無關文法中的二義性
- 上下文無關語言的封閉性
- 簡化上下文無關文法
- 喬姆斯基正規化 (CNF)
- 格雷巴赫正規化 (GNF)
- 上下文無關文法的泵引理
- 下推自動機
- 下推自動機 (PDA)
- 下推自動機的接受
- 從CFG構造PDA
- 下推自動機和語法分析
- 圖靈機
- 圖靈機 (TM) 基礎
- 圖靈機接受的語言
- 多磁帶圖靈機
- 多軌跡圖靈機
- 非確定性圖靈機
- 半無限帶圖靈機
- 線性界限自動機 (LBA)
- 可計算性和不可判定性
- 圖靈語言的可判定性
- 不可判定語言
- 圖靈機停機問題
- 計算理論中的萊斯定理
- 波斯特對應問題 (PCP)
- 自動機理論資源
- 自動機理論 - 快速指南
- 自動機理論 - 資源
- 自動機理論 - 討論
從正則表示式構造有限自動機
我們可以使用湯姆遜構造法從正則表示式中找出有限自動機。我們將把正則表示式簡化為最小的正則表示式,並將這些表示式轉換為NFA,最後轉換為DFA。
一些基本的RA表示式如下:
情況1 - 對於正則表示式“a”,我們可以構造以下FA:

情況2 - 對於正則表示式“ab”,我們可以構造以下FA:

情況3 - 對於正則表示式(a+b),我們可以構造以下FA:

情況4 - 對於正則表示式(a+b)*,我們可以構造以下FA:

方法
步驟1 從給定的正則表示式構造一個帶有空移動的NFA。
步驟2 去除NFA中的空轉移,並將其轉換為等價的DFA。
問題
將以下RA轉換為等價的DFA:1(0+1)*0
解決方案
我們將連線三個表示式“1”、“(0+1)*”和“0”。

現在我們將移除ε轉移。在從NDFA中移除ε轉移後,我們得到以下結果:

這是一個對應於RE - 1(0+1)*0的NDFA。如果要將其轉換為DFA,只需應用第1章中討論的將NDFA轉換為DFA的方法。
帶有空移動的有限自動機 (NFA-ε)
帶有空移動的有限自動機 (FA-ε) 不僅在從字母集接收輸入後轉換,而且在沒有任何輸入符號的情況下轉換。這種無需輸入的轉換稱為空移動。
NFA-ε 由一個 5 元組 (Q, ∑, δ, q0, F) 形式表示,包括
Q - 一個有限的狀態集
∑ - 一個有限的輸入符號集
δ - 一個轉移函式 δ : Q × (∑ ∪ {ε}) → 2Q
q0 - 一個初始狀態 q0 ∈ Q
F - Q 的一組最終狀態/狀態 (F⊆Q)。

上述(FA-ε) 接受一個字串集 - {0, 1, 01}
從有限自動機中移除空移動
如果在一個NDFA中,頂點X到頂點Y之間存在ϵ-移動,我們可以使用以下步驟將其移除:
- 查詢從Y發出的所有邊。
- 複製從X開始的所有這些邊,而不更改邊標籤。
- 如果X是初始狀態,則使Y也成為初始狀態。
- 如果Y是最終狀態,則使X也成為最終狀態。
問題
將以下NFA-ε 轉換為沒有空移動的NFA。

解決方案
步驟1 -
這裡 ε 轉移在q1和q2之間,所以設q1為X,qf為Y。
這裡從qf發出的邊是對於輸入0和1到qf。
步驟2 -
現在我們將複製從q1開始的所有這些邊,而不更改從qf開始的邊,並獲得以下FA:

步驟3 -
這裡q1是初始狀態,所以我們也使qf成為初始狀態。
所以FA變為:

步驟4 -
這裡qf是最終狀態,所以我們也使q1成為最終狀態。
所以FA變為:
