AStar尋路1-實現基本功能

分類:IT技術 時間:2017-06-10

A星算法是一種啟發式的搜索方法,通過一個路徑評估函數,來動態確定最佳路徑。這點和廣度搜索不同。

基本思想是有2個列表,open和close,

open列表裏面的節點表示待搜索周圍點的節點,close列表裏面記錄著不需要搜索的節點。

啟發式函數f=g+h;

f表示該路徑的代價,g表示起點到搜索的點的該條路徑的實際值,h表示該搜索的點到終點的估計值。h的估計值越接近當前點到終點的最短路徑的實際值那麽A星搜索出來的路徑就越接近實際的最短路徑,從這點來看A星是時間和精度的一個權衡改進的廣度搜索算法。h值始終為0的話,那退化為廣度搜索了。

進過以下測試,大約犧牲了10%的精度換來了10倍的速度。

上圖為h值為0,退化為廣度搜索。

上圖為曼哈頓估值法(即橫向和縱向距離之和),

上圖為距離估值法。

上圖為隨機化地圖遮擋的結果,

每次搜索都從open表中找出代價最小的節點進行搜索,

下篇主要是優化性能

 

 

 

 

 

 

參考 http://blog.csdn.net/linjiayun/article/details/17381575

 


Tags: 曼哈頓 啟發式 close 起點 動態

文章來源:


ads
ads

相關文章
ads

相關文章

ad