加速SUMO模拟的可能方法

时间:2016-06-10 08:20:31

标签: simulation

大家好我是一名新的SUMO用户。我正在迭代地使用DUAROUTER和SUMO进行模拟。模拟包括在新加坡网络中的20000次旅行,它非常慢,需要一个小时甚至更长时间来完成一次模拟。

任何人都知道如何加快这个过程?我需要做50次迭代。每次迭代1小时太慢了。

我的命令如下:

duarouter --net-file sg_left_v1.net.xml --trip-files trips20000_merged.trips.xml --output-file 0.20000.route.xml --ignore-errors true --no-warnings true --repair true

sumo -c simulation_sg_20000.sumocfg --tripinfo-output 0.20000.trip.output.xml --no-warnings true --tripinfo-output.write-unfinished true --vehroute-output 0.20000.individual.output.xml --link-output 0.20000.link-state.output.xml

我的python代码在每次迭代时增加了X.20000.something.xml中的数字X.

提前谢谢大家。

2 个答案:

答案 0 :(得分:0)

通过分析瓶颈,您可以采取不同的措施来加快流程。我会做以下事情:

  1. 检查交通流量是否平稳。如果堆积的大堵塞,模拟速度会变慢。
  2. 车辆是否也在你期望的时候离开。即使没有可见的堵塞,积压也会减慢模拟速度。一个好的指标是,在模拟结束时具有预定出发时间的车辆需要更长的时间才能离开(它也在tripinfo中)。
  3. 重新检查是否需要所有输出。为了感觉它是否有助于逐个禁用它们并查看运行时间。

    3A。扩展SUMO以聚合您的数据。毕竟它是开源的,所以如果输出是瓶颈,则在模拟中聚合。

  4. 考虑并行执行。也许你不需要一个接一个地开始迭代?
  5. 使场景更小。

答案 1 :(得分:0)

要加快仿真速度,您需要将一个名为step-length的参数传递给Sumo。 其中sumoTime / realWorldtime的比率。

'org.jetbrains.kotlin:kotlin-stdlib:1.3.70'

它应该使您能够获得想要的结果