形式語言與編譯10 下推自動機PDA

2022-06-26 10:48:09 字數 1936 閱讀 5053

2型文法的處理裝置——下推自動機(pda)

正則文法處理不了括號對,但是上下文無關文法可以表示出來。上下文無關文法是強於正則文法的。下推自動機的能力是強於有限自動機的

下推自動機相對於有限自動機 它就是多了乙個。其他都一樣(輸入串,狀態)

狀態機(pda)在對輸入串做讀入操作的同時,棧頂能夠同時地 做push/pop操作。

為了讓每一步格式都一樣,我們可以在剛開始和結束時也加上 \(read ~ \epsilon\) ,這樣格式就對稱了。

對於上面這個串,我們先不讀入任何(或者理解為讀入 \(\epsilon\)) ,棧中壓入$ $ $ ,再讀入0,棧中壓入標記x,再讀入0,棧中壓入標記x……,再讀入1,棧中彈出標記x,再讀入1,棧中彈出標記x……;再不讀入(或者理解為讀入\(\epsilon\)) ,再彈出\(\$\) .結束。

這種裝置優勢是用來處理左右匹配成對的任務,比如括號任務,非常成功!!!

一般的,按照上面這種標記方法進行表示 [讀入,彈出/壓入]

數學定義 七元組\((q,\sigma,\gamma,\delta,q_0,z_0,f)\)

上面這個其實就是在五元組的基礎上擴充套件出來的,多出來兩個,分別是:

\(\gamma\) :棧字母表上面中例子: \(x,\$\in\gamma\)

\(z_0 ~ \in ~ \gamma\): 棧字母表的開始符號上面例子中: \(\$\)

\(\delta\) 變了,變比原來複雜了:現在不光要改變狀態,還要改變棧。

注意到:這個遷移函式得到的是 集合。 \((q,a)\) 得到\(p\) ,\(x\) 得到 \(\gamma\)

這裡畫狀態轉移圖的時候,只要畫出讀入字母表能夠轉移的,不用畫出所有狀態,到不了的集合標記 空集 就行了。(這是dfa才弄的)

根據串 畫出pda

瞬時描述

瞬時描述實際有點像給下推自動機拍個照

兩次瞬態表示一次移動

輸入串被識別過程

上面這個例子 表示輸入串不能被識別!!(輸入串必須被消耗完,而且達到終止狀態才算成功)

這個失敗例子是 到不了終止狀態

通過棧的終結狀態來定義:也就是當字串處理完並且處於終結狀態

從空棧角度定義pda:字串處理完並且棧為空,狀態無所謂

空棧接受與終態接受的等價

形式語言與自動機複習 4 7

1.dfa轉正則語言 1.直接轉 需要注意的是,我們經常會處理到一p s p的情況,讓我們分析一下這個本質是什麼 可以把p看作p t看作p 那麼實際上 p s p 只會變成 p t p p 而p s q並沒有受到 p s t的影響 這也就是為什麼不會這麼迴圈的原因 如下 q0 q2 q0只會影響作用...

自然語言處理(四) 下推自動機接受的語言

下推自動機的定義 乙個不確定的pda可以表達成乙個7元組 m q,q0,z0,f 其中,是輸入符號的有窮集合 q 是狀態的有限集合 q0 q 是初始狀態 為下推儲存器符號的有窮集合 z0 為最初出現在下推儲存器頂端的開始符號 f 是終止狀態集合,f q 是從 q 到 q 的子集的對映。對映關係 q,...

形式語言與自動機理論總結

一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。1,集合關係 並 交 補 差 笛卡爾積 冪積 二元關係 1 笛卡爾積 axb,即都分別對應的乘積。例1 1,a b 則 axb 2 冪積 2 a,即所有的子集。例1 2,a 則2 a 3 二元關係 任意的r a b,r 是a到b 的...