4 1 城市路徑規劃

2021-10-01 18:06:44 字數 1264 閱讀 2614

動態規劃尋找城市間的最短路徑

從a點走到b點就是從矩陣左下角走到右上角。其中每一步有兩種選擇:向上走↑或向右走→

要想尋找最短路徑,可以看成是乙個遞迴的過程。從右上角出發:向下走↓或向左走←

因此,解決問題的步驟是:

從b出發,判斷向下走↓,向左走←哪乙個路徑更短。

重複這一判斷過程,直到到達a點。

# todo:記錄城市距離

def getdata(

): road=[[

[0,0],[0,3],[0,3],[0,2]

], [

[1,0],[2,2],[2,4],[2,1]

], [

[3,0],[2,1],[3,1],[3,2]

], [

[2,0],[1,2],[4,2],[1,2]

], [

[3,0],[4,4],[5,3],[2,3]]]

a=len(road)-1

b = len(road[1]

)-1 return road,a,b

城市間的距離儲存為乙個多維矩陣,矩陣中每個陣列,第乙個元素表示向下走的距離,第二個元素表示向左走的距離。

返回值road表示城市間路徑,a,b分別表示尋找最短路徑需要向下、向左執行的次數。

def path(i,j):

if road[i]

[j][0]

== 0 and road[i]

[j][1]

== 0:

dis = 0

elif road[i]

[j][0]

== 0:

dis = path(i,j-1) + road[i]

[j][1]

elif road[i]

[j][1]

== 0:

dis = path(i-1,j) + road[i]

[j][0]

else:

dis = min(path(i-1,j)+road[i]

[j][0], path(i,j-1)+road[i]

[j][1]

)return dis

實驗中需加入走到邊界的情況:

程式正常退出,結果符合預期。

城市平亂(最短路徑)

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 南將軍統領著n個部隊,這n個部隊分別駐紮在n個不同的城市。他在用這n個部隊維護著m個城市的治安,這m個城市分別編號從1到m。現在,小工軍師告訴南將軍,第k號城市發生了 南將軍從各個部隊都派遣了乙個分隊沿最近路去往 城市平亂。現在...

arcEngine 路徑規劃

作者 瘋狂的烏龜 2015 5 26 arcengine 10.1 功能 路徑規劃 using system using system.collections.generic using system.linq using system.text using esri.arcgis.geodatab...

路徑規劃總結

概述 路徑規劃在自動駕駛中占有比較重要的位置,一些路徑的規劃演算法在自動駕駛的路徑選擇中比較關鍵。一般來說,路徑規劃涉及路徑搜尋,避障以及產生可以保證舒適和效率的軌跡的生成。目前存在的 也是對這些方面進行研究,主要涉及 尋路,選擇最安全的策略和 決定最可行的軌跡。當然,v2v和v2i的研究也是路徑規...