下推自動機(PDA)

以終止狀態接受(acceptance by final state)

判定下推自動機是否接受一個字串有兩種方式,第一種是從有限自動機承襲而來、我們熟悉的那一種:看控制最後停在哪裡。在「以終止狀態接受」之下,機器接受一個字串的條件是:讀完所有輸入後,有限控制停在指定的接受狀態集合 F 之中——無論堆疊上還剩什麼。

形式上,機器以終止狀態接受輸入 w 的條件是:起始 ID (q0, w, Z0) 在零步或多步內產生某個 ID (p, ε, γ),其中 p ∈ F。讀那個目標的三個部分:ε 表示所有輸入已消耗,p ∈ F 表示控制處於接受狀態,而 γ 是堆疊上恰好剩下的任何東西——剩什麼都無所謂,堆疊內容根本被忽略。由於 PDA 是非確定性的,「接受」意味「某一」條計算路徑在輸入讀完時停在 F。

這種模式感覺很自然,因為它恰好推廣了 DFA 的接受方式:看它停在哪個狀態。堆疊在運行過程中盡了記帳之責,但抵達終點時我們只檢查控制。一個另行證明的關鍵事實是:這既不比另一種模式弱、也不比它強——以終止狀態接受的語言,恰好就是以空堆疊接受的語言,也就是上下文無關語言。對某個給定的構造,你可以選擇較方便的那一種模式。

一台 F = {q2} 的 a^n b^n 機器:在為 a 推入、為 b 彈出之後,只有當堆疊回到 Z0 時,一次 ε-移動才把它帶到 q2。若在 q2 時輸入剛好讀完,就接受;堆疊還留著 Z0 並不影響結果。

若輸入讀完且控制停在接受狀態就接受——堆疊內容被忽略。

以終止狀態接受在最後完全忽略堆疊。這與以空堆疊接受是不同的慣例,但兩者辨識的語言類別完全相同。

又称
final-state acceptanceaccepting by accepting state以接受狀態接受