路径规划算法学习Day4-Astar算法
路徑規劃算法學習Day4-Astar算法
- 前言
- 1、A*(Astar)算法
- 1.1、原理
- 1.2、啟發式搜索
- 2、總結
前言
路徑規劃算法學習Day3-基于柵格法的Dijkstra算法
1、A*(Astar)算法
1.1、原理
A*(A-Star)算法是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。算法中的距離估算值與實際值越接近,最終搜索速度越快。
公式表示為: f(n)=g(n)+h(n),
其中:
f(n) :是從初始狀態經由狀態n到目標狀態的代價估計,
g(n):是在狀態空間中從初始狀態到狀態n的實際代價,
h(n):是從狀態n到目標狀態的最佳路徑的估計代價。
對于路徑搜索問題,狀態就是圖中的節點,代價就是距離
h(n)的選取保證找到最短路徑(最優解的)條件,關鍵在于估價函數f(n)的選取(或者說h(n)的選取)。
我們以d(n)表達狀態n到目標狀態的距離,那么h(n)的選取大致有如下三種情況:
1)如果h(n)< d(n)到目標狀態的實際距離,這種情況下,搜索的點數多,搜索范圍大,效率低。但能得到最優解。
2)如果h(n)=d(n),即距離估計h(n)等于最短距離,那么搜索將嚴格沿著最短路徑進行, 此時的搜索效率是最高的。
3)如果 h(n)>d(n),搜索的點數少,搜索范圍小,效率高,但不能保證得到最優解。
A* 算法是在迪杰斯特拉算法的基礎上進行改進的一種算法。與之不同的是,A算法是一種啟發式搜索,不會像dijkstra算法一樣對整個地圖都進行遍歷,A算法是有方向的遍歷。
1.2、啟發式搜索
啟發式搜索(Heuristically Search)又稱為有信息搜索(Informed Search),它是利用問題擁有的啟發信息來引導搜索,達到減少搜索范圍、降低問題復雜度的目的,這種利用啟發信息的搜索過程稱為啟發式搜索。
這種搜索方式優點是搜索快,提高了效率,缺點就是得到的解有可能是次優解也有可能什么都得不到。一句話就是犧牲了精度得到了效率。
2、總結
Dijkstra與A* 對比
相同點:
兩者都是以尋找最短路徑為目的的算法。
不同點:
Dijkstra算法遍歷的時候是對4周平等對待,沒有區分的盲目進行遍歷。
A* 算法是在迪杰斯特拉算法的基礎上進行改進的一種算法。與之不同的是,A* 算法是一種啟發式搜索,不會像dijkstra算法一樣對整個地圖都進行遍歷,A* 算法是有方向的遍歷。它會對周圍各點進行評估,然后再進行搜索。
后續程序依舊是基于柵格進行,用matlab實現
總結
以上是生活随笔為你收集整理的路径规划算法学习Day4-Astar算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际通用计算机编码,计算机中的编码知识
- 下一篇: 基于SSM的高校学生实习管理系统