‘聰明的搜尋演算法’ A*演算法_搜尋演算法

來源:互聯網
上載者:User

A*演算法

    是一種啟發學習法的搜尋演算法。

    瞭解BFS、DFS或者Dijkstra演算法的人應該知道。這些演算法都是一種向四周盲目式搜尋的方法。

 

啟發學習法搜尋:

    啟發學習法搜尋就是在狀態空間中的搜尋對每一個搜尋的位置進行評估,得到最好的位置,再從這個位置進行搜尋直到目標。這樣可以省略大量無畏的搜尋路徑,提到了效率。在啟發學習法搜尋中,對位置的估價是十分重要的。不同的估價可以有不同的效果。因此,A*演算法的關鍵就在於如何建立這個啟發函數。

   公式表示為:f(n)=g(n)+h(n),

  f(n) 是從初始點經由節點n到目標點的估價函數,

   g(n) 是在狀態空間中從初始節點到n節點的實際代價,

   h(n) 是從n到目標節點最佳路徑的估計代價。

 

A* 演算法與廣度、深度優先和 Dijkstra 演算法的聯絡:

   1、g(n) = 0 時:該演算法類似於DFS。

    2、h(n) = 0 時:該演算法類似於BFS。

    3、如果h(0) = 0,只需求出g(n)(即起點到任意點n的最短路徑)時,則轉化成單源最短路徑問題。

 

A*演算法淺析:

A*演算法與其他搜尋路徑的演算法的最大區別在於其估計函數的設計,也就是公式:f(n)=g(n)+h(n)中h(n)的設計。

一般計算h(n)的方法有下面幾種:

1、曼哈頓距離: |x1-x2| + |y1-y2|。

2、歐式距離:  兩點之間的直線距離。

3、切比雪夫距離:max(|x2-x1|,|y2-y1|)。

 這幅圖中綠色的線代表歐式距離,其他均為曼哈頓距離。

該圖中,F6到E2的切比雪夫距離為:4

 

接下來的分析中,我們的h(n)為曼哈頓距離,g(n)為歐式路徑。

假設我們需要搜尋的情況如下:

綠色為起始點,紅色為目標,藍色為障礙物,黑色為可通行路徑。

 

F的值是G和H的和。第一步搜尋的結果可以在下面的圖表中看到。F,G和H的評分被寫在每個方格裡。正如在緊挨起始格右側的方格所表示的,F被列印在左上方,G在左下角,H則在右下角。

 

 

接下來我們來講講A*演算法的流程:

1,把起始格添加到開啟列表。

2,重複如下的工作:

      a) 尋找開啟列表中F值最低(最佳估值)的格子,把它切換到關閉列表。

      b) 對相鄰的格中的每一個格子進行判斷

          * 如果它不可通過或者已經在關閉列表中,略過它。反之如下。

          * 如果它不在開啟列表中,把它添加進去。把當前格作為這一格的父節點。記錄這一格的F,G,和H值。

          * 如果它已經在開啟列表中,用G值為參考檢查新的路徑是否更好。更低的G值意味著更好的路徑。如果是這樣,就把這一格的父節點改成當前格,並且重新計算這一格的G和F值。如果你保持你的開啟列表按F值排序,改變之後你可能需要重新對開啟列表排序。

      c) 停止,當你

          * 把目標格添加進了關閉列表(註解),這時候路徑被找到,或者

          * 沒有找到目標格,開啟列表已經空了。這時候,路徑不存在。

3.儲存路徑。從目標格開始,沿著每一格的父節點移動直到回到起始格。這就是你的路徑。

 

下篇文章,我將使用A*演算法解決一個經典的八數位問題。

from: http://blog.csdn.net/cyh_24/article/details/8018752

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.