AI算法是一種重要的啓發式算法,主要用於選擇兩點之間的最佳路徑,A的實現也經過評估函數實現
F=G + H
G表明從這一點到起點的成本
H是今後點到終點的曼哈頓距離。
F是G和H的和,最佳路徑是選擇最小的F值並進行下一步(更多詳細信息將在後面描述)
曼哈頓距離
Paste_Image.png
上圖中從熊到樹葉的曼哈頓距離是由藍線表示的距離,其中沒有考慮障礙物。若是上圖中每一個框的長度爲1,則此時熊的曼哈頓距離爲9。
開始(X1,Y1),結束(X2,Y2),H=| X2-X1 | + | Y2-Y1 |
咱們也能夠經過幾何座標點來計算曼哈頓距離,或者以上圖爲例,左下角是(0,0)點,熊的位置是(1,4),樹葉的位置是(7,1),則H=| 7-1 | + | 1-4 |=9。
打開,關閉列表
以上面的圖片爲例。例如,開始時,熊的位置將被添加到CLOSE列表中,熊可移動的點將被添加到OPEN列表中,熊周圍的八個節點爲F=G + An評估操做(例如H),而後在8個節點中選擇F值最小的節點,而後從OPEN列表中刪除該節點並將其添加到Close列表。從那時起,此節點8周圍的每一個節點都會執行評估操做,而後按順序進行計算。所以,每一個人可能都不太瞭解它。我將在下面詳細解釋。
*算法示例
Paste_Image.png
從頭至尾,咱們使用A-star算法找到最佳路徑
Paste_Image.png
咱們將每一個正方形的長度定義爲1,則從起點到5位置的成本爲1,從3到1.4的成本爲1.41。定義好以後,咱們來看上圖,而後計算
Paste_Image.png
第一步,咱們將起點周圍的點添加到「打開」列表中,而後執行評估操做。計算結果如上所示。在這裏,您會看到一個指向起點的小箭頭。此箭頭指向父節點,而且打開列表G值是基於此計算的,這意味着我須要從前一個父節點運行到此點的總成本。若是點不相同,則G值不一樣。通過計算,咱們在上圖中找到了1個點。 F值爲7.41,這是最小的值,所以咱們選擇此點並從OPEN列表中刪除1點,而後將其添加到CLOSE列表中,可是當咱們降低時,咱們發現大約1點,2點和3要點如何應對三個出發點。首先,起點已添加到CLOSE,而且他不須要執行此操做。這是CLOSE列表的做用,咱們還能夠在2和3處對他執行操做。對於點的計算,當咱們從1點移動到2點時,他須要的價格是G值將變爲2.41, H值不會改變。 F=2.41 + 7=9.41。這個算法主要用於智能寫做,咱們發現此值大於原始F值,咱們沒法將其更改(將父節點指向1,並將F值更改成9.41,由於咱們一直在努力使F值最小化),而且相同適用於3分。
若是您有互聯網問題,也能夠諮詢我,謝謝!若是你也想一塊兒學習人工智能,歡迎留言交流。html