颜文胜,吕红兵
(1.台州职业技术学院 信息技术工程学院,浙江 台州 318000;2.浙江大学 计算机科学与技术学院,杭州 310027)
现有的道路交叉口管理都是通过红绿指示灯来实现的。固定时间、基于周期的道路指示灯控制模式效率低下,导致车流滞留时间长、能源浪费大、空气质量恶化等问题。在某些情况下,它还可能导致交通事故[1-2]。现有的道路指示灯控制要么以固定的程序,要么没能考虑实时交通[3],这在应对各种实际情况时,特别是在早晚高峰车流量徒增的情况中将面临交通临时瘫痪的现象。
为进一步改善这一现状,不少学者进行了深入研究。例如文献[4]为提高智能交通信号在实际应用中的效率,提出一种改进的控制方法,将交通信号图像输入卷积神经网络的输入层,通过卷积层与采样层的卷积计算、残差计算以及梯度计算识别交通信号,将识别交通信号结果选取自适应跳跃式信号控制方法实现了智能交通信号控制。文献[5]针对城市单交叉口的交通信号控制问题,基于四相位定相序对单交叉口交通灯进行控制,运用模糊控制系统输入为车辆排队数和车辆到达率,输出为当前绿灯相位的绿灯延长时间,提出一种交通灯信号的模糊控制方法,从而能有效减少车辆的平均延误时间,提高交叉口的通行能力。文献[6]针对城市交通子区内部与边界交叉口协调控制问题,提出基于分层多粒度与宏观基本图交通信号控制模型(HDMF),从而能够有效疏导子区域内部与边界交通,实现整体路网的车流量最大化。文献[7]在城市交通环境下,通过分析控制方法灵活性与稳定性的关系,将稳定状态引入信号控制决策模块,建立稳定规则库,提出了一种考虑网络稳定性的多智能体强化学习控制方法,从而提高了算法的运行效率,同时保证了控制效果,将适用于复杂交通网络。
随着计算机、通信和交通检测技术的变革式发展,城市道路指示控制系统的技术环境正从数据贫乏向数据丰富的时代演化发展[8-10]。本文发挥Deep Q Networks无需固定控制规则、无需同时获取大量数据,而通过不断地从环境中获取状态和奖励进行更新的特性,提出了一种基于Deep Q Networks的交通指示灯控制方法。
在道路交通信号控制场景中,信号灯被用来管理道路十字路口的交通流[11]。道路十字路口的信号灯设有3个状态信号:红、黄、绿。通常,道路十字路口会有来自多个方向的车辆涌入,存在有的方向车流量大、有的方向车流量小的情况。当前,信号灯所采用的固定规则模式,难以应对十字路口车流不均的情况,导致十字路口有的方向严重拥堵现象。这一问题在北京、上海等大城市中非常严重,目前采用的是高峰时间段由人工控制的方式进行缓解。
为了能够让车流交替通过十字路口的同时,使得各路口等待车辆数达到均衡,需要调整路口信号灯的持续时间,以应对道路十字路口的不同交通情况。为此,需要解决的问题是如何通过借鉴历史经验,通过动态改变道路指示灯的每个状态的持续时间,以缓解道路十字路口车辆拥堵问题。面对这一问题,通常的想法是延长拥堵方向上绿灯的时间,让该道路上更多的车辆通行。但是,根据当前复杂交通状况,给出一种适用的控制规则是困难的,更难以适应每天状态各异的道路交通。
一种常用的解决方式是韦伯斯特(Webster)法[12]。该方法是一种自适应韦氏交通信号控制算法,通过收集各时段的数据,然后利用韦氏方法计算下一时段的周期和信号灯持续时间。这种自适应Webster方法本质上使用最近的时间区间来收集数据,并假设下一区间的流量需求大致相同。其时间区间的选择至关重要,并体现了各种各样的权衡,较小的区间允许更频繁地适应变化的交通需求,而较大的区间不太频繁地适应,但有利于增加稳定性。
(1)
式中,Cm是完成一次车辆通行的时间区间;yi是第i个相位上交通量最大的车道的车流比;L是一个信号周期的总损失时间。
(2)
式中,l是车辆启动的损失时间;I是信号灯为绿的时间间隔;A是信号灯为黄的时间间隔。
令表示路口车流延误最低的最佳周期时长:
(3)
Deep Q Networks,则是一种机器学习范式,在这种范式中,个体通过与环境的反复交互,寻求通过制定一种状态-行动政策来最大化累积回报。Deep Q Networks通过制定最优状态-行动政策来实现奖励的最优控制。Deep Q Networks是尝试解决道路指示控制问题的一种合适技术,能够通过强化学习三要素对问题进行很好地描述:agent(道路指示控制器)、environment(交通状态)以及actions(交通信号)。
基于Deep Q Networks的交通指示灯控制如图 1所示,其中左图是道路指示灯控制示意图。图中信号灯首先通过车载网络[13]采集道路交通信息。信号灯对数据进行处理,得到道路交通的状态和奖励[14]。信号灯使用右图显示的深度学习网络选择下一步动作。信号灯整个这一“强化学习+深度学习”的自动控制过程,构成了道路交通信号灯控制的Deep Q Networks模型。
图1 基于Deep Q Networks的交通指示灯控制
根据道路十字路口车辆的位置和速度这两个信息定义道路指示灯控制的状态模型。通过车载网络和定位系统,可以很容易地获得当前道路车辆的位置和速度[13]。然后,道路十字路口的信号灯可以通过车辆信息位置矩阵得到当前路口的虚拟快照图像。将当前路口的虚拟快照划分为相同大小的小正方形网格。其中,网格长度c应确保只能容纳一辆车。在每个网格中,状态值由位置p跟速度v组成,即[p,v]。其中,位置p是一个二进制值,表示网格中是否有车辆。如果网格中有辆车,则该网格中的值为1;否则,则为0。速度v为整数值,表示车辆当前速度,单位为m/s。
图2为道路十字路口虚拟快照示意图,整个道路场景被分割为正方形网络。相应的位置矩阵与网格大小相同,如图 3所示。其中,一个网络单元代表一个位置状态,空白单元表示对应网格中没有车辆,其值设为0。
图3 交通路口车流位置矩阵
道路指示灯需要根据当前的交通状态,选择合适的行为引导路口车辆通行。通常,在道路指示灯控制系统中,通过选择下一周期中红绿灯每一阶段的持续时间来确定行动空间。但是如果相邻两个周期内的持续时间变化很大,系统将可能会变得不稳定。
因此,为了应对道路指示的动态调度,将两个相邻周期之间的持续时间调度建模为一个高维马尔可夫决策(MDP)。MDP是一个灵活的模型,它可以应用于交通灯较多、需要更多状态的复杂交叉路口,甚至能够满足具有五、六条道路的不规则交叉路口。在MDP中,交通灯在一个小步骤中只改变一个阶段的持续时间,本文将采用一个四元组[t1,t2,t3,t4]表示当前周期中4个阶段的持续时间。下一个时间周期的行为如图 4所示。图中,一个圆表示在一个时间周期中4个阶段的持续时间,并将当前周期到后续时间变化离散为5 s。将各阶段的最大合法持续时间设置为60 s,最小合法持续时间设置为0 s。道路指示灯根据当前状态选择行为,信号灯的状态按顺序循环变化。
图4 多指示灯下的MDP决策
为了保证安全,相邻状态之间需要有黄色信号,使行驶的车辆在信号变为红色之前停止。将黄色信号持续时间Tyellow的定义为该道路上的最大速度vmax除以路口减速率adec:
(4)
奖励是区别强化学习与其他学习算法的一个重要特征。奖励的作用是就先前行为的表现向强化学习模型提供反馈。因此,明确奖励方式以正确指导模型自主学习是很重要的,将有助于选择最佳的行动策略。
在道路指示控制系统中,主要目标是要提高十字路口车辆通行效率。衡量车辆通行效率的一个主要指标是十字路口车辆的等待时间。因此,将强化学习的奖励定义为相邻两个周期之间累积等待时间的变化,用it表示观察的第i量车从第t个周期开始的时间,用Nt表示到第t个周期对应的车辆总数,将车辆i在第t周期的等待时间记为ωit,t(1≤it≤Nt),则第t周期的奖励定义为:
rt=Wt-Wt+1
(5)
其中:
(6)
由式(5)可知,如果奖励相较之前有所增加,则等待时间的增量将小于之前。这意味着奖励时采取行动前和行动后累计等待时间的增量。
在交通指示灯控制问题描述的基础上,基于所构建的道路指示灯控制Deep Q Networks模型,提出了基于Deep Q Networks的道路指示控制方法。
首先,令Q(s,a)表示在状态s=(X;Y)当采取行动a时的行为价值函数,即最大可实现的预期折扣奖励:
(7)
(8)
接着,在强化学习算法中,将状态s同时作为目标网络和评估网络的输入,依据式(8),构建神经网络迭代i次后的训练损失函数模型:
(9)
式中,r为当前步骤采取行为所获得的奖励值,s′和a′分别为下一步的状态和行为。
根据式(9)在神经网络中进行反向传播并更新主神经网络中的参数:
θi′ =αθi′ + (1-α)θi
(10)
式中,α为更新速率,它表示最新参数对目标网络中各组件的影响程度。
最后,给出基于Deep Q Networks道路指示灯控制方法的训练流程:
步骤1 初始化车流状态s和控制行为a;
步骤2 对于训练步长k=1,2,…,K:
步骤4: 给定行动,确定新状态s′;
步骤5: 根据式(5)、式(6)计算奖励值r;
步骤6: 将状态、行动和奖励以[s,a*,r,s′]形式在记忆库M中存储;
步骤7: 判断:如果k>k0执行学习操作;
步骤8: 从记忆库中取样一小批量样本;
步骤9: 根据式(10)更新目标网络及参数θi′;
步骤10: 根据式(7)计算行为价值函数值Q(s,a);
步骤11: 运用梯度下降更新网络,利用贪婪策略依式(9)计算损失函数。
为了更好地验证本文方法的有效性以及对比优势,在本节分别与固定时间控制模式、Webster控制模式进行了对比仿真实验。本仿真基于Intel Core i5cpu硬件环境,运用微观交通仿真平台SUMO v0.32构造道路指示灯仿真场景,实现道路指示灯的自主控制。方法模型运用python语言开发,并通过Pycharm平台编译运行。如图 5所示,以浙江省台州市市府大道与东环大道交叉路口实测交通数据为测试样本,构造了道路指示灯仿真环境。运用基于Deep Q Networks的道路指示灯控制方法进行仿真计算。基于Deep Q Networks的道路指示灯控制方法中的参数预设如表 1所示。
图5 道路指示灯仿真场景
参数赋值训练步长K7 000记忆库M3 600目标网络更新率α0.006折扣因子γ0.84
针对道路指示灯控制问题,运用基于Deep Q Networks的道路指示灯控制方法进行仿真计算,方法效果如图 6所示。由结果可知,随着训练次数的增加,训练误差不断减少,价值函数趋于稳定,方法收敛效果较好、稳定性较强,能够适用于道路指示灯自主控制问题。
图6 方法实验效果
如图 7所示,为运用本文方法与固定时间控制模式、Webster控制模式的仿真实验结果对比图。通过仿真结果对比可知,本文方法能够获得更好的道路指示灯控制策略,在交通路口车辆队列长度、等待时间等方面优化效果更为明显,有效地减少车辆停留时间、车辆延误,从而有效缓解高峰时期的交通拥堵现象。
图7 方法对比结果
针对当前城市道路拥堵、十字路口车辆通行效率低的问题,本文提出了基于Deep Q Networks的道路指示灯控制方法。首先,对道路指示灯控制问题进行描述,分析常用方法,聚焦十字路口道路指示控制的关键。然后,以状态、行动和奖励三要素为主构建了道路指示灯控制的强化学习模型,满足道路指示灯控制特征,提升了Deep Q Networks的适用性。最后,提出了基于Deep Q Networks的道路指示控制模型和方法流程,实现了道路指示灯的自主控制。基于城市道路数据的仿真计算,并与固定控制模式、韦伯斯特控制模式仿真比对,验证了论文方法对道路指示控制问题的适用性和优越性,为交通信号智能化控制提供了新的思路与途径。