一种基于时间分配和强化学习的交通信号灯控制方法与流程

文档序号:18513867发布日期:2019-08-24 09:19阅读:267来源:国知局
一种基于时间分配和强化学习的交通信号灯控制方法与流程

本发明属于交通信号灯控制领域,具体涉及一种基于时间分配和强化学习的交通信号灯控制方法。



背景技术:

一直以来,交通拥堵不仅困扰着世界各国人民的日常出行,而且引起了严重的经济损失。有研究指出低效的交通灯控制信号是导致拥堵频发的最显著原因之一。因此如何去优化交通灯控制机制并实现整体交通效率的提升已经引起了学术界和各国政府的广泛关注。

传统的交通信号灯控制策略大都是依赖交通工程师设计的静态时间表,或者是根据实时的路况信息和人为指定的规则动态地调节交通信号。然而由于真实交通场景的复杂性和多变性,这些方法还有很大的提升空间。由于近年来结合了深度学习的强化学习方法在很多以往一直被人类主导的领域(围棋、电子游戏等)取得了超越人类的优越成绩,所以很多研究者想到了利用深度强化学习的方法设计交通灯控制模型。例如2018年发表在国际顶级数据挖掘会议acmknowledgediscoveryanddatamining上的《intellilight:areinforcementlearningapproachforintelligenttrafficlightcontrol》在第3页到第6页公布了一种称为intellilight的智能信号灯控制方法。然而,该方法和几乎所有现有的基于强化学习实现交通信号灯控制的方法一样,都是属于切换相位型的方法,并不能在真实道路上使用。这里的一个相位(phase)指的是一个路口所有信号灯颜色的一种组合,直观地说,这些颜色组合能指挥哪些车道上的车能够通过路口,哪些车道上的车不能通过路口。

而切换相位型的模型大都是每隔一段较短的时间(一般是5秒左右)就要检查一下连接路口的车道上的车流分布,然后由模型产生一个是否切换到下一个相位的操作信号并立即执行,所以这类方法大都无法直接实现在真实道路上非常重要的倒计时功能。信号灯倒计时能告知司机和准备横穿马路的行人还有多少时间就要改变信号了,让他们有时间提前做好准备,这对提升交通效率和减少交通事故有很大的作用。因此目前真实道路上普遍采用的都是能实现倒计时功能的时间分配型控制方法。



技术实现要素:

本发明提供了一种基于时间分配和强化学习的交通信号灯控制方法,可以显著提升交通效率,能更容易地应用到实际道路上。

本发明的技术方案如下:

一种基于时间分配和强化学习的交通信号灯控制方法,其特征在于,包括:

(1)配置仿真路口环境以及车流数据到交通模拟器,搭建基于强化学习框架的智能体网络;

(2)智能体网络根据路况状态产生下一信号周期的动作,并交由交通模拟器仿真一个信号周期;

所述路况状态包括:上一信号周期使用的配时向量、上一信号周期里每个相位结束时每条车道上的车队长度以及上一信号周期里各个方向上的车流量;

所述的动作记为其中,n表示一个信号周期里相位的个数,a0表示在本信号周期里沿用上一信号周期里各个相位的配时,ai(1≤i≤n)表示在延长相位i的持续时间的同时缩短其他相位的持续时间并使整个信号周期的长度不变;

(3)把上一信号周期的经验存到重演缓存;所述的经验包括路况状态、动作和奖励;

(4)从重演缓存中采样经验训练智能体网络并更新网络参数;

(5)判断仿真的步数是否达到预设值,如果没有达到,则返回步骤(2),否则执行步骤(6);

(6)重置交通模拟器并对智能体网络进行测试,完成测试后进行交通信号灯控制的应用。

本发明中,所述智能体网络的结构如下:

输入模块由三部分组成:第一部分把上一信号周期的配时向量作为输入;第二部分采用一个带有两个卷积层的cnn模块把一个车流量张量转换成一个特征向量;第三部分采用一个平均池化模块计算每条车道在所有相位结束时的平均车队长度,把一个车队长度矩阵处理成一个向量;

