概念:
啟發(fā)式搜索:
啟發(fā)式搜索就是在狀態(tài)空間中對每一個搜索的位置進行評估某饰,得到最好的位置黔漂,在從這個位置進行搜索直到目標炬守。這樣可以省略大量無謂的搜索路徑,提高了效率
在啟發(fā)式搜索當中减途,對未知的估價十分重要鳍置。采用了不同的估價可以有不同的效果
估價函數(shù);從當前節(jié)點移動到目標節(jié)點的預估費用:這個估計就是啟發(fā)式的送淆,在尋路問題和迷宮問題中,我們通常用曼哈頓算法估價函數(shù)預估費用
A*算法的特點:A*算法在理論上是時間最優(yōu)的辟拷,但是缺點是:他的空間增長是指數(shù)級別的
在A*尋路算法中梧兼,我們通過從A點開始智听,檢查相鄰方格的方式到推,向外擴展直到找到目標
開啟列表:待檢查方格的集合列表,尋找周圍可以達到的點颜骤,加入到此列表當中捣卤,并保存中心點喂父節(jié)點
關閉列表:保存不需要再次檢查的方格
路徑評分:
G- 與起始點的距離
H-與目標點的距離
F的值是G和H的和董朝,F(xiàn),G和H的評分被謝愛每個方格里面
F中間 G左上 H右上
選在經(jīng)過那個方格的關鍵是:F=G+H
開始搜索
1.把起始格添加到開啟列表
2.尋找七點周圍所有可到達或者可通過的方格祟绊,把他們加到開啟列表
3.從開啟列表中刪除點A牧抽,把它加入到關閉列表當中,列表中保存所有不需要再次檢查的方格
繼續(xù)搜索
4.把當前格子(紅色的42)從開啟列表中刪除扬舒,然后添加到關閉列表當中鸽捻。
5.檢查所有紅色42相鄰的格子御蒲。跳過那些已經(jīng)在關閉列表中的或者不可通過的,把他們添加到開啟列表厚满,把選中的方格(紅色42)作為新的方格的父節(jié)點
6.如果某個相鄰已在開啟列表當中碘箍。檢查現(xiàn)在的這條路徑G值是否會更低一些丰榴。如果新的G值更低,那就把相鄰方格的父節(jié)點改選為目前選中的方格四濒,重新計算F和G的值
為什么? ?隨著關閉列表當中的確定,也就是新路徑的確定戈二,開啟列表中的G值也會改變觉吭,所以需要重新計算