0

I an currently researching on improving traffic conditions via adjusting the edge's weight.

The issue currently is that when generating routes via DUAROUTER, it takes in a fixed weight that remains constant throughout the whole routing generation.

How can I generate routes in a way such that I can adjust the weight midway through the generation and DUAROUTER should take in the new weight to find the shortest path?

An rough idea of what I am trying to achieve;

Given that the initial weight of the edge is its traveltime, if the density is too high(which suggest congestion), I would like to dynamically increase the weight to reflect it's 'true' traveltime

4

1 回答 1

0

一般来说,duarouter 能够读取一个权重文件,该文件可以为所有边提供(时间相关的)权重(行程时间)。格式是

<additional> <interval begin="0" end="3600"> <edge id="edge1" traveltime="120"/> ... more edges ... </interval> ... more intervals ... </additional>

在此处进行了描述。您可以使用模拟生成此权重文件,然后使用迭代过程运行交替模拟和路由以实现用户平衡。用于此的工具是 duaIterate.py,并在此处进行了描述。您还可以修改此脚本以根据您的意愿调整权重文件。

如果您没有足够的时间来处理这个有时很漫长的过程,您还可以在模拟中使用路由,这将始终是当前行程时间,具体取决于边的负载。您可以先使用通常会直接进入 duarouter 进行模拟的行程文件,而不是 duarouter -n net.xml -t trips.xml 调用sumo -n net.xml -r trips.xml. 详情在这里。这工作得更快,但给你的影响更小。

于 2016-10-04T19:03:22.833 回答