广度优先搜索和递归最佳优先搜索有什么区别?我如何描述它们之间的主要区别?
广度优先搜索和递归最佳优先搜索有什么区别?
人工智能
比较
搜索
广度优先搜索
2021-10-29 13:00:49
1个回答
根据这篇文章
广度优先搜索 (BFS) 在问题空间中进行广度搜索。广度优先搜索就像遍历一棵树,其中每个节点都是一个状态,可能是解决方案的潜在候选者。它从树的根开始扩展节点,然后一次生成一层树,直到找到解决方案。通过维护节点队列很容易实现。最初,队列只包含根。在每次迭代中,队列头部的节点被删除然后扩展。然后将生成的子节点添加到队列的尾部
根据Mikhail J. Atallah的《计算手册算法和理论》一书。
递归最佳优先搜索是在空间中运行的最佳优先搜索,该空间与最大搜索深度成线性关系,与使用的成本函数无关。
它通过在递归堆栈上维护当前正在扩展的节点的完整路径以及该路径上节点的所有直接兄弟节点以及在每个兄弟节点下方探索的子树中的最佳节点的成本来工作。
每当当前节点的成本超过树的先前扩展部分中的某个其他节点的成本时,算法就会备份到它们最深的共同祖先,并继续沿着新路径搜索。
实际上,该算法为从当前搜索路径发散的每个子树维护一个单独的阈值。
其它你可能感兴趣的问题