统一成本搜索和最佳优先搜索方法之间有什么区别?

时间:2017-05-24 07:27:11

标签: search artificial-intelligence difference best-first-search uniform-cost-search

两种方法都有一个数据结构,用于保存节点(及其成本)以进行扩展。两种方法首先以最高成本扩展节点。那么,它们之间有什么区别?

有人告诉我,统一成本搜索是一种盲目的方法,而最好先搜索不是,这让我更加困惑(两者都有关于节点成本的信息吗?)。

5 个答案:

答案 0 :(得分:17)

区别在于heuristic功能。

统一成本搜索是无信息搜索:它不使用任何域知识。它扩展了成本最低的节点,并且它在每个方向都这样做,因为没有提供有关目标的信息。它可以被视为一个函数f(n) = g(n),其中g(n)是路径成本("路径成本"本身是一个函数,根据性能度量为路径分配数字成本,例如,以公里为单位的距离,或移动次数等)。到达节点 n 只是一个成本。

Best-first search 被告知搜索:它使用启发式函数来估计当前状态与目标的接近程度(我们是否接近目标?)。因此,我们的成本函数f(n) = g(n)与从n到目标的成本相结合,h(n)(估算成本的启发函数)给我们f(n) = g(n) + h(n)。最优先搜索算法的一个示例是 A * 算法。

是的,两种方法都有扩展节点列表,但最佳优先搜索将尝试最小化扩展节点数(路径成本+启发式函数)。

答案 1 :(得分:5)

这里有些误解。统一成本搜索,最佳优先搜索和A *搜索算法都是不同的算法。当最佳第一 A * 搜索算法是有根据的搜索算法时,统一成本是一种不为人知的搜索算法。知情的意味着它使用启发式函数来确定扩展节点。最佳优先搜索和A *之间的区别在于,最佳优先使用f(n) = h(n)进行扩展,而A *使用f(n) = g(n)+h(n)来选择扩展节点。 h(n)是启发式函数。 g(n)是从起始节点到节点n的实际成本。

https://www.cs.utexas.edu/~mooney/cs343/slide-handouts/heuristic-search.4.pdf可以在此处看到更多详细信息。

答案 2 :(得分:4)

对接受的答案进行轻微更正

最佳优先搜索不估计当前状态与目标的接近程度,它估计每个下一个状态(从当前状态)到目标的接近程度,以影响所选路径。

统一成本搜索扩展了成本最低的节点(无论启发式),并且最佳优先搜索扩展了最少(成本+启发式)节点。

  • f(n)是用于评估潜在节点的成本函数 扩展
  • g(n)是移动到节点n
  • 的成本
  • h(n)是估计的 如果我们到达最终目标状态将花费的成本 去n

统一成本搜索中使用的f(n)

f(n) = g(n)

最佳优先搜索中使用的f(n)(A *是最佳优先搜索的示例)

f(n) = g(n) + h(n)

这些函数中的每一个都在评估潜在的扩展节点,而不是当遍历树寻找目标状态的n时的当前节点

答案 3 :(得分:1)

差异如下:

  • 统一成本搜索(UCS)以最低路径成本(即具有最低g(n))扩展节点,而最佳优先搜索(BFS)扩展最接近目标的节点

  • UCS无法处理启发式函数,而BFS可以处理启发式函数

  • 在UCS中,f(n)= g(n),而在BFS中,f(n)= g(n)+ h(n)。

答案 4 :(得分:1)

统一成本搜索会选择距离最短的未访问节点,计算通过该节点到每个未访问邻居的距离,并在更小的情况下更新邻居的距离。

最佳优先搜索是一种基于启发式的算法,它试图预测路径末端(即路径中的最后一个节点)与目标节点之间的距离,以使被判断为更接近路径的路径。解决方案首先进行扩展。