使用TRACI控制SUMO中的多个交通信号灯路口

时间:2018-09-13 12:00:55

标签: sumo

我正在尝试找到一种方法来在单个模拟中控制多个路口的交通信号灯。我有一个4 x 4的网格和16个交通信号灯,我想测试一种用于优化网格中每个路口交通流量的全局算法。

我正在为此任务使用SUMO和python TRACI。我之前已经实现了几种单路口本地交通信号灯控制算法,但是我无法找出一种用于多路口仿真的简单方法。某些解释/策略或代码片段对我很有帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

通常,使用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()

,甚至散布了多个数据检索步骤。您还可以使用traci步骤侦听器,它调用任意附加的python函数,甚至可以连接多个客户端(尽管您需要提前知道有多少个)。但是无论如何,您都需要对现有算法进行重新设计,以便可以将两次仿真步骤之间完成的代码分开,并且它们某种程度上都需要以相同的频率运行。