使用 TRACI 控制 SUMO 中的多个交通灯路口
Control Multiple traffic light junctions in SUMO with TRACI
我试图找到一种方法来在单个模拟中控制多个路口的交通灯。我有一个 4 x 4 的网格,有 16 个红绿灯,我想测试一个全局算法来优化网格中每个交叉点的交通流量。
我正在使用 SUMO 和 python TRACI 来完成这项任务。我之前已经实现了几种单路口本地交通灯控制算法,但我无法找到一种简单的多路口模拟方法。一些 explanation/strategy 或代码片段对我很有帮助。
提前致谢!
通常使用 traci 的控制算法的模式是
while traci.simulation.getMinExpectedNumber() > 0:
# retrieve data from detectors
# act on traffic light
traci.simulationStep()
下面的做法没有错
while traci.simulation.getMinExpectedNumber() > 0:
# retrieve data from detectors
# act on traffic light 1
# act on traffic light 2
# ...
traci.simulationStep()
甚至穿插多个数据检索步骤。您还可以使用调用任意附加 python 函数的 traci 步骤侦听器,甚至可以连接多个客户端(尽管您需要提前知道有多少)。但是在任何情况下,您都需要以一种可以分离在两次模拟步骤调用之间完成的代码的方式重新设计现有算法,并且它们以某种方式需要全部以相同的频率运行。
我试图找到一种方法来在单个模拟中控制多个路口的交通灯。我有一个 4 x 4 的网格,有 16 个红绿灯,我想测试一个全局算法来优化网格中每个交叉点的交通流量。
我正在使用 SUMO 和 python TRACI 来完成这项任务。我之前已经实现了几种单路口本地交通灯控制算法,但我无法找到一种简单的多路口模拟方法。一些 explanation/strategy 或代码片段对我很有帮助。
提前致谢!
通常使用 traci 的控制算法的模式是
while traci.simulation.getMinExpectedNumber() > 0:
# retrieve data from detectors
# act on traffic light
traci.simulationStep()
下面的做法没有错
while traci.simulation.getMinExpectedNumber() > 0:
# retrieve data from detectors
# act on traffic light 1
# act on traffic light 2
# ...
traci.simulationStep()
甚至穿插多个数据检索步骤。您还可以使用调用任意附加 python 函数的 traci 步骤侦听器,甚至可以连接多个客户端(尽管您需要提前知道有多少)。但是在任何情况下,您都需要以一种可以分离在两次模拟步骤调用之间完成的代码的方式重新设计现有算法,并且它们以某种方式需要全部以相同的频率运行。