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