a*演算法,a*(a-star)演算法是一種靜態路網中求解最短路徑最有效的直接搜尋方法,也是解決許多搜尋問題的有效演算法。演算法中的距離估算值與實際值越接近,最終搜尋速度越快。
別稱:啟發式搜尋
表示式: f(n
)=g(
n)+h
(n
)f(n)=g(n)+h(n)
f(n)=g
(n)+
h(n)
公式表示為: f(n
)=g(
n)+h
(n
)f(n)=g(n)+h(n)
f(n)=g
(n)+
h(n)
其中, f(n
)f(n)
f(n)
是從初始狀態經由狀態 n
nn 到目標狀態的代價估計,
g (n
)g(n)
g(n)
是在狀態空間中從初始狀態到狀態 n
nn 的實際代價,
h (n
)h(n)
h(n)
是從狀態n到目標狀態的最佳路徑的估計代價。
(對於路徑搜尋問題,狀態就是圖中的節點,代價就是距離)
h (n
)h(n)
h(n)
的選取保證找到最短路徑(最優解的)條件,關鍵在於估價函式 f(n
)f(n)
f(n)
的選取(或者說 h(n
)h(n)
h(n)
的選取)。
我們以 d(n
)d(n)
d(n)
表達狀態 n
nn 到目標狀態的距離,那麼 h(n
)h(n)
h(n)
的選取大致有如下三種情況:
該演算法在最短路徑搜尋演算法中分類為:
直接搜尋演算法:直接在實際地圖上進行搜尋,不經過任何預處理;
啟發式演算法:通過啟發函式引導演算法的搜尋方向;
靜態圖搜尋演算法:被搜尋的圖的權值不隨時間變化(後被證明同樣可以適用於動態圖的搜尋。
啟發式搜尋
啟發式搜尋 heuristically search 又稱為有資訊搜尋 informed search 它是利用問題擁有的啟發資訊來引導搜尋,達到減少搜尋範圍 降低問題複雜度的目的,這種利用啟發資訊的搜尋過程稱為啟發式搜尋。例題 八數碼問題 運用優先佇列,根據目前已經確定的位置算出目前的價值,並匯入...
啟發式搜尋
啟發式搜尋 啟發式搜尋就是在狀態空間中的搜尋對每乙個搜尋的位置進行評估,得到最好的位置,再從這個位置進行搜尋直到目標。這樣可以省略大量無謂的搜尋路徑,提高了效率。在啟發式搜尋中,對位置的估價是十分重要的。採用了不同的估價可以有不同的效果。在啟發式搜尋中,我們每次找到當前 最有希望是最短路徑 的狀態進...
演算法初探 啟發式搜尋
2020.07.21 11 40 2020.08.30 16 55 a problem 如果讓你在這麼乙個方格圖中尋找最短路徑,你會怎麼做?student a 我會廣度優先演算法!student b 最優 我會貪心走過去!上面是最簡單的狀況,如果有障礙物呢?注 綠色格仔不可通過 student a ...