
138
|
第 4 章
多大的運算能力?
我們在本章遇到了運算能力的兩個新層級:DPDA 比 DFA 和 NFA 更強大,而 NPDA
又更強大。存取堆疊似乎讓下推自動機比有限自動機更多了一點運算能力和複雜性。
擁有堆疊最大的結果是能識別有限自動機不能識別的某些語言的能力,例如回文和對稱
括號字串。堆疊提供的無限儲存讓 PDA 在運算期間能記住任意數量的資訊,並可在稍
後又再參照它。
和有限自動機不同的是,PDA 無需讀取任何輸入即可無限循環,即使不是特別有用,
也讓人覺得好奇。DFA 甚至只能使用輸入的字元來改變狀態,而且儘管 NFA 遵循自由
移動即可自行改變狀態,但是它只能在它結束返回它開始之前才進行有限的次數。另一
方面,PDA 可以處於單一狀態,不僅持續不斷將字元推入堆疊,而且也從未重複相同
的組態。