混合A*算法


1.設置一個具有優先級的隊列去存儲所有擴展過的節點

2.設置啟發式函數

3.設置起始點的狀態state  xs

4.設置起始點的G值為0,其他節點為無窮大。

       循環:

                 從隊列中取出f = g +h 的最小值

                 標記這個節點

                如果是目標節點,則返回

                對於這個節點所有未擴展過的鄰居

                                if    g(m ) = infinite

                                         g(m) = g(n) +Cnm

                                         Push node m  into the queue.

                                          記錄的是節點的狀態

                                if    g(m) > g(n) + Cnm

                                          g(m) = g(n) + Cnm

                                          更新m的狀態

              end

end

 

 

1.啟發式函數不同的選擇 歐式距離需要遍歷的節點較多。

2.不考慮障礙物只考慮動力學特性采用obvp來解決這個問題。遍歷的節點相對較少。

3.不考慮障礙物只考慮動力學特性,但是地圖環境較為復雜,因此遍歷的節點會更多 。

 

其他改進的技巧:

可以前向積分10次,或者20次時進行一次obvp,如果此時利用obvp能夠找到一條路徑,則默認為 找到一條符合動力學特性的路徑。

 

                                          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM