當在網格狀網絡上運行SUMO
中的模擬與duarouter
生成的路線時,經過一段時間後,由於生成路線,車輛開始集中在電網中部和路口上使用最短路徑算法(dijkstra
,astar
,CH
或CHWrapper
)。如何生成不是用最短路徑算法創建的隨機路線,也不要使車輛以這種方式運行?SUMO - 如何在不使用最短路徑算法的情況下生成路由?
0
A
回答
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
相關問題
- 1. 使用Dijkstra算法的最短路徑
- 2. Dijkstra的算法不會生成最短路徑?
- 3. 最短路徑tsp算法
- 4. 最短路徑算法
- 5. 如何在沒有成本的情況下找到最短路徑?
- 6. single_source_shortest_path:在多條最短路徑的情況下的標準?
- 7. 在android中的最短路徑算法
- 8. 最小生成樹和最短路徑
- 9. 最佳最短路徑算法
- 10. 如何在不更改路徑的情況下激活Iron Router路由?
- 11. 如何在不指定路徑的情況下使用shutil.rmtree
- 12. URL的最短路徑算法
- 13. AFP Dijkstra的最短路徑算法
- 14. dijkstra的最短路徑算法回溯?
- 15. Dijsktra的最短路徑算法
- 16. Dijkstra找到最短路徑的算法?
- 17. Dijkstra的最短路徑算法修改
- 18. 基於類的最短路徑算法
- 19. Floyd的最短路徑算法C++
- 20. Dijkstra的算法最短路徑
- 21. 尋找最短路徑數的算法
- 22. Dijkstra的最短路徑算法問題
- 23. 在動態路由的情況下反應路由器4 404路徑
- 24. 如何從路由表中的路由生成路徑/ URL?
- 25. 如何使用A *算法查找所有最短路徑?
- 26. sna:修改Dijkstra算法(最短路徑)
- 27. C#圖最短路徑算法
- 28. 低內存最短路徑算法
- 29. 最短路徑更快 - SPFA算法?
- 30. 設計最短路徑算法
在閱讀您的答案之前,我最終使用硬幣方法創建了隨機路線,但沒有使用sumolib。現在我對sumolib也一樣了,謝謝你的回答。 –