java栅格法全局路径规划,基于A*的全局路径规划算法(1)
Rate this post
在現實生活中,我們經常需要找到最短路徑。例如,當我們想要從一個地點去往另一個地點的時候,我們希望可以在地圖中找到最近的一條路。這個時候我們就需要一些特殊的算法來幫助我們解決這個問題。A *搜索算法是靜態路網中求解最短路徑的最流行的技術之一,靜態路網指的就是被搜索的圖的權值不隨時間變化。接下來,我將討論A*算法的基本內容。
1.
把起點加入 open list (已生成而未考察的節點)。
2. 重復如下過程:
(1)
遍歷 open list,查找 F值 (從初始柵格單元經由當前柵格單元到目標柵格單元的代價估計)最小的節點(柵格單元),把它作為當前要處理的節點。
(2)
把這個節點(柵格單元)移到 close list(已訪問過的節點) 。
(3)
對當前方格的 8 個相鄰方格進行一一計算
a.
如果它被障礙物占用或者它在 close list 中,忽略它。否則,做如下操作。
b.
如果它不在 open list 中,把它加入 open list,并且把當前方格設置為它的父節點,記錄該方格的 F,G(初始節點到當前節點的實際代價) 和 H(當前節點到目標節點的最佳路徑的估計代價)值。
c.
如果它已經在 open list 中,檢查這條路徑 (即經由當前結點到達它那里) 是否更好,用 G 值作參考。更小的 G 值表示這是更好的路徑。如果是這樣,把它的父節點設置為當前方格,并重新計算它的 G 和 F 值。如果 open list 是按 F 值排序的話,改變后可能需要重新排序。
2.1停止重復的條件:
(1)把終點加入到了 open list 中,此時路徑已經找到
(2)或者查找終點失敗,并且 open list 是空的,此時沒有路徑。
3.保存路徑。從終點開始,每個方格沿著父節點移動直至起點,這就是最終的搜索的路徑。
OPEN表保存所有已生成而未考察的節點,CLOSED表中記錄已訪問過的節點。
總結
以上是生活随笔為你收集整理的java栅格法全局路径规划,基于A*的全局路径规划算法(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 拉取收件箱邮件源码_邮件提醒系
- 下一篇: 哈尔滨理工C语言程序设计精髓_【注意啦】