日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RRT,RRT*,A*,Dijkstra,PRM算法

發布時間:2025/1/21 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RRT,RRT*,A*,Dijkstra,PRM算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RRT
實現:給定一個node_start, node_goal,隨機選擇一個node_rand,在node_list列表里選擇一個離node_random最近的點設置為node_nearest,然后沿著node_nearest朝node_random走step_length距離,找到一個node_new, 將其加入node_list。
重復上述過程直到找到一個node_new接近node_goal,然后再在得到的node_list中找到從node_start到最后一個node_new的列表就構成了path。
優勢:速度較快,概率完備
劣勢:通常不是最優路徑

https://blog.csdn.net/u013528298/article/details/80546175

RRT*:
實現原理于RRT,基本相同,但是RRT的最優化的版本。
1 不同:RRT會記錄每個頂點相對于其父頂點移動的距離。 這稱為頂點的cost()。 在圖中找到最近的節點后,將檢查距新節點固定半徑內的頂點鄰域。 如果找到比近端節點更便宜的 cost() 節點,則更便宜的節點替換近端節點。
2 不同:RRT樹的重新布線,當新的頂點連接到更便宜的節點后,再次檢查新節點固定半徑內的頂點,如果將其連接到新的頂點后(即將新的節點當作父節點)會使得其cost降低,則將新節點當作此節點的父節點連接上去。

Dijkstra
實現:從綠色start開始對每個柵格進行遍歷,即對每個柵格的cost進行更新,一直迭代遍歷到黃色的goal為止,然后從goal再反向查找start即得最優路徑。

優勢:簡單
劣勢:環境太大的話,算法復雜度較高
https://www.guyuehome.com/5652
https://www.guyuehome.com/33665

A*算法
實現:相對于Dijkstra算法,增加了每個節點到目標點的啟發函數,根據啟發函數構建最小代價的節點。
優勢:相對Dijkstra算法較快
劣勢:當目標較多的時候,會帶入大量重復數據和復雜的估價函數

A*算法和Dijkstra算法的比較
Dijkstra算法計算源點到其他所有點的最短路徑長度,A關注點到點的最短路徑
Dijkstra算法的實質是廣度優先搜索,是一種發散式的搜索,所以空間復雜度和時間復雜度都比較高。對路徑上的當前點,A算法不但記錄其到源點的代價,還計算當前點到目標點的期望代價,是一種啟發式算法,也可以認為是一種深度優先的算法。

PRM算法
相較于Dijkstra算法,PRM只是采樣了一個地圖中的一堆點,來進行A*等搜索算法的路徑搜索。
優勢:算得比較快
劣勢:概率不完備

總結

以上是生活随笔為你收集整理的RRT,RRT*,A*,Dijkstra,PRM算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。