1,Dijkstra’s 算法
一種發散性尋找最短路徑算法。
由起點開始向四周開始發散,直到碰到目標點為止。這時就是最短路徑。優點:能找到與目標點的最短路徑;缺點:搜索花費的時間會比較長。
2,Greedy Best-First-Search 快速搜索算法。
啟發性的算法,根據目標點的方向去搜索。優點:搜索快速。缺點:不一定是最短路徑。
3,A*算法
A*算法被認為最有效的尋路算法。
結合了Dijkstra’s 算法和快速搜索算法的優點。
公式:F=G+H
其中G = 從起點 A 移動到指定方格的移動代價,沿着到達該方格而生成的路徑。
H = 從指定的方格移動到終點 B 的估算成本。這個通常被稱為試探法
由一個open_list和一個close_list組成,
參考:http://blog.csdn.net/hitwhylz/article/details/23089415
參考:http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html