導言:
A*演算法算是一個比較經典的路徑規劃的演算法了,在自動駕駛領域更是用的比較普遍,也是由於工作關係開始關注這些演算法,也嘗試用Python寫一些演算法的實現,中間經歷了從完全不懂到似懂非懂到最後徹底理解,所以把A*的一些基本知識點分享上來。
介紹(via baidu):
A* (A-Star)演算法是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是許多其他問題的常用啟發式演算法。注意——是最有效的直接搜索演算法,之後湧現了很多預處理演算法(如ALT,CH,HL等等),在線查詢效率是A*演算法的數千甚至上萬倍。
公式表示為: f(n)=g(n)+h(n),
其中, f(n) 是從初始狀態經由狀態n到目標狀態的代價估計,
g(n) 是在狀態空間中從初始狀態到狀態n的實際代價,
h(n) 是從狀態n到目標狀態的最佳路徑的估計代價。
(對於路徑搜索問題,狀態就是圖中的節點,代價就是距離)
演算法: