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