输入的路况状态在通过这三个部分后得到三个向量,把三个向量拼接起来后得到了路况状态的向量表示;把这个路况状态的向量表示输给两个带双曲正切激活函数的全连接层后再输给一个不带激活函数的全连接层就得到了输出向量。

步骤(1)中,所述的车流数据为人造的仿真车流数据或者真实道路上采集的车流数据。

和已有的切换相位型动作只要考虑“维持”和“切换”两个动作选项不同,本发明设计的时间分配型动作需要考虑如何给一个信号周期内的所有相位分配持续时间。然而如果直接把所有的配时方式当做要考虑的动作选项则会出现动作空间过大导致模型优化困难的问题,所以设计了下面这种新动作:

新动作包含了n+1个动作选项,记作其中n表示的是一个信号周期里相位的个数。步骤(2)中,动作的每个动作选项可以表示成一个把上一信号周期的配时向量映射成本信号周期的配时向量的映射,显然a0就是恒等映射,动作选项ai(1≤i≤n)对应的映射由如下公式表示:

其中,tnow表示本信号周期的配时向量;tmin是一个常向量,表示每一个相位的最短持续时间;tlast表示上一个信号周期的配时向量;tfree是一个常数,为一整个信号周期的长度和tmin里所有元素之和的差,表示可以自由分配的总时间;δt是一个和配时改变幅度相关的超参数,一个较大的δt在其他条件相同的情况下会导致配时较大的改变幅度;aj是一个独热向量,第i个元素是δt,其他元素都是0。

步骤(3)中,所述奖励的计算公式为:

r=w1de+w2l+w3w+w4v+w5du

其中,de为上一信号周期中所有车道上平均延迟的和,l为上一信号周期中所有车道上平均车队长度的和,w为上一信号周期中所有车道上平均等待时间的和,v为上一信号周期中离开路口的总车数,du为上一信号周期中所有离开路口的车辆的持续时间的和,wi(1≤i≤5)都是超参数。

每个车道的平均延时的计算公式如下:

其中,delayi表示的是车道i上的延迟,vave,i和vmax,i分别表示车道i上的平均车速和最大许可车速。

步骤(4)中,训练智能体网络并更新网络参数由下列公式表示:

其中,sn和rn分别表示时间步n开始时环境传给智能体网络的路况状态和奖励,an表示智能体网络根据sn算出的动作,q表示网络对应的价值函数,wn表示的是时间步为n时的模型参数;n-表示的是某个比n更早的时间点,使用了参数wn-的q称为靶网络,能使网络更容易训练;γ是折扣系数,表示对未来奖励的折现程度,α是学习率,γ和α都是超参数。

步骤(6)中,对智能体网络进行测试的具体步骤如下:

在每个信号周期开始时让智能体网络根据已有路况状态产生动作,然后让交通模拟器在整个信号周期内执行动作对应的配时方案,并记录和评价指标有关的数据,如此重复到预定的测试总步数,最后再统计得到评价指标。

与现有技术相比,本发明具有以下有益效果:

本发明的方法,在切换车流和混合车流的场景下,相比现有技术可以大大减少等待时间以及延迟;在切换车流、非均等车流和混合车流的场景下,可以有效减少持续时间车队长度。

附图说明

图1为本发明一种基于时间分配和强化学习的交通信号灯控制方法的流程示意图;

图2为本发明中的强化学习智能体网络的动作设计在不同条件下所起效果的示意图;

图3为本发明实施例的状态设计中表示车流量的张量示意图;

图4为本发明实施例的智能体网络结构示意图;

图5为本发明实施例仿真实验用到的路口示意图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。

首先,需要说明的一点是本发明可以与几乎所有强化学习框架兼容,下文只是以经典的dqn框架为例说明本发明要如何与强化学习框架结合使用。

和已有的切换相位型动作只要考虑“维持”和“切换”两个动作选项不同,本发明设计的时间分配型动作需要考虑如何给一个信号周期内的所有相位分配持续时间。然而如果直接把所有的配时方式当做要考虑的动作选项则会出现动作空间过大导致模型优化困难的问题,所以发明人设计了下面这种新动作:

