非确定性 PDA 如何以及为何比确定性 PDA 更强大?请解释一下。
最佳答案
有些语言是非确定性 PDA 可以接受的,但确定性 PDA 却不能接受。这种语言的一个简单例子是所有(为简单起见,假设为偶数长度)回文(例如,英语字母表)的语言。在每个步骤中,确定性 PDA 必须决定是将下一个符号插入堆栈还是将下一个符号与堆栈顶部的符号进行匹配。然而,这是不可能正确完成的,因为 DPDA 无法知道它位于字符串的中间点。非确定性 PDA (NPDA) 的工作原理是在每个步骤中猜测输入的一半,并在此基础上继续进行。它会做出很多错误的猜测,但其中一个猜测是正确的,如果字符串是回文,NPDA 将接受该分支上的字符串。由于如果其中一个路径接受,则 NPDA 接受字符串,这意味着 NPDA 可以正确接受该语言,但 DPDA 不能。
关于algorithm - 非确定性 PDA 如何以及为何比确定性 PDA 更强大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54059449/