我無法適應A *算法來處理變化的環境。作爲最小的例子,考慮這個流氓般的地圖:適用於多變環境的路徑查找算法
######
#! #
### #
#S #
##+###
##F###
######
的目標是得到S
到F
,但爲了做到這一點的球員必須踩!
開門。我遇到的問題是,在A *中,一旦訪問了一個網格點,它將變爲「關閉」並且不能重新進入。我如何修改算法來解決這個難題?
我無法適應A *算法來處理變化的環境。作爲最小的例子,考慮這個流氓般的地圖:適用於多變環境的路徑查找算法
######
#! #
### #
#S #
##+###
##F###
######
的目標是得到S
到F
,但爲了做到這一點的球員必須踩!
開門。我遇到的問題是,在A *中,一旦訪問了一個網格點,它將變爲「關閉」並且不能重新進入。我如何修改算法來解決這個難題?
在你的問題中,在A *中當你訪問一個點(x,y線)時,你不會再訪問同一個點。
原因是,在你的問題中,狀態是在網格中的位置以及每個門的狀態(打開或關閉)。 所以在開始時,在你的例子中,初始狀態是(3,1,{false})。 (錯誤意味着門已關閉)。
當您到達'!'位置,新狀態將爲(1,1,{true}),所以現在當你到達門時,你將通過門。
您可以運行兩次A *:
!
),其中門就像是 牆最短路徑將是這兩條路徑的組合。
+1這就是如何使用路標完成尋路。 – 2012-07-15 20:21:37
玩家*知道*按下那個'!'是否打開了門'+'?因爲如果有多個交換機沒有指示它們打開哪扇門,則A *假設全部信息失敗,並且該算法無法解決問題。 (另外,香草A *在處理迷宮方面非常糟糕。) – 2012-07-14 19:45:03