[英]can i push two symbols to the stack of a pushdown automata?
這實際上是您如何定義 PDA 的問題——您選擇使用什么約定。 通常,我認為慣例是一個過渡推動一個符號。 但是,允許推送任意字符串不會增加 PDA model 的功率(盡管它可以減少所需狀態的數量)。 要了解這一點,請使用任何將長度大於 1 的字符串壓入堆棧的 PDA。 通過引入具有空/lambda/epsilon 轉換的附加狀態以一次推送一個符號,可以將此 PDA 轉換為將長度最多為一個的字符串推送到堆棧上的 PDA。 這甚至不會將 DPDA 轉變為 NPDA,因為如果在轉換之前是這種情況,那么在任何給定時間,在新 PDA 中最多只能進行一次轉換。
事實上,用於顯示 PDA 可以接受 CFG 語言的結構明確依賴於能夠在一次轉換中推送任意長度的字符串。 該構造通過推動開始符號然后不確定地推動非終結符的產生來工作。 由於產生的 RHS 通常比一個符號長,如果生成的 PDA 必須為每個產生具有單獨的狀態路徑,則結構會更加丑陋。 通過允許推送任意長度的字符串,該構造為任何 CFG 生成一個兩態 NPDA。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.