A 演算法(啟發式搜尋)

2021-09-27 03:45:01 字數 1088 閱讀 8760

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 ...