考虑下面给出的带有输入字母∑的PDA的过渡图; = {a,b}并堆叠字母Γ= {X,Z}。 Z是初始堆栈符号。令L表示PDA接受的语言。
(A) A
(B) B
(C) C
(D) D答案: (D)
解释:
在给定的PDA中,我们可以从左到右分别将状态编号为q1,q2和q3。
PDA的过渡如下:
-
(q1,a,Z) -> (q1,XZ)
-
(q1,a,X) -> (q1,XX)
-
(q1,b,X) -> (q2,€)
-
(q2,b,X)– > (q2,€)
-
(q2,€,Z) -> (q3,Z)
由于初始状态是最终状态,因此PDA始终接受空字符串。
前两个转换表明,状态在“ a”输入字母上保持q1(最终状态),对于每个“ a”,我们将X压入堆栈。因此,对于n≥0,始终接受n 。
转换3和4显示,对于输入字母“ b”和堆栈符号X(即字符串出现“ a”),我们可以从堆栈中弹出X。转换5显示,只有当字符串为空且堆栈符号为Z时,我们才能进入最终状态(q3)。当我们从堆栈中弹出所有X时,即“ b”与“ a”发生的时间完全相同,这是可能的’。因此,对于n≥0,总是接受n b n 。 PDA接受的语言是{a n | n≥0} U {a n b n | n≥0},是确定性CFL。
(a n b n |n≥0不是常规的,但被PDA接受)。因此,选项(D)。
该解决方案由Yashika Arora提供。
这个问题的测验