2016-06-21 95 views

回答

1

防止這種情況的常用方法是使用dynamic assignment,即使用SUMO的duaIterate.py腳本根據上一次模擬迭代中的行程時間計算路徑分佈。所以,如果你有一趟文件(可能來自randomTrips.py)只需撥打

duaIterate.py -n net.xml -t trips.xml 

如果你真的想隨機的路線,你可以嘗試給中間點(選項-i),以randomTrips.py,但它還是會給予最短這些之間的路徑。或者,您可以自己編寫一個簡單的腳本,分析網絡和連接,並在接下來要開車的每個交匯處擲硬幣。在Python像下面會做:

import random, sumolib 
net = sumolib.net.readNet('myNet.net.xml') 
route = [net.getEdge('startEdge')] 
while len(route) < finalLength: 
    route.append(random.choice(route[-1].getToNode().getOutgoing())) 

此代碼忽略的是,連接或邊緣可能不使用車輛類型可用,但我希望你的想法。 有關使用sumolib的詳細信息,請參見http://sumo.dlr.de/wiki/Tools/Sumolib

+0

在閱讀您的答案之前,我最終使用硬幣方法創建了隨機路線,但沒有使用sumolib。現在我對sumolib也一樣了,謝謝你的回答。 –