新动作包含了n+1个动作选项,记作其中n表示的是一个信号周期里相位的个数。直观地看,a0表示的是在本信号周期里沿用上一信号周期里各个相位的配时,而ai(1≤i≤n)表示的是在延长相位i的持续时间的同时缩短其他相位的持续时间并使整个信号周期的长度不变。准确定量的描述是这样的,每个动作选项可以表示成一个把上一信号周期的配时向量映射成本信号周期的配时向量的映射。显然,a0就是恒等映射,而动作选项ai(1≤i≤n)对应的映射可以由下面的公式表示:

公式中各个符号的含义如下:

tnow表示的是本信号周期的配时向量;tmin是一个常向量,它表示的是每一个相位的最短持续时间;tlast表示的是上一个信号周期的配时向量;tfree是一个常数,它表示一整个信号周期的长度(也是一个常数)和tmin里所有元素之和的差,也就是可以自由分配的总时间;δt是一个和配时改变幅度相关的超参数,一般来说,一个较大的δt在其他条件相同的情况下会导致配时较大的改变幅度;aj是一个独热向量,它的第i个元素是δt,其他元素都是0。

本发明中的新动作具有下面两条重要的性质:

1、对于那些需要缩短持续时间的相位,它能根据那些相位已经具有的持续时间选择合适的减少量。在同一个信号周期里,持续时间更短的相位对于持续时间的减少更敏感。因此,我们需要对较短的相位施加较小的减小量,对较长的相位施加较大的减少量。此外,如果有需求,它还能够通过把tmin的每个元素设成正数来确保每个相位都不会消失。

2、对于需要延长持续时间的相位,它能根据该相位已经具有的持续时间选择合适的增加量。当一个相位的持续时间较短时,它会对车流量的突然增加更敏感。所以当一个特定相位对应的车流量增加时,如果它的持续时间较短,我们需要给它施加一个较大的增加量;而如果它的持续时间较长,我们就需要给它施加一个较小的增加量。

下面以图1为例介绍本发明的动作设计。图1中的每一个子图都表示了一个配时向量,并且都对应于三个连续的信号周期中的一个。其中上方的两张图分别表示第一和第二信号周期(1stsignalcycle和2ndsignalcycle),而下方的两张图都是第三信号周期(3rdsignalcycle),区别只是δt取值不同,左边是24秒右边是8秒。在一个信号周期内都设置了4个相位(phase),为了简便,把每个相位的最短持续时间都设成了0秒,整个信号周期的长度是72秒,在第二和第三信号周期执行的动作选项都是a3。

首先,关注配时向量在第一和第二信号周期之间的变化,可以看出相位3的持续时间增加了,而其他相位的持续时间减小了。对于被缩短的相位来说,持续时间的减小量正比于其在第一信号周期里持续时间的长度,例如相位1减小了8秒而相位2减小了4秒,它们都是对应相位在第一信号周期里持续时间的1/4,这个结论符合上面提到的性质1。然后关注配时向量在第二信号周期和δt=24的第三信号周期之间的变化。相位3的持续时间增加了12秒,这要小于同一相位在第一和第二信号周期之间的16秒增加量,而两者的δt都是一样的。这是因为相位3在第一信号周期的持续时间(8秒)要小于它在第二信号周期的持续时间(24秒),这一点符合上面提到的性质2。最后,来关注第三信号周期对应于不同δt的两个配时向量之间的差异。和之前提到过的一样,当δt较大时,同一动作所导致的配时向量改变量也较大。

如图2所示,一种基于时间分配和强化学习的交通信号灯控制方法,包括以下步骤:

s01,配置仿真路口环境和人造车流到交通模拟器,搭建智能体网络(比如dqn)。这一步可以根据实际情况设计路口结构和车流,交通模拟器可以开源的也可以是商用软件,只要能实现必要的信号灯控制和路况反馈即可,车流可以是人造的仿真车流也可以是来自真实道路上采集的车流。智能体网络的例子放在下文和训练方式一起介绍。

