- 自動機理論教程
- 自動機理論 - 首頁
- 自動機理論 - 入門
- 自動機理論 - 歷史
- 自動機理論 - 應用
- 自動機理論術語
- 自動機中字串的基礎知識
- 自動機的集合論
- 語言和文法
- 計算理論中的文法
- 由文法生成的語言
- 喬姆斯基文法分類
- 有限自動機
- 確定性有限自動機 (DFA)
- 非確定性有限自動機 (NFA)
- 從 NFA 到 DFA 的轉換
- DFA 的最小化
- 穆爾機與米利機
- DFA 的補集
- 正則表示式
- 自動機中的正則表示式
- 自動機中的 Arden 定理
- 將正則表示式轉換為有限自動機
- 正則文法的泵引理
- 計算理論中的正則集
- 上下文無關文法
- 上下文無關文法 (CFG)
- 上下文無關文法中的二義性
- 上下文無關語言的封閉性
- 簡化上下文無關文法
- 喬姆斯基正規化 (CNF)
- 格雷巴赫正規化 (GNF)
- 上下文無關文法的泵引理
- 下推自動機
- 下推自動機 (PDA)
- 下推自動機的接受
- 從 CFG 構造 PDA
- 下推自動機和語法分析
- 圖靈機
- 圖靈機基礎 (TM)
- 圖靈機接受的語言
- 多磁帶圖靈機
- 多軌跡圖靈機
- 非確定性圖靈機
- 半無限帶圖靈機
- 線性有界自動機 (LBA)
- 可計算性和不可判定性
- 圖靈語言的可判定性
- 不可判定語言
- 圖靈機停機問題
- 計算理論中的 Rice 定理
- Post 對應問題 (PCP)
- 自動機理論資源
- 自動機理論 - 快速指南
- 自動機理論 - 資源
- 自動機理論 - 討論
下推自動機介紹
PDA 的基本結構
下推自動機是一種以類似我們為正則文法設計 DFA 的方式實現上下文無關文法的方法。DFA 可以記住有限數量的資訊,但 PDA 可以記住無限數量的資訊。
基本上,下推自動機是 -
"有限狀態機" + "一個棧"
下推自動機具有三個組成部分 -
- 輸入帶,
- 控制單元,以及
- 一個無限大小的棧。
棧指標掃描棧頂符號。
棧執行兩個操作 -
壓棧 - 在頂部新增一個新符號。
出棧 - 讀取並刪除頂部符號。
PDA 可能會也可能不會讀取輸入符號,但它必須在每次轉換中讀取棧頂。
PDA 可以正式描述為一個 7 元組 (Q, ∑, S, δ, q0, I, F) -
Q 是有限數量的狀態
∑ 是輸入字母表
S 是棧符號
δ 是轉移函式:Q × (∑ ∪ {ε}) × S × Q × S*
q0 是初始狀態 (q0 ∈ Q)
I 是初始棧頂符號 (I ∈ S)
F 是一個接受狀態集 (F ∈ Q)
下圖顯示了 PDA 從狀態 q1 到狀態 q2 的轉換,標記為 a,b → c -
這意味著在狀態 q1,如果我們遇到一個輸入字串 'a' 並且棧頂符號是 'b',那麼我們彈出 'b',將 'c' 推入棧頂並移動到狀態 q2。
與 PDA 相關的術語
瞬時描述
PDA 的瞬時描述 (ID) 由一個三元組 (q, w, s) 表示,其中
q 是狀態
w 是未消耗的輸入
s 是棧內容
旋轉門符號
“旋轉門”符號用於連線表示 PDA 一次或多次移動的 ID 對。轉換過程由旋轉門符號“⊢”表示。
考慮一個 PDA (Q, ∑, S, δ, q0, I, F)。轉換可以用以下旋轉門符號數學表示 -
(p, aw, Tβ) ⊢ (q, w, αb)
這意味著在從狀態 p 到狀態 q 進行轉換時,輸入符號 'a' 被消耗,並且棧頂 'T' 被新字串 'α' 替換。
注意 - 如果我們想要 PDA 的零次或多次移動,我們必須為此使用符號 (⊢*)。
廣告