下推自动机为(a ^ n b ^ n)^ m c ^ m

时间:2010-01-17 20:14:03

标签: pushdown-automaton

我无法为这个自动机构建过渡函数。

我想我应该为每个a堆叠1并为每个b堆叠它

c的数量等于ab对的数量,所以我认为我应该为每个遇到的b堆叠一个0。事情是:我如何取消堆叠1并同时添加0?

1 个答案:

答案 0 :(得分:5)

每次遇到0时,请勿将b推入堆栈。相反,每次遇到0时,将b推入堆栈,堆栈为空或堆栈顶部为0

所以,使用aabbabcc

的命名法
read a push 1
read a push 1
read b pop 1
read b pop 1
stack is empty so push 0
read a push 1
read b pop 1 
top of stack is 0 so push 0
read c pop 0
read c pop 0

Stack为空,所以我们接受这个字符串。