Cooperative Max-Pressure Enhanced Traffic Signal Control
文章来源
**网址:**https://dl.acm.org/doi/10.1145/3511808.3557569
**会议/期刊:**CIKM '22
**作者:**Lin Li, Renbo Li, Yuquan Peng, Chuanming Huang, Jingling Yuan
摘要
当前已有的工作大多状态定义为车道级队列长度、相位或其他特征。这些工作都是对状态表示进行的启发式设计。本文提出了CMP-SL。
- 第一,CMP-SL将协同最大压力定义拓展到了目标交叉路口的状态定义,从而获得周围交叉路口的压力以获得准确状态信息。使用GAT来学习目标路口的特征表示。
- 第二,由于状态与奖励耦合,将目标路口的协同最大压力作为奖励。
- 第三,使用基于序列模型的TCN来捕捉交通流历史状态。
- 第四,将历史时空状态特征和当前空间状态信息concat,输入DQN中从而来预测Q值和动作。
介绍
当前存在的问题在于启发式的奖励设计难以与状态设计耦合,PressLight和TSC-GNN都尝试使用当前已有的运输学理论MP来设计奖励,利用基于MP的特征来设计状态。
文章认为使用协调最大压力设计目标路口的状态可以起到增强效果。
CMP-SL包括4个模块:
- **状态特征嵌入模块:**CMP-SL定义了基于CMP的状态特征,其使用状态特征嵌入模块,通过对目标路口以及周围邻居路口的状态信息进行编码。
- **时空状态模块:**时空状态模块通过GAT整合邻近路口的状态特征;由于状态特征与奖励耦合,故目标路口的CMP需要被加入到奖励设计中。
- **基于序列模型的时间卷积网络:**TCN通过捕捉交通流的历史状态信息,从而提供动态交通状态信息。
- **DQN整合模块:**DQN模块将历史时空状态信息和当前的空间状态信息concat并进行预测,最后生成目标交叉路口的动作。
基础概念
RL环境
- 状态:每个车道的队列长度 q ← \overleftarrow{q} q、当前相位 p → \overrightarrow{p} p和每个有效车流运动的CMP Δ P \Delta P ΔP;
- 动作:四相位,最小动作时间 Δ t = 10 s \Delta t=10s Δt=10s, 5 s 5s 5s黄灯时间;
- 奖励:交叉路口 p i p_i pi的CMP。
协同最大压力(CMP)
MP理论忽视了邻近路口的影响,而CMP则考虑了邻近交叉路口相位的最大流量。
-
**相位压力:**对于某相位 p → \overrightarrow{p} p,有允许的车流运动 ( l , m ) (l,m) (l,m),其中 l l l为驶入车道,直行信号为 p i , l 1 p^1_{i,l} pi,l1,左转信号为 p i , l 2 p^2_{i,l} pi,l2。当 p i , l 1 p^1_{i,l} pi,l1信号被激活的时候, q l , m q_{l,m} ql,m上的车长在等待从 l l l到 m m m。而对于路口 j j j的驶出车道 m m m,同样有直行信号为 p j , m 1 p^1_{j,m} pj,m1,左转信号为 p j , m 2 p^2_{j,m} pj,m2, p j , m 2 p^2_{j,m} pj,m2同时被激活, d m , k d_{m,k} dm,k表示该时间能够离开并能够成功通过路口 j j j的车辆数。下游车道的队列长度会被路口 j j j中能够通过的最大车辆数 f m a x f_{max} fmax影响。综上,CMP公式为:
Δ p l , m ( t ) = q l , m ( t ) − ∑ k ∈ L o u t r m , k ⋅ ( q m , k ( t ) − d m , k ( t ) ) \Delta p_{l,m}(t)=q_{l,m}(t)-\sum_{k\in L_{out}}r_{m,k}·(q_{m,k}(t)-d_{m,k}(t)) Δpl,m(t)=ql,m(t)−k∈Lout∑rm,k⋅(qm,k(t)−dm,k(t))
L o u t L_{out} Lout是路口 j j j的驶出车道, q m , k q_{m,k} qm,k是穿过路口 i i i从车道 l l l到车道 m m m的车辆数, r m , k r_{m,k} rm,k是离开车道 m m m进入车道 k k k的比例,即转向比, d m , k d_{m,k} dm,k是各信号中从 m m m到 k k k的车辆数。 d m , k d_{m,k} dm,k的定义为:
d m , k ( t ) = { p n ⋅ q m , k ( t ) , q m , k ( t ) < f m a x p n ⋅ f m a x , q m , k ( t ) ≥ f m a x d_{m,k}(t)=\left\{ \begin{align} p_{n}·q_{m,k}(t),q_{m,k}(t)<f_{max}\\ p_{n}·f_{max},q_{m,k}(t)\geq f_{max} \end{align} \right. dm,k(t)={pn⋅qm,k(t),qm,k(t)<fmaxpn⋅fmax,qm,k(t)≥fmax
其中 f m a x f_{max} fmax是相位 p n p_n pn激活情况下,路口能够通过的最大车辆数 f m a x f_{max} fmax。若相位 p n p_n pn被激活, p n p_n pn值为1。 -
**交叉路口压力:**路口压力 p i p_i pi是所有驶出路口的车辆数与驶入车道或相邻路口的平均排队情况的差。在时间 t t t,状态包括。目标路口 i i i的历史状态 [ s i t − 9 , … , s i t − 1 ] [s^{t-9}_i,\dots,s^{t-1}_i] [sit−9,…,sit−1]、目标路口 i i i的当前状态 s i t s^{t}_i sit和邻近路口 j j j的当前状态 s j t s^t_j sjt。
提出方法
状态设计
首先,需获得目标路口 i i i的历史状态 [ s i t − 9 , … , s i t − 1 ] [s^{t-9}_i,\dots,s^{t-1}_i] [sit−9,…,sit−1]、目标路口 i i i的当前状态 s i t s^{t}_i sit和邻近路口 j j j的当前状态 s j t s^t_j sjt、各车道的车辆数、各可用车流运动的CMP。
使用拥有2层隐层的MLP将
k
k
k维状态
s
i
t
s_i^t
sit嵌入维
d
d
d维的向量:
x
i
′
=
D
e
n
s
e
(
s
i
t
)
=
σ
(
s
t
W
e
1
+
b
e
1
)
x
i
1
=
D
e
n
s
e
(
x
i
′
)
=
σ
(
s
i
′
W
e
2
+
b
e
2
)
x_i'=Dense(s_i^t)=\sigma(s_tW_e^1+b_e^1)\\ x_i^1=Dense(x_i')=\sigma(s_i'W_e^2+b_e^2)\\
xi′=Dense(sit)=σ(stWe1+be1)xi1=Dense(xi′)=σ(si′We2+be2)
其中,激活函数为ReLU,
x
i
1
∈
R
d
x_i^1\in \mathbf{R}^d
xi1∈Rd为第
i
i
i个路口当前的状态特征。
同样使用了MLP来编码目标路口和周围路口的当前状态
s
i
t
s_i^t
sit和
s
j
t
s_j^t
sjt:
x
i
2
=
C
o
n
c
a
t
(
D
e
n
s
e
(
s
i
t
)
,
D
e
n
s
e
(
s
j
t
)
)
x^2_i=Concat(Dense(s_i^t),Dense(s_j^t))
xi2=Concat(Dense(sit),Dense(sjt))
10
s
10s
10s内的历史状态
D
Δ
t
=
[
s
i
t
−
9
,
…
,
s
i
t
−
1
]
D_{\Delta t}=[s^{t-9}_i,\dots,s^{t-1}_i]
DΔt=[sit−9,…,sit−1]被输入到TCN网络中,通过全连接层生成了历史状态特征表示
y
2
y^2
y2。
当前空间模块
该模块中使用GAT来整合了邻近路口的特征表示。对于目标路口
i
i
i,使用状态嵌入向量
x
2
x^2
x2。使用共享注意力机制来计算目标路口和邻近路口的相似系数并进行归一化得
α
i
j
\alpha_{ij}
αij:
Y
1
=
σ
(
W
q
⋅
(
∑
j
∈
N
i
α
i
j
(
x
j
W
c
)
+
b
q
)
)
Y^1=\sigma(W_q·(\sum_{j\in N_i}\alpha_{ij}(x_jW_c)+b_q))
Y1=σ(Wq⋅(j∈Ni∑αij(xjWc)+bq))
通过GAT整合所有邻近路口,生成了空间特征表示
Y
1
Y^1
Y1。
历史时空模块
该模块与当前空间模块类似,采用注意力机制来融合时空状态特征。采用
x
i
1
x_i^1
xi1作为
Q
Q
Q,采用历史或动态时间信息
y
2
y^2
y2作为
K
K
K和
V
V
V。计算出注意力分数和多头注意力分数:
Q
i
=
x
i
1
,
K
i
=
y
2
,
V
i
=
y
2
Y
2
=
A
t
t
e
n
t
i
o
n
2
(
Q
i
,
K
i
,
V
i
)
Q_i=x_i^1,K_i=y^2,V_i=y^2\\ Y^2=Attention_2(Q_i,K_i,V_i)
Qi=xi1,Ki=y2,Vi=y2Y2=Attention2(Qi,Ki,Vi)
从而获得目标路口的历史状态信息编码
Y
2
Y^2
Y2。
DQN整合模块
该模块将
Y
1
Y^1
Y1和
Y
2
Y^2
Y2concat后输入到DQN中,再利用DQN预测出动作:
Q
=
D
e
n
s
e
(
C
o
n
c
a
t
(
Y
1
,
Y
2
)
)
Q=Dense(Concat(Y^1,Y^2))
Q=Dense(Concat(Y1,Y2))
DQN的损失函数为:
L
=
E
[
(
r
i
+
γ
max
a
t
+
1
Q
(
s
t
+
1
,
a
t
+
1
;
θ
)
−
Q
(
s
t
,
a
t
;
θ
)
)
]
\mathcal{L}=\mathbb{E}[(r_i+\gamma\text{max}_{a_{t+1}}Q(s_{t+1},a_{t+1};\theta)-Q(s_t,a_t;\theta))]
L=E[(ri+γmaxat+1Q(st+1,at+1;θ)−Q(st,at;θ))]
其中
θ
\theta
θ为DQN的网络参数。
实验
设置
- 模拟环境:CityFlow
- 动作时间:10s
- 总模拟时间:3600s
- 训练轮数:200轮,采用早停
- 折扣因子:0.8
- 最大样本数:10,000
- 目标网络更新频率:10轮/次
- 数据集:杭州数据集、济南数据集
- 评价指标:行驶时间、吞吐量
性能实验
MP会最小化路口压力,平衡路网中的车流分布。CMP-SL添加了临近路口的压力信息,行驶时间得到提升。
这一结果反映出了交通控制理论在区域路网的信控优化中的不可替代性。行驶时间方面,CMP-SL相比于CoLight减少8.97%,相比TSC-GNN减少1.01%(此处对比挑选的是最好结果),最少提升了1.90%和0.80%。吞吐量方面,也由于使用GAT的CoLight和CMPLight。
CMP-SL提取了当前的空间信息和历史的时空状态信息,而CoLight主要集中于邻近路口对目标路口的空间影响,TSC-GNN未考虑时间相关性,CMPLight简单添加邻居状态可能对模型造成负面优化。
消融实验
通过消融实验,发现三个都有用。CMP可以提高性能,当前的空间状态信息重要性大于历史时空状态信息。