A*和深度优先,广度优先在寻路上的差异?

GPU小码农 2014-07-03 11:21:34
小弟觉得,
A*:得到的一定是最短路径
深度优先:不一定是最短。第一条路通了就OK
flood fill:也是最短的。
在寻路上,那A*和flood fill 都是最短的,有什么区别?
小弟才疏学浅,求各位大神指点,上述理解对吗?
...全文
532 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baihacker 2014-07-06
  • 打赏
  • 举报
回复
因为每次移动认为耗费是一样的,所以floodfill是最短的。如果这个条件没有,floodfill出来的就不是最短的了。 这个时候,floodfill应该换为dijkstra。每次找到访问过的结点中最近的,然后以这个点为基准去试探其它点。 而A*是找到访问过的结点中,已知耗费和估计的耗费加起来后最小的,然后以这个点为基准去试探其它点。 当估计的耗费满足一定条件的时候,能保证最优性。当估计的耗费是0的时候就是dijkstra了。
GPU小码农 2014-07-06
  • 打赏
  • 举报
回复
引用 4 楼 zilaishuichina 的回复:
假设起点是正中间的点,终点是最右上角的点,深度优先出来的显然不是最短路径啊
对啊。我没说深度优先最短。
zilaishuichina 2014-07-04
  • 打赏
  • 举报
回复


假设起点是正中间的点,终点是最右上角的点,深度优先出来的显然不是最短路径啊
GPU小码农 2014-07-04
  • 打赏
  • 举报
回复
引用 2 楼 zilaishuichina 的回复:
flood fill 是最短的么? flood fill不是填充一块区域的么,算出来的面 A*算出来的是一条折线,是线
对啊,洪水最先浸到目的点的路线。
赵4老师 2014-07-03
  • 打赏
  • 举报
回复
A*似乎支持动态改变的路径,支持带权值的路径。好象。
zilaishuichina 2014-07-03
  • 打赏
  • 举报
回复
flood fill 是最短的么? flood fill不是填充一块区域的么,算出来的面 A*算出来的是一条折线,是线

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