【问题标题】:Control Multiple traffic light junctions in SUMO with TRACI使用 TRACI 控制 SUMO 中的多个红绿灯路口
【发布时间】:2019-05-02 17:40:53
【问题描述】:

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

我正在使用 SUMO 和 python TRACI 来完成这项任务。我之前已经实现了几个单路口本地交通灯控制算法,但我无法找出一个简单的多路口仿真方法。一些解释/策略或代码 sn-ps 对我很有帮助。

提前致谢!

【问题讨论】:

  • 欢迎来到 Stackoverflow。请编辑您的问题以添加一些最少的数据和代码。 SO 不是代码编写服务,您需要首先显示您尝试过的内容。如需指导,请阅读how to ask questionshow to create a minimal example
  • @5th 请再读一遍我的问题,我不是要写代码(这几乎是不可能的,代码将跨越至少 1k 行!)。我正在寻求建议或一些通用的方式/策略来尝试这个问题。我写的代码是针对单个连接节点(大约 300 行),与上述问题无关。
  • 很高兴知道。如果可能,请将此信息添加到您的问题中。您还可以将 Github 存储库与代码或您考虑的其他资源链接。但根据我的经验,如果不在这里添加代码,你通常会无处可去

标签: sumo


【解决方案1】:

通常带有 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 步骤侦听器(尽管您需要提前知道有多少)。但在任何情况下,您都需要重新设计现有算法,以便将在两次模拟步骤调用之间完成的代码分开,并且它们需要以相同的频率运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多