我目前正在研究如何通过调整边缘weight
来改善交通状况。
目前的问题是,通过routes
生成DUAROUTER
时,它会在整个路由生成过程中保持固定的weight
。
如何以一种方式生成路线,以便我可以在整代中途调整weight
,DUAROUTER
应该接受新weight
以找到最短路径?
我想要实现的目标的粗略概念;
鉴于边缘的初始weight
是traveltime
,如果密度太高(表明拥塞),我想动态增加weight
以反映它的'true 'traveltime
答案 0 :(得分:0)
通常,duarouter能够读取重量文件,该文件可以为所有边缘提供(时间相关的)重量(行程时间)。格式为
<additional>
<interval begin="0" end="3600">
<edge id="edge1" traveltime="120"/>
... more edges ...
</interval>
... more intervals ...
</additional>
并描述here。您可以使用模拟生成此权重文件,然后使用迭代过程运行交替模拟和路由以实现用户平衡。这个工具是duaIterate.py,它描述为here。您还可以修改此脚本以根据您的意愿调整重量文件。
如果您没有足够的时间进行这个有时很长的过程,您还可以在模拟中使用路由,这将始终是当前的行程时间,具体取决于边缘的负载。您可以先使用跳转文件,该文件通常会直接进入duarouter进行模拟,
而不是
duarouter -n net.xml -t trips.xml
你打电话给sumo -n net.xml -r trips.xml
。
详情为here。这种方法的效果要快得多,但影响较小。