A*算法 = Dijkstra算法 + BFS算法
它把Dijkstra算法(靠近初始点的结点)和BFS算法(靠近目标点的结点)的信息块结合起来。在讨论A*的标准术语中,
- g(n)表示从 初始结点 ~ 结点n 的代价
- h(n)表示从 结点n ~ 目标点 的 预计代价(不是精确的值)
在上图中,
- yellow(h)表示远离目标的结点
- teal(g)表示远离初始点的结点。
当从初始点向目标点移动时,A*权衡这两者。每次进行主循环时,它检查f(n)最小的结点n,其中f(n) = g(n) + h(n)。
A*算法 Dijkstra算法
参考:
http://www.cnblogs.com/technology/archive/2011/05/26/2058842.html
https://blog.csdn.net/denghecsdn/article/details/78778769