Fringe Search 路徑搜尋

2021-05-25 09:24:13 字數 526 閱讀 4698

尋路方法很多都把a*當成標準,它確實很不錯.fringe search邊緣搜尋比a*要好些,在記憶體使用和速度上都有改善.

這是參照了《遊戲程式設計精粹7>中"超越a*: ida*和邊緣搜尋",**"fringe search: beating a* at pathfinding on game maps"和**"fringe search vs. a* for npc movement".

這是一開始實現的乙個版本,還有些可以優化的地方.該演算法具體細節的和a*和ida*的比較的詳細資訊參看**,**總結的是效率比完全優化的a*高10%~40%的樣子.

以前弄a*時候有個測試用的專案,就拿那專案改了下就完成了這個演算法,整體來說比a*簡單(估計應該是在熟悉a*的情況下覺得簡單).後面**,結構和效率都還需要調整下.它的搜尋結果和a*還有區別(最短路徑不只一條),如何調整要參考**.然後,如果不需要記錄路徑,只要搜尋結果的話可以不儲存已經過的節點,cachelist可以不要的.

實現**:

測試**:

測試資料:

輸出結果:

移動 II 廣搜,記錄路徑)

移動 ii time limit 1000 ms memory limit 65536 k total submit 27 14 users total accepted 16 14 users special judge no description 在座標軸 0,500 上存在兩點a,b。點a可...

走迷宮(廣搜路徑記錄(路徑唯一))

題目 給乙個5 5的矩陣模擬迷宮,0代表可以走的格仔,1代表牆壁,只有0和1並且入口為左上角,出口為右下角,找出從入口到出口的最短路徑,測試資料的最短路徑唯一 並按座標形式輸出,x,y x代表從上到下第幾行 從零開始 y代表從左到右第幾列 從零開始 include include include u...

迷宮問題 (廣搜並記錄路徑)

迷宮問題 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例...