s02,让智能体根据当前路况产生下一信号周期的动作并交由交通模拟器仿真一个信号周期。这里的“当前路况”也就是输入智能体的描述环境的状态(state)。状态一般表示的是环境的描述信息,考虑到在真实场景中的易用性,我们建议采用多个在真实道路上容易获得到的交通特征,例如:

1、上一信号周期使用的配时向量。

2、上一信号周期里每个相位结束时每条车道上的车队长度。这个特征可以表示成一个矩阵,矩阵里第i行第j列上的元素就表示在相位i结束时车道j上的车队长度。

3、上一信号周期里各个方向上的车流量。如图3所示,这是一个3维张量。这个张量的每一层都表示一个车流量矩阵,并且每个矩阵都只记录来自一个方向的车流的车流量,例如图3中左边张量的最上面一层所表示的矩阵,它只记录来自北方的车流量。而对于每一层来说只有4个元素是非零的,它们分别记录去往四个方向的车流量,例如图3右边,也就是左边的第一层,它的最上面一行的中间元素就表示对应于方向“来自北方去往北方”的车流量,这是一个倒车方向的车流量。这个车流张量的设计也是本专利首次提出,我们期望这个张量形状能够记录不同方向的车流之间的空间关系信息。

s03,把上一信号周期的经验存到重演缓存(replaymemory)。这里说的“经验”(experiences)就是状态、动作和奖励的组合,其中状态和动作均已做过详细的介绍,这里再介绍一下奖励(reward)。奖励一般表示环境对上一动作的反馈,和很多现有方法一样,我们认为奖励应该尽可能多地考虑交通的不同方面,所以我们建议奖励可以由下面几部分组成:

1、de:上一信号周期中所有车道上平均延迟(delay)的和。一条车道上的延迟表示的是该车道上平均车速的不饱和度,可以用这个公式计算:其中delayi表示的是车道i上的延迟,vave,i和vmax,i分别表示车道i上的平均车速和最大许可车速。

2、l:上一信号周期中所有车道上平均车队长度的和。

3、w:上一信号周期中所有车道上平均等待时间的和。一条车道上的等待时间表示的是该车道上所有车辆的平均等待时间。

4、v:上一信号周期中离开路口的总车数。

5、du:上一信号周期中所有离开路口的车辆的持续时间(duration)的和。一辆车的持续时间表示的是它在驶向路口的道路上花费的总时间。

由于奖励必须是一个实数,我们通过这个公式来得到最终的奖励:r=w1de+w2l+w3w+w4v+w5du,其中wi(1≤i≤5)都是超参数。

s04,从重演缓存中采样经验训练智能体网络。作为例子,我们选择dqn作为我们的网络框架。在这个框架下,智能体把状态当作输入,并且输出一个向量,这个向量的每个元素都表示一个动作选项在输入状态下的智能体估计出来的价值。如图4所示,智能体网络结构中的输入模块由三部分组成:第一部分直接把上一信号周期的配时向量作为输入;第二部分采用一个带有两个卷积层(激活函数都用修正线性单元relu)的cnn模块把一个车流量张量转换成一个特征向量;第三部分采用一个平均池化模块去计算每条车道的在所有相位结束时的平均车队长度,最终把一个车队长度矩阵处理成一个向量。输入状态在通过这三个部分后得到三个向量,把这些向量拼接起来后就得到了状态的向量表示。然后把这个状态的向量表示输给两个带双曲正切(tanh)激活函数的全连接层后再输给一个不带激活函数的全连接层就得到了输出向量。

在这步训练网络时要从重演缓存中采样小批量的经验用于计算梯度并更新模型参数。基本的更新法则由下面的公式表示(就是dqn的通用做法):

其中,sn和rn分别表示时间步n开始时环境传给智能体的状态和奖励(所以rn+1才是第n步的动作得到的奖励),an表示智能体根据sn算出的动作,q表示网络对应的价值函数,wn表示的是时间步为n时的模型参数。n-表示的是某个比n更早的时间点,使用了参数wn-的q被称为“靶网络”,它能使网络更容易训练。γ是折扣系数,它表示对未来奖励的折现程度,另外α是学习率,这两者都是超参数。最后说一下在训练阶段和测试阶段利用网络产生动作的区别。在测试阶段只要直接选择输出向量中最大的元素所对应的动作选项就可以了,但是在训练阶段只有(1-∈)的可能性这样做,另外∈的可能性发生时需要随机选择一个动作选项执行,这种做法叫做“∈-贪婪”,它可以让智能体在训练过程中保持对环境的探索,∈同样是一个超参数。

