a 尋路分析

2022-02-08 05:35:18 字數 865 閱讀 5599

定義:綠色節點為a

紅色節點為b

a右邊為c

dst:使用兩點距離計算公式

表op :儲存節點用 (開放列表)

表cl :儲存節點用 (開放列表)

節點的上級節點 名為 fn

gl : 節點屬性 用於儲存與a的距離

下述計算過程定義為 過程1

strat

計算 c 與 b 的距離( dst )  結果為 h

計算 c 與 a 的距離( dst )  結果為 g

f=h+g

將 c 加入 表op

c 的 fn = a

c 的 gl = fn 的 gl + c與a的距離

end把 a 周圍的節點都使用 過程1 計算一遍(不包含 表cl 裡的節點,及不可通過節點),選擇 f 較小的做為新節點(定義:新節點=n)

將 a 加入 表cl,n 加入 表cl,從 表op 移除 n

將 n 當成 a 以 過程1 計算 直至找到 b。

對於 表op 裡的節點的使用:

表op 裡的節點有時會包含 n 周圍的節點,包含時這個節點定義為 m

計算 m 的 fn  離 a 近 還是將 n 當為 m 的 fn 離 a 近   (主要使用了 gl)

結果路線為 b 的 fn 的 fn 直到a

迷宮尋路(A星尋路演算法)

題目 假設我們有乙個7 5大小的迷宮,如下圖所示,綠色格仔表示起點,紅色的格仔表示終點,中間的3個深灰色格仔表示障礙物。請找到一條從起點到終點最短的路徑。解題思路 需要引入兩個集合和乙個公式,如下 具體步驟 把起點放入openlist 檢查openlist中是否有值,如果沒有則無法到達終點,結束尋路...

python尋路 A 尋路演算法 python實現

coding utf 8 import math import cv2 as cv class point object def init self,position,parent self.position position self.parent parent self.f 0 self.g 0...

A 尋路演算法

問題 由於遊戲中尋路出了個小問題 玩家尋路到乙個死角後在那邊不停的來回跑,就是無法越過障礙物,就研究了下a 尋路演算法以解決這個問題 研究了幾天,自己寫了個demo這裡給出總結 原理 a 演算法給出的是權值最優的路徑而不是最短路徑 權值有f g h來表示 啟發式函式如下 f p g p h p h值...