📜  门| GATE IT 2006 |第33章

📅  最后修改于: 2021-06-28 19:38:58             🧑  作者: Mango

考虑下推自动机(PDA),它在输入字母(a,b,c)上方运行。它具有堆栈字母{Z 0 ,X},其中Z 0是堆栈底部标记。 PDA的状态集为(s,t,u,f},其中s为开始状态,f为最终状态。PDA接受最终状态。下面以标准方式描述了PDA的转变例如,转换(s,b,X)→(t,XZ 0 )表示如果PDA处于状态s,并且堆栈顶部的符号是X,则它可以从输入中读取b,并且弹出堆栈顶部并将符号Z 0和X(按此顺序)推入堆栈后,移动到状态t。
(s,a,Z 0 )→(s,XXZ 0 )
(s,ϵ,Z 0 )→(f,ϵ)
(s,a,X)→(s,XXX)
(s,b,X)→(t,ϵ)
(t,b,X)→(t,.ϵ)
(t,c,X)→(u,ϵ)
(u,c,X)→(u,ϵ)
(u,ϵ,Z 0 )→(f,ϵ)

PDA接受的语言是
(A) {a l b m c n | l = m = n}
(B) {a l b m c n | l = m}
(C) {a l b m c n | 2l = m + n}
(D) {a l b m c n | m = n}答案: (C)
说明:每个输入’a’将两个X插入到堆栈中,并且每个X只能由’b’或’c’使用。在输入“ a”上,没有规则给出gives。因此,对于每个“ a”,终止由“ b”或“ c”或两者执行。

例子:
输入:
a 3 b 2 c 4
叠加:Z 0
在三个a之后:
堆:
XXXXXXZ 0
在两个b之后:
堆:
XXXXZ 0
在四个c之后:
您可以达到最终状态。
这里也接受a 3 b 2 c 4。
这个问题的测验