每当训练完一步智能体(即做完s04)后要做一个判断,如果仿真的步数达到了我们预先给定的最大值,那么接下去执行s05测试部分的任务;如果没有达到就得返回s02继续让智能体和仿真环境交互累积经验并用获得的经验训练智能体。

s05,重置交通模拟器并对智能体做测试。测试时要做的比训练时简单,就是在每个信号周期开始时让智能体根据已有路况产生动作(直接选择网络输出向量中最大的元素所对应的动作选项即可),然后让模拟器在整个信号周期内执行动作对应的配时方案,并记录和评价指标有关的数据,如此重复到预定的测试总步数,最后再统计得到评价指标即可。

至此,本发明智能体训练和测试的流程已经介绍完了,接下来介绍本发明和已有方法的模拟对比实验。

为验证本发明的有效性,我们在开源交通仿真软件sumo上用人造路口和人造车流进行了实验。如图5所示,我们用到的人造路口是一个由四条走向分别为东南西北的双向六车道公路汇聚形成的十字形路口。这四条公路的面朝路口的右侧三车道功能划分都相同:右侧车道用于右转和直行;中间车道用于直行;左侧车道用于直行、左转和掉头。为和现有文献保持一致,在实验中我们也统一采用一个信号周期包含两个相位的设置:第一个相位只允许从东西方向开来的车通过路口;第二个相位只允许从南北方向开来的车通过路口。除此之外,右转的车只要没有冲突就一直允许通过路口。在人造车流方面,我们设计了四种典型的车流:(1)切换车流(switchflow),这种车流持续72000秒,在前半段时间里只有东西方向直行的车流,在后半段时间里只有南北方向直行的车流,并且四个方向上车辆的生成速率都是每秒0.4辆。(2)均等车流(equalflow),这种车流同样持续72000秒,但和切换车流不同,四个方向在整个时间段里都以每秒0.033辆的速率生成车流。(3)非均等车流(unequalflow),这种车流相比均等车流把东西方向的车流生成速率增加到每秒0.2辆。(4)混合车流(mixflow),这种车流由上面三种车流拼接得到。

本实施例在测试集上与当前效果最好的已发表方法都进行了比较。要指出的是,我们对实验中的所有方法加了一个要求,即要求他们都必须提供8秒的倒计时功能,所以对于那些切换相位型的方法,为了让它们能实现倒计时功能,当它们打算执行“切换到下一相位”的动作时,延迟8秒再执行;而对于本发明提出的方法(时间分配型),需要设置每个相位最短持续时间都是8秒。我们用到了4个评价指标:(1)等待时间(waitingtime),在测试阶段路口处所有车辆的总等待时间的平均值;(2)持续时间(durationtime),所有车辆的持续时间;(3)车队长度(queuelength),在测试阶段所有车道上队列长度之和的平均值;(4)延迟(delay),在测试阶段所有车道总延迟的平均值。这4个指标都是越小越好。对比方法中sotl是利用人定的规则产生动作,drl和intellilight是基于强化学习的方法,但他们的动作都是基于切换相位型的。表1汇总了所有实验结果,最左边一列是参加比较的方法,剩下四列是四个评价指标,四个人造车流场景各自用了一个大栏表示。从表中可以看出,本发明中的方法(ours)在大部分车流场景下取得了最好的效果。

从表中可以看出,利用本发明的方法,在切换车流和混合车流的场景下,可以分别相比第二名减少了18.8%和42.3%的等待时间以及2.0%和3.1%的延迟;在切换车流、非均等车流和混合车流的场景下,分别相比第二名减少了1.9%、1.7%和7.4%的持续时间以及15.4%、7.4%和37.4%的车队长度。

表1

以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1