artificial-intelligence - 最佳优先 Vs。广度优先

标签 artificial-intelligence terminology breadth-first-search

最佳优先搜索和广度优先搜索有什么区别?我们称之为“BFS”的是哪一个?

最佳答案

首先回答你的第二个问题:

which one do we call "BFS" ?


通常,当我们提到 BFS 时,我们谈论的是广度优先搜索。

What is the difference between best-first-search and the breadth-first-search


在比较此类算法时,我喜欢引用的类比是机器人挖金子。
给定一座小山,我们的目标是简单地找到黄金。
广度优先搜索事先不知道金子的下落,所以机器人只需沿着 10 英尺长的带挖 1 英尺深,如果没有找到任何金子,它就会挖 1 英尺深。
[![广度优先搜索][1]][1]
最佳优先搜索然而,它有一个内置的金属探测器,这意味着它有先验知识。当然,拥有金属探测器的成本,以及打开它并查看哪个地方最适合开始挖掘的成本。
最佳优先搜索被告知,而广度优先搜索是不知情的,因为一个有金属探测器而另一个没有!
[![知情搜索​​][2]][2]
广度优先搜索是完整的,这意味着如果存在解决方案,它将找到解决方案,并且给定足够的资源将找到最佳解决方案。
如果启发式(成本的估计量/因此先验知识)是可接受的,则最佳优先搜索也是完整的——这意味着它高估了获得解决方案的成本)
我从 http://slideplayer.com/slide/9063462/ 得到了 BFS 图像最佳优先搜索是我在 photoshop 上的失败尝试!
[1]:/image/m5EgX.png
[2]:/image/8tMbh.png

关于artificial-intelligence - 最佳优先 Vs。广度优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093286/

相关文章:

javascript - 是 "code"还是 "markup"?

java - EditText 检查是否有关键字

来自伪代码的 Java 模拟退火

machine-learning - 红眼检测

javascript - 在 JavaScript 中,有没有一个词可以描述一个 JSON 可序列化的对象?

c# - 如何修改 dijkstra 算法以找到所有可能的路径?

php - 对网络集体编程感兴趣——Ruby 或 Python 或 PHP?

terminology - 什么词或短语表示 "white space"的反义词?

algorithm - O(E+V) 算法计算给定图上 2 个节点之间的最短路径数

c - 程序查找图的两个给定顶点之间是否存在路径