動態規劃尋找城市間的最短路徑
從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的研究也是路徑規...