【发布时间】:2020-02-03 14:23:33
【问题描述】:
我想设计接受以下两种语言的 NPDA(非确定性下推自动机)。 请解释如何设计它们。
L(r) where r = abb*aba*
L(r) = {a^nb^2n : n > 0}
【问题讨论】:
我想设计接受以下两种语言的 NPDA(非确定性下推自动机)。 请解释如何设计它们。
L(r) where r = abb*aba*
L(r) = {a^nb^2n : n > 0}
【问题讨论】:
第一个可能是这样工作的:
第二个可能是这样的:
编辑:所需转换的大纲。
第一个:
q0 is initial
(q0, a, Z) -> (q1, aZ)
(q1, b, a) -> (q2, ba)
(q2, b, b) -> (q2, bb)
(q2, a, b) -> (q3, ab)
(q3, b, a) -> (q4, ba)
(q4, a, b) -> (q4, ab)
(q4, a, a) -> (q4, aa)
(q4, e, a) -> (q5, a)
(q4, e, b) -> (q5, b)
q5 is accepting
第二个:
q0 is initial
(q0, a, Z) -> (q1, aZ)
(q1, a, a) -> (q1, aa)
(q1, b, a) -> (q2, a)
(q2, b, a) -> (q3, e)
(q3, b, a) -> (q2, a)
q3 is accepting
两个 NPDA 都设计为在堆栈为空且输入耗尽时处于接受状态。
【讨论】: