有一种语言L = {0,1} ^ *,事实是1和0不应该是相同的数字。我怎样才能在PDA自动机中呈现它?
提前致谢!
答案 0 :(得分:2)
PDA可以读取输入,推入堆栈,然后弹出堆栈。在尝试设计自动机,尤其是PDA和TM时,我喜欢将输入字符串视为排在桌面上的长排彩色大理石或芯片。那么问题是,如果只使用一个堆栈并从左到右拾取芯片,你能判断一排芯片是否有不同数量的红色和蓝色芯片吗?
以下是一种方法。拿起大理石时,看看堆栈。如果堆叠是空的或顶部有相同的颜色芯片,请将芯片放下。如果最顶部的芯片颜色不同,则将拾取的芯片和堆叠中最顶层的芯片放入袋中。继续,直到你拿起所有筹码。现在看看堆栈。如果堆栈是空的,那意味着你必须抛弃相同数量的红色和蓝色芯片。如果堆叠中有一些芯片,那就意味着有些芯片无法丢弃。实际上,剩下的芯片颜色会告诉你哪种芯片更多。