1. 课程导入
城市交通系统正在从“单点控制”走向“协同决策”。当路口信号灯、匝道控制、公交优先、自动驾驶车辆与出行诱导平台同时参与交通运行时,任何一个智能体都无法独立决定全局最优结果。多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)正是研究多个智能体在共享环境中通过交互学习、协调策略、实现系统级目标的方法体系。本课程围绕“交通交互工程”这一主线,把强化学习算法、交通流机理、仿真平台与工程部署串联起来,帮助学习者建立从问题建模到策略落地的完整能力。
学习目标:从算法理解到工程落地
本课程的学习目标分为四个层次。第一层是概念层:理解智能体、环境、状态、动作、奖励、策略、值函数等强化学习基本要素,并明确多智能体场景下“非平稳性”“信用分配”“部分可观测”等核心难点。第二层是方法层:掌握独立学习、集中训练分散执行、值分解、策略梯度与通信协调等主流MARL范式,能够根据交通任务选择合适算法。第三层是工程层:能够使用交通仿真器构建交互环境,设计状态与奖励,完成训练、评估与调参。第四层是系统层:理解多路口、多车、多模式交通中的协同机制,并能分析安全性、效率与公平性之间的权衡。
一句话概括课程主线:把交通场景抽象为多智能体交互环境,用强化学习训练协同策略,再通过仿真与工程约束验证其可部署性。
核心概念:交互、策略与全局目标
在交通交互工程中,最核心的概念不是单个算法,而是“交互”。车辆与信号灯交互,信号灯与相邻路口交互,自动驾驶车辆与人类驾驶车辆交互,出行者与诱导信息交互。多智能体强化学习把这些交互形式化为一个随机博弈:每个智能体在时刻 t 观测局部状态 o_i,选择动作 a_i,环境返回联合奖励 r 并转移到下一状态。学习的目标是找到一组策略 π_i,使长期累积回报最大化。
与单智能体强化学习相比,MARL的难点主要体现在三方面。其一是环境非平稳:其他智能体也在学习,导致每个智能体面对的环境分布不断变化。其二是信用分配:全局奖励上升时,难以判断是哪个智能体的动作贡献最大。其三是可扩展性:路口数量、车辆数量和通信拓扑增长时,联合动作空间会指数级膨胀。交通场景还额外带来安全约束、实时性约束和部分可观测性,因此工程中常采用“集中训练、分散执行”的框架来平衡协调能力与部署可行性。
方法流程:从场景到策略的六步闭环
工程实践中,一个完整的MARL交通项目通常遵循以下流程。第一步是场景定义:明确控制对象、时间粒度、空间范围和评价指标。第二步是环境建模:选择SUMO、CityFlow、VISSIM等仿真器,定义状态、动作与奖励。第三步是智能体划分:确定哪些实体作为智能体,是路口、车辆还是区域控制器。第四步是算法选型:根据动作空间、观测方式和协调需求选择独立Q学习、VDN、QMIX、MADDPG或MAPPO等。第五步是训练与调参:设置学习率、折扣因子、探索策略、经验回放和通信机制。第六步是评估与部署:在未见场景中测试泛化性,并加入安全规则与人工兜底。
# 典型训练配置示例(伪代码)
env = TrafficEnv(scenario="multi_intersection", sim="sumo")
agents = [SignalAgent(i) for i in range(num_intersections)]
algo = QMIX(
obs_dim=env.obs_dim,
act_dim=env.act_dim,
lr=5e-4,
gamma=0.95,
batch_size=256,
buffer_size=100000
)
for episode in range(10000):
obs = env.reset()
while not done:
actions = algo.select_actions(obs, epsilon=0.1)
next_obs, rewards, done, info = env.step(actions)
algo.store(obs, actions, rewards, next_obs, done)
algo.train()
obs = next_obs
案例与场景:四类典型交通交互任务
第一类是多路口信号协同控制。每个路口作为一个智能体,观测本地排队长度、车流量和相位,动作是选择下一相位或调整绿灯时长,奖励可设计为区域总延误的负值。第二类是快速路匝道协同控制。匝道调节器与主线可变限速器作为智能体,目标是避免主线拥堵和匝道溢出。第三类是自动驾驶混行交互。自动驾驶车辆与人类驾驶车辆共享道路,智能体需要学习换道、让行和交叉口通行策略,安全与效率并重。第四类是公交优先与多模式协同。公交车、信号灯和出行诱导平台共同决策,在保障公交准点率的同时兼顾社会车辆通行。
| 场景类型 | 智能体 | 关键动作 | 主要奖励 | 典型算法 |
|---|---|---|---|---|
| 多路口信号协同 | 各路口信号控制器 | 相位选择、绿时调整 | 区域延误、排队长度 | QMIX、MAPPO |
| 匝道协同控制 | 匝道调节器、限速器 | 调节率、限速值 | 主线速度、通行量 | MADDPG、独立PPO |
| 自动驾驶混行 | 自动驾驶车辆 | 换道、跟驰、让行 | 安全、效率、舒适 | MAPPO、通信MARL |
| 公交优先协同 | 公交、信号、诱导平台 | 优先请求、相位调整 | 准点率、社会车延误 | 值分解、分层MARL |
误区与复盘:避免“算法先行”的陷阱
初学者最常见的误区是“算法先行”:一上来就套用QMIX或MADDPG,却忽略了状态设计、奖励塑形和仿真保真度。实际上,交通交互工程中,环境建模的质量往往比算法选择更决定成败。第二个误区是奖励设计过于单一,只优化通行效率,导致安全冲突增加或公交、行人等弱势群体被忽视。第三个误区是忽视非平稳性,直接用单智能体经验回放训练多智能体系统,导致训练震荡。第四个误区是评估不充分,只在训练场景中测试,缺乏对流量突变、事故和通信延迟的鲁棒性验证。
复盘要点:先定义评价指标,再设计奖励;先验证环境可复现,再比较算法;先保证安全兜底,再追求全局最优。任何脱离交通机理的“纯算法调参”都难以在真实工程中落地。