algorithm - 非确定性 PDA 如何以及为何比确定性 PDA 更强大?

标签 algorithm computer-science discrete-mathematics automata

非确定性 PDA 如何以及为何比确定性 PDA 更强大?请解释一下。

最佳答案

有些语言是非确定性 PDA 可以接受的,但确定性 PDA 却不能接受。这种语言的一个简单例子是所有(为简单起见,假设为偶数长度)回文(例如,英语字母表)的语言。在每个步骤中,确定性 PDA 必须决定是将下一个符号插入​​堆栈还是将下一个符号与堆栈顶部的符号进行匹配。然而,这是不可能正确完成的,因为 DPDA 无法知道它位于字符串的中间点。非确定性 PDA (NPDA) 的工作原理是在每个步骤中猜测输入的一半,并在此基础上继续进行。它会做出很多错误的猜测,但其中一个猜测是正确的,如果字符串是回文,NPDA 将接受该分支上的字符串。由于如果其中一个路径接受,则 NPDA 接受字符串,这意味着 NPDA 可以正确接受该语言,但 DPDA 不能。

关于algorithm - 非确定性 PDA 如何以及为何比确定性 PDA 更强大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54059449/

相关文章:

在二维数组中跟踪边界的算法

java - 计算多条路径时 Dijkstra 算法失败

algorithm - 找出递归函数的模式

java - 如何在 LinkedList 节点中保留两条信息?

algorithm - 证明寻找最小生成树的新算法的最优性

algorithm - 给定一个整数数组,找到使每个值相等的最小步数

algorithm - 一道面试题——将文本按规则拆分成子串

mysql - 获得性能和执行快速 sql 查询的最佳方法?

javascript - UTF-8 与 UTF-16 和 UTF-32 转换混淆

math - 从 0 开始数组的好处?