仿真視頻:五種經典路徑規划算法
以下為關於廣度優先算法、Dijkstra算法、A-star算法、ARA-star算法、AD-star算法的個人總結,可能會有不恰當的地方,望各位大佬多多批評指正。
(1)廣度優先算法
該算法是從根節點開始一層一層的進行遍歷,只有完全遍歷完一層所有的節點后才會進入下一層的遍歷。
作為盲目搜尋法,主要通過系統地展開並檢查圖中的所有節點,以找尋結果。它並不考慮結果的可能位置,徹底地搜索整張圖,直到找到結果為止。
(2)Dijkstra算法
該算法以起始點為中心,向外層層擴展,直到擴展到終點為止。每次找到離源點最近的一個頂點,然后以該頂點為中心進行擴展,最終得到源點到其余所有點的最短路徑。
其核心起於貪心思想,首先把起點到所有點的距離存下來找個最短的,然后松弛一次再找出最短的,所謂的松弛操作就是遍歷一遍看通過剛剛找到的距離最短的點作為中轉站會不會更近,如果更近了就更新距離,這樣把所有的點找遍之后就存下了起點到其他所有點的最短距離。
(3)A-star算法
作為啟發式搜索算法中的一種,A-star搜索算法是通過使用啟發式函數來指導尋路,從而高效的保證找到一條最優路徑。該算法試圖找尋從起點到終點的最優路徑,即代價最小。同時,好的啟發函數將使得這一搜索運算盡可能高效,即搜索盡量少的節點/可能的路徑。
啟發式搜索就是在狀態空間中的搜索對每一個搜索的位置進行評估,得到最好的位置,再從這個位置進行搜索直到目標。這樣可以省略大量無畏的搜索路徑,提到了效率。
(4)ARA-star算法
啟發式搜索ARA*算法根據可用的搜索時間調整其性能邊界,它首先使用松散邊界快速找到次優解,然后在時間允許的情況下逐漸收緊邊界。如果有足夠的時間,它會找到可證明的最佳解決方案。在改進其約束的同時,ARA-star重復使用以前的搜索工作,因此比其他隨時搜索方法更有效。
(5)AD-star算法
作為一種反向搜索算法,在動態環境中表現優秀,試圖完成從目標點開始搜索的過程。在初次遍歷時候,與Dijkstr算法一致,它將每個節點的信息都保存下來,其算法核心在於假設了未知區域都是自由空間,以此為基礎,增量式地實現路徑規划,通過最小化rhs值找到目標點到各個節點的最短距離。由於儲存了空間中每個點到終點的最短路徑信息,故在重新規划時效率大大提升。
