【发布时间】:2021-05-10 20:55:55
【问题描述】:
我想了解L={a^nb^m where n<=m<=2n} 的下推自动机的构造?我在堆栈上找到了this 问题。
这是我理解的答案所说的:
策略如下:我们可以轻松地制作一个接受 a^n b^n 的 PDA, 我们可以很容易地制作一个接受 a^n b^2n 的函数。我们的语言是 这些语言的超集,也接受任何带有数字的东西 b 在 n 和 2n 之间。我们可以利用非确定性来允许 如下:对于我们放入堆栈的每个 a,我们可以 不确定性地决定是否在之前消耗一个或两个 b 弹出一个。如果我们的 NPDA 选择每次消耗一个,我们得到 a^n b^n。如果它选择每次消耗两个,我们得到 a^n b^2n。如果它 选择两者中的一些,我们会在这些极端之间得到一些 b。 只有当我们用空堆栈耗尽输入时,我们才会接受。
现在,我稍微改变了问题(交换了 a 和 b 的幂)。语言现在是L={a^m b^n where n<=m<=2n}?
如果权力互换,现在这个策略会如何变化?
【问题讨论】:
-
你觉得答案有什么变化?
标签: automata computation-theory pushdown-automaton