ESSAY 02 / 第二篇 · 2026.09.30

BGC 的红绿灯,为什么总在互相添堵?

摘要

刚过一个绿灯,几十米外又被红灯拦住:在 BGC,两盏灯有时像在轮流把路变成停车场。要让它们学会配合,或许先该让 AI 在数字孪生里反复试错,再把简单可靠的方案交给路口。

2,272 个汉字开始阅读 ↓

互动模拟 / MCKINLEY PARKWAY 局部

让红绿灯配合起来,会怎样?

同一张真实路网图上,看两股车流:11th Ave 左转进入 McKinley Parkway,以及主线西行经过 7th Ave、Rizal Dr。点一下切换配时。

观察到的糟糕配时
McKinley Parkway 11th Ave7th AveRizal Dr 01 · 11th Ave 左转02 · 7th → Rizal ↑ N
11th Ave 左转7th Ave → Rizal Dr7th → Rizal:约 101m / 15s
模拟时钟00:00
正在等灯0 辆
已通过0 辆
已通过车辆平均等灯— 秒
01 / 11th Ave 左转180 秒周期;左转可能等 2–3 分钟红灯
02 / McKinley 主线主线车很少,绿灯却持续很久绿灯
03 / 7th Ave / Rizal Dr两个 120 秒周期错位,连等两灯7th: 绿灯 · Rizal: 红灯

道路走向与车辆路径来自 OpenStreetMap 道路节点;所选西行中心线从 7th Ave 到 Rizal Dr 约 101 米,按 25 km/h 约需 15 秒。文中的 50 米/7 秒是解释 offset 的假设例子。红绿灯周期、车流量和协调方案均为演示设定,源于作者观察而未实测或校准;12 倍速,同一输入。 © OpenStreetMap contributors · ODbL · 查看道路数据

背景

我长期在 BGC(Bonifacio Global City)生活,对这里的交通信号有一个很强烈的感受:BGC 道路规划并不算复杂,路网也相对规则,但部分红绿灯的控制水平非常低,甚至存在相邻路口互相制造拥堵的情况。

最明显的几个例子:

  • McKinley Parkway 与 10th Ave 的路口,在很多情况下看不出有效的单路口车流自适应能力。即使一个方向明显没有车辆,另一个方向仍可能按照固定周期等待。
  • McKinley Parkway、7th Ave、Rizal Drive 附近有两个距离非常近的信号路口,间距大约只有几十米,但经常出现前一个绿灯、后一个红灯的情况。
  • 车辆刚通过第一个路口,马上在几十米外被第二个红灯截停;队列一长,又可能回堵第一个路口。
  • 部分信号周期体感接近 120 秒,使这种不合理的 offset 对交通体验影响尤其明显。

BGC 多年前已经宣传使用 adaptive traffic signal,后来又建设所谓 AI-powered smart traffic system。但从实际道路体验来看,至少部分路口并没有表现出成熟的 corridor-level coordinated control。

我的基本判断

解决这个问题实际上并不需要一个复杂的“实时 AI 控制红绿灯”系统。

对于 BGC 这种面积有限、道路拓扑相对固定、每天交通规律高度重复的区域,成熟的交通工程方法加上今天已经非常廉价的摄像头、边缘计算、5G 通信和服务器,就足以大幅改善体验。

核心原则是:

AI 不应该在线实时决定红绿灯下一秒怎么变化。AI 最有价值的工作应该发生在离线阶段——根据真实交通数据寻找更好的信号控制方案。最终上线运行的反而应该是一套简单、稳定、确定、可审计的固定算法和预设方案库。

第一阶段:先把交通真实情况测清楚

在主要路口安装摄像头。

一个路口可以根据实际视野使用一个四方向摄像头、四个独立摄像头或者其他合适组合。

摄像头视频不需要持续上传中央服务器。

每个路口配置一个联网的 edge computer,本地完成车辆识别和统计,只需要输出结构化数据,例如:

  • 各方向车辆流量
  • 转向比例
  • 排队长度
  • lane occupancy
  • 车辆平均通过时间
  • P95 通过时间
  • 不同时段的流量变化
  • 下游道路剩余容纳能力

连续采集数周,至少覆盖:

  • 工作日早高峰
  • 午间
  • 晚高峰
  • 夜间
  • 周末
  • 特殊拥堵情况

最终得到 BGC 路网真实的 traffic demand model,而不是靠人工经验猜测应该给哪个方向多少秒绿灯。

第二阶段:建立 Digital Twin,让计算机离线试错

根据实际道路拓扑、车道数量、转向关系、行人相位和摄像头采集的真实交通数据,使用 SUMO、Vissim 或类似 microscopic traffic simulation 建立 BGC 的 digital twin。

然后让优化程序自动尝试大量红绿灯组合。

主要变量包括:

  • Cycle:一个完整信号周期长度
  • Split:不同方向分别获得多少绿灯时间
  • Offset:相邻路口之间绿灯启动时间的偏移
  • Phase sequence:不同交通相位的执行顺序

这里可以使用 AI,也可以使用更传统的优化方法,例如:

  • Genetic Algorithm
  • Bayesian Optimization
  • Reinforcement Learning
  • 其他组合优化方法

Codex/LLM 更适合帮助建立仿真系统、编写优化程序、分析结果和生成候选方案,而不是直接作为生产环境中的交通控制器。

优化目标不能只看平均车速或者 throughput。

至少应该同时优化:

  • Average delay
  • Number of stops
  • Average travel time
  • P95 travel time
  • Maximum queue length
  • Corridor throughput
  • Pedestrian waiting time
  • Queue spillback

其中应该对 queue spillback 设置很高的 penalty。

原因很简单:

如果上游绿灯把大量车辆放进一个只有几十米长的道路,而下游正好是红灯,那么即使整个系统平均 throughput 看起来还可以,实际道路体验也会非常差,甚至会发生队列反向堵塞上一个路口。

McKinley Parkway / 7th Ave / Rizal Drive 一带就是非常典型的这种场景。

第三阶段:AI 完成工作后,把结果固化

经过大量模拟以后,不需要让 AI 继续在线控制交通。

可以生成一个类似:

BGC Signal Plan Library

例如包含 10–20 套经过模拟验证的方案:

  • Normal
  • Low Traffic / Night
  • AM Peak
  • PM Peak
  • McKinley Northbound Heavy
  • McKinley Southbound Heavy
  • 32nd Street Heavy
  • 26th Street Heavy
  • Local Incident
  • Lane Blockage
  • Gridlock Recovery
  • Special Event

实际可能只有 5–8 个主要方案就能覆盖绝大多数时间,其他方案处理异常情况。

每套方案已经明确规定:

cycle + split + offset + phase sequence

因此生产系统并不需要实时求解复杂数学问题。

第四阶段:线上系统只判断“现在属于哪个状态”

摄像头继续实时统计交通状态。

中央系统每隔 1–5 分钟判断一次:

现在的交通状况最接近哪个预设 Traffic State?

例如:

Normal → McKinley Southbound Heavy

如果某种状态持续一定时间,例如连续 3 分钟或者连续两个 observation window 达到阈值,中央系统就在安全的周期边界切换到相应 Signal Plan。

这样可以避免方案频繁来回切换。

系统实际上只需要解决:

Traffic State Classification → Signal Plan Selection

甚至这一步也未必需要 AI。

完全可以采用透明的 rule-based algorithm,例如:

如果 McKinley Southbound queue > X,并持续 Y 分钟,同时 downstream capacity > Z,则进入 SB Heavy State。

这比一个不可解释的实时 AI controller 更可靠。

通信也不需要实时到毫秒级

各路口可以通过 5G 与中央系统通信。

但 5G 并不是安全关键的实时控制总线。

中央系统不应该通过网络发送:

“现在打开北向绿灯。”

而应该发送:

“下一安全切换点开始执行 Signal Plan 07。”

因此几十毫秒、几百毫秒甚至偶尔几秒的网络延迟都不会影响系统逻辑。

网络中断时,各路口继续运行当前方案;如果长时间无法与中央系统通信,则退回预设的 time-of-day fallback plan。

一个非常重要的安全设计

中央服务器永远不应该直接控制红灯、黄灯和绿灯的电气状态。

真正的:

  • minimum green
  • yellow interval
  • all-red clearance
  • pedestrian clearance
  • conflicting phase protection
  • fail-safe

仍然应该由经过认证的 local traffic signal controller 负责。

中央系统只能选择经过验证的 Signal Plan。

这样即使:

  • 5G 断线
  • 中央服务器死机
  • 程序发生 bug
  • 优化系统产生错误结果

也不能造成两个冲突方向同时变绿这种安全事故。

最坏情况只是自动退回传统固定配时。

为什么“绿波”特别重要

对于相邻路口,尤其是只有几十米距离的路口,真正关键的不只是各自给多少秒绿灯,而是 offset。

假设两个路口相距 50 米,车辆平均速度约 25 km/h。

车辆通过这段距离大约需要:

50 m ÷ 6.9 m/s ≈ 7 秒。

那么下一个路口的绿灯启动时间就应该考虑这约 7 秒 travel time。

这就是最基本的 signal progression / green wave。

如果反过来:

第一个路口 Green → 第二个路口 Red

然后:

第一个路口 Red → 第二个路口 Green

两个路口实际上就在轮流把中间几十米道路当成停车场。

这不是一个需要高级 AI 才能解决的问题,而是最基础的 signal coordination 问题。

甚至可以加入 Spillback Protection

如果下游摄像头发现:

下游道路 occupancy > 85%

那么上游即使按照正常时间应该放行,也可以暂时减少向这段道路释放车辆,把绿灯时间分配给其他方向。

当下游道路恢复容量后,再释放 upstream platoon。

因此整个系统不仅有:

Green Wave

还应该有:

Queue Spillback Protection

前者减少停车次数,后者避免局部拥堵扩散成 gridlock。

最适合 BGC 的实施方法不是一次改造全部路口

第一阶段完全没有必要一次改造整个 BGC。

可以选择:

McKinley Parkway Corridor Pilot

先挑选大约 5–8 个连续路口。

步骤:

  1. 摄像头采集真实交通数据;
  2. 测量目前所有 signal timing;
  3. 建立 corridor digital twin;
  4. 重现目前的拥堵情况;
  5. 自动优化 cycle / split / offset;
  6. 生成 5–10 套 Signal Plans;
  7. 仿真验证;
  8. 在真实道路灰度上线;
  9. 连续运行一个月;
  10. 与改造前进行 A/B comparison。

核心 KPI:

  • Average travel time
  • P95 travel time
  • Average delay
  • Stops per vehicle
  • Maximum queue length
  • Spillback events
  • Corridor throughput

如果 McKinley Parkway pilot 明显改善,再逐步扩大到整个 BGC。

最核心的观点

这个项目最有意思的地方恰恰在于:

不需要迷信 AI。

AI 可以非常适合做一个人类很不愿意做的工作:

拿着几周甚至几个月真实交通数据,在数字孪生里不停试验成千上万种红绿灯组合,最终找出一批非常好的方案。

但当这些方案找到以后,AI 的工作实际上已经完成。

真正每天管理 BGC 交通的,可以只是一套非常普通、稳定、透明的确定性程序:

Sense → Classify → Select Plan → Execute → Measure

每隔几个月,再把积累的新数据放回 digital twin,让优化系统重新跑一遍,更新 Signal Plan Library。

也就是说:

AI 负责学习和设计,传统软件负责执行。

对于 BGC 这样一个道路规模有限、交通规律明显、但现有信号协调体验并不理想的区域,这种方案可能比追求一个昂贵、复杂、完全实时的“AI Traffic Control System”更容易实施、更安全,也更容易证明实际效果。