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,却忽略了状态设计、奖励塑形和仿真保真度。实际上,交通交互工程中,环境建模的质量往往比算法选择更决定成败。第二个误区是奖励设计过于单一,只优化通行效率,导致安全冲突增加或公交、行人等弱势群体被忽视。第三个误区是忽视非平稳性,直接用单智能体经验回放训练多智能体系统,导致训练震荡。第四个误区是评估不充分,只在训练场景中测试,缺乏对流量突变、事故和通信延迟的鲁棒性验证。

复盘要点:先定义评价指标,再设计奖励;先验证环境可复现,再比较算法;先保证安全兜底,再追求全局最优。任何脱离交通机理的“纯算法调参”都难以在真实工程中落地。