Research of streetcar intersection signal control based on improved particle swarm algorithm
-
摘要:
有轨电车易受到道路环境的影响,而交叉道口作为城市道路通行能力的瓶颈,制约着整个路网的通行效率. 建立最优化问题模型,分析改进粒子群算法,利用基于灾变自适应的粒子群算法对有轨电车介入的交叉道口信号配时进行分析. 以上海市松江区有轨电车实际单点交叉道口为研究对象,通过模拟仿真,获得该交叉道口的最优信号相位分配方案,该方案能够降低有轨电车对道路拥堵的影响值.
Abstract:Streetcars are easily affected by road environment. The intersection, as the bottleneck of road capacity, restricts the traffic efficiency of the whole road network. An optimization problem model was established, the improved particle swarm algorithm was analyzed, and the particle swarm algorithm based on catastrophic adaptation was used to analyze signal timing of streetcar intersection. Taking the actual single point intersection of streetcar in Shanghai Songjiang as research object, the optimal signal phase distribution plan of the intersection was obtained through simulation, which can reduce the impact of streetcars on road congestion.
-
Key words:
- streetcar /
- intersection /
- signal timing /
- particle swarm algorithm
-
现代有轨电车以低成本、中运能、节能环保等优点受到社会广泛关注,它的出现更好地弥补了地铁覆盖率不足的问题,缓解了当下交通领域的窘境,提升了人民出行质量. 然而,有轨电车需要与社会车辆共同使用道路,尤其是在道路交叉口处多采用混合路权,信号时长的分配将直接制约道路交通与有轨电车的通行能力[1]. 我国有轨电车多使用半独立路权,在交叉道口享有优先控制权,因此,对有有轨电车介入的交叉道口实施合理的交通信号配时,缓解道口交通拥堵成为当下的研究热点. 根据国内外研究现状,传统解决方式多采用参数计算与公式拟合,如潘琢等[2-3]提出交叉口控制过程中所需参数的计算公式,李瑞敏等[4]提出有轨电车交叉口延误公式. 少数运用遗传算法、粒子群算法解决该优化问题,也取得了较好的结果,如董超俊等[5-6] 分别采用遗传算法和粒子群算法,得到的配时结果极大提高了城市交通的通行效率. 本研究将深入研究运用粒子群算法解决有轨电车介入的交叉道口信号配时问题.
1. 有轨电车最优信号配时模型的建立
有轨交通不同于地铁车辆,需要与社会车辆共同使用道路,提高有轨电车的运营效率可以起到事半功倍的作用. 若只对一辆有轨电车进行优化,则只能通过设立冲突相位最小绿灯时间或者从该辆有轨电车载客量与道路车辆载客量关系角度进行信号改进. 本研究拟从算法方向对信号进行优化,选择在一段时间内的一系列有轨电车进行研究.
本研究拟解决的问题是在有轨电车与道路交通的交叉道口处,通过调整周期内各相位的信号配时使得某一时间段内的有轨电车对道口交通的负面影响最小. 因此,建立最优化模型. 建立最优化模型的基本步骤为:确定决策变量与目标变量,确定目标函数,寻找约束条件.
1.1 交叉道口描述
本研究将实际的交叉道口理想化,设其为一个双向八车道的十字路口,中央两条为有轨电车专用车道,两侧各为左转、直行、右转3条机动车道. 设一周期内信号共有5个相位,分别为东西直行、东西左转、南北直行、南北左转和有轨电车专用相位,如图1所示.
具体车辆通行方式如图所示,不约束社会车辆的右转时间. 另外,有轨电车拥有相对优先权,即信号会根据有轨电车的到来,通过绿灯延长、红灯早断、插入相位3种方式使有轨电车尽快通过交叉道口. 下面对相对优先权限进行解释.
1)绿灯延长:若东西方向直行的有轨电车在相位1的时间段内到达道口,但相位1的剩余绿灯时间不足以使有轨电车完整通过,则延长相位1的绿灯开放时间.
2)红灯早断:若东西方向直行的有轨电车在相位4的时间段内到达道口,距离相位4结束还有一段时间,则提前切断相位4的绿灯,即相位1的红灯也提早切断,使有轨电车尽快通过道口.
3)插入相位:若东西方向直行的有轨电车在相位2、3的时间段内到达道口,因无法通过延长绿灯或者提早切断红灯的方式使有轨电车尽快通过,则在相位中临时插入相位5,使其通过. 同理,当有轨电车需要右转时也通过临时插入相位5这种方式解决.
1.2 目标函数
模型所要达到的最终目的为寻找最优信号配时,使得一系列有轨电车对道口的负面影响降至最小. 量化此负面影响的步骤如下:首先,由电车引起的最显著负面影响为对交叉道口原有机动车辆通行造成的堵塞与延误;其次,由于有轨电车的相对优先而导致的信号配比时间的变化量也可以作为负面影响的量化指标. 因此,目标函数为多目标函数,可以通过引入权重的方式使得多目标转化为单目标函数,即
F=w1×f1+w2×f2 其中
f1=N∑n=15∑i=1Dnip+N∑n=15∑i=1Dnic f2=N∑n=15∑i=1Cni∑c=1TCnic 式中:c 为某一相位有轨电车数;Cni为第n个周期第i相位有轨电车的通过总量;
Dnip 为第n 个周期第i 相位私家车因为有轨电车介入而引起的延误;Dnic 为第n 个周期第i 相位公交车因为有轨电车介入而引起的延误;TCnic 为第n 个周期第i 相位第c 辆有轨电车对信号配时造成的变化量.1.3 约束条件
本模型的约束主要为道路流量、信号周期时长、两组信号灯的红灯时间以及延误时间. 对于某一周期某一相位的车辆延误时间可以定义为该相位因有轨电车介入而引起的延误时间、该相位车流量以及相位时长之积,信号配时变化量则由每个相位时长变化量来表示.
2. 有轨电车交叉道口信号配时设计
2.1 粒子群算法
粒子群算法属于群体智能算法的一种,通过对自然界中物种的自然现象进行分析从而实现对问题的求解. 它来源于复杂性科学(Complexity Science),简称CAS系统. 粒子群算法就是对一个CAS系统——鸟群捕食行为进行研究而得到的.
在求解最优解问题时,遗传算法也是一种常用的算法,事实上粒子群算法与遗传算法有着不少相同之处[7]. 二者的初始化种群是随机的,且都利用适应值对系统进行评价,且随机搜索的过程都与适应值有关. 但是与遗传算法不同的是,粒子群算法具有记忆功能,每个粒子存储有自身经过的个体最佳位置. 除了历史位置进行积累以外,每个粒子还可以对群体中的最优粒子进行学习,也就是整个种群中到现在为止发现的最好位置.
整个粒子群优化算法的算法框架如下:
Step 1 种群初始化:可以选择随机初始化,或结合被优化问题设计初始化方法. 然后计算个体的适应值,从而产生个体的局部最优位置向量
Pbesti 和种群的全局最优位置向量Gbest ;Step 2 迭代设置:设置迭代次数,并设置当前迭代次数为1;
Step 3 速度更新:根据速度向量迭代公式更新每个个体的速度向量;
Step 4 位置更新:根据位置向量迭代公式更新每个个体的位置向量;
Step 5 局部位置向量和全局位置向量更新:更新每个个体的
Pbesti 以及种群的Gbest ;Step 6 终止条件判断:判断迭代次数全部达到最大,如果满足便输出
Gbest ;否则继续迭代,跳转至Step 3.2.2 算法设计思路
1)初始化种群的设计
粒子群算法的初始化种群为随机的,故要对如何生成随机种群进行定义. 令计算机随机生成5个[0,1]之间的随机变量,并进行归一化处理.
2)模型修正
进行模型检验时,粒子更新后为防止新生成的解失效或不满足约束,保持模型的等效性,需要对模型增补一些项进行修正. 模型修正过程如下:若变量总和大于设定的周期长度,则随机改变某一变量的值直至满足原有周期长度的设定;满足周期时长后再对各变量是否满足其他信号开放时长条件进行检验,所有条件均满足后即修正完成;若修正过程未能成功,则重新生成粒子,即重复初始化的过程.
2.3 算法改进
根据目标函数可以看出,算法需要在五维空间向量中寻找Pareto最优解,而标准粒子群算法可能无法适应目标函数参数随机变化的特征,因此需要对算法进行改进.
1)灾变
在物种进化的进程中,外界环境可能会突然发生巨大的变化,称为“灾变”. 历经“灾变”得以存活的物种与个体是生存能力最强的一部分[8]. 灾变理论就是由这一自然进程衍生而来,在得到一个最优解以后,只有最优解被留下,其余个体再次随机生成,进入下一个阶段. 通过这种操作模式便可以使规模偏小的种群获得规模更大的多样性.
总的来说,灾变是在算法即将收敛时,通过杀死当前全部或部分优秀个体,从而让远离当前极值的个体有机会获得更充分进化. 这种改进可以在粒子群算法陷入局部最优解时,使其跳出局部极值.
灾变基本形式见表1. 由表可知,共有7种基本灾变形式,在处理实际问题时通常采用其中的2~3种.
表 1 灾变基本形式Table 1. Basic form of catastrophe灾变形式 势函数 折迭型 x3+ux 尖点型 cx4+ux2+vx 燕尾型 x6+ux3+vx2+wx 蝴蝶型 x6+tx4+ux3+vx2+wx 椭圆脐型 x3+y3+wxy−ux−vy 双曲脐型 13x3−xy2+w(x2+y2)−ux+vy 抛物脐型 y4+x2y+wx2+ty2−ux−vy 在算法应用中,采用灾变的时间有一定的规律,即灾变的临界条件. 临界条件的关键在于种群近
s 代的平均进化速度与种群当前的相对进化程度,则灾变临界条件关系式为|fi,ave(t)−fi,ave(t−s)|=|c′(1−fmax 式中:
{f_{\max }} 为全局最优适值;{f_{i,{\rm{ave}}}} 为t 代种群的平均适值;c'{\text{ = }}\dfrac{{2\sqrt {6c} }}{9}s .根据尖点灾变模型的性质可知,满足公式时采用传统算法,不满足公式时采用新的灾变策略.
2)自适应学习
对于适应度较高的粒子来说,所处区域极有可能存在可以更新全局最优解的位置. 为尽快找到全局最优解,此时应减小惯性权重的值以增强其局部搜索的能力. 相反,若此时的粒子适应度较低,即当前粒子所处位置较差,则需采用较大的惯性权重以跳出当前的区域,增强全局搜索的能力. 种群规模也与惯性权重有一定联系,种群规模将决定粒子在搜索区域中可以覆盖的范围. 如若种群规模较小,则粒子难以覆盖整个搜索区域,此时需要增大惯性权重,避免陷入局部最优[9]. 综上,基于改进的粒子群算法流程如图2所示.
3. 有轨电车交叉道口信号配时实例分析
3.1 算法求解过程解析
1)算法参数设置
目标函数权重:由于本研究模型是多目标转化为单目标的设置形式,因此需为目标设置各自的权重,此处设两目标对评价结果的影响相同,故权重均为1[9].
学习因子:由上文可知,学习因子根据实际计算经验,此处取1.496.
惯性权重:此参数依旧根据实际计算经验,令其在0.9至0.5之间自适应学习.
迭代次数:经过多次实际计算,发现应用于该模型的迭代次数设为100次可以较好地获得最优配时,且适应度曲线可观.
粒子数目:设置的粒子数目多,算法可更快收敛. 根据多次试验,最终设定粒子数目为35个.
灾变参数:设置的灾变参数即灾变概率,本研究设定灾变概率为40%.
2)粒子群主程序
初始化种群:随机产生种群的初始位置,并设置种群的初始速度为[−1,1]上的随机数.
粒子更新:对惯性权重设定,令其线性递减,以保障算法全局搜索与局部搜索的平衡;根据上文公式,依照迭代次数对位置和速度进行更新.
灾变:根据设定的灾变概率,随机抽取粒子进行灾变,杀死原有粒子并生成新粒子代替,以保持种群的多样性.
更新粒子:对种群中粒子的最优位置进行更新,获得问题的最优解.
3)适应度函数
首先,根据时刻表与信号配时将5个相位分类储存. 其次,两方向相反路程相同的有轨电车被设置为同时运行. 结合循环过程,若有轨电车到达时刻的道口该方向为绿灯,则正常通行或延长绿灯时间;若有轨电车到达时刻的道口该方向为红灯,则检查该时刻之前的一半相位时间是否为红灯,成立则终止该相位红灯转为开放绿灯,超过一半时间则等待时间超过一半后再改变相位.
随后对目标函数进行计算,目标函数1为因有轨电车介入导致的有轨电车时刻表的改变量(“0”“1”发生互换的次数),目标函数2为因有轨电车介入导致的延误车辆数与延误时间. 根据设定权重,将数据代入最终目标函数进行计算.
由于适应度函数常与目标函数有关,在求解优化问题中多采用目标函数为适应度函数的原型,本研究的适应度函数与目标函数相同.
3.2 算法运行结果分析
1)运行结果
粒子群算法结果见表2. 运算得交叉道口信号最优配时为[77,25,73,27,48], 即4个路口两组信号灯在1个周期内各相位信号配时.
表 2 粒子群算法结果Table 2. Results of particle swarm algorithm字段 值 Best_x [77,25,73,27,48] Best_fit 4965750 detail 1x1 struct 2)适应度曲线分析
图3为总目标函数适应度曲线. 从图中可以看出,算法在96代左右收敛.
3)算法比较
将基于灾变自适应的粒子群算法和传统普遍使用的遗传算法[10]相比较,如图4所示. 可以看出,遗传算法的收敛速度远快于粒子群算法,但粒子群算法寻找到的最优值小于遗传算法找到的最优值. 考虑到本优化问题更看重对整个交叉道口的影响大小,即最优适应值的大小,故认定在本问题中基于灾变自适应的粒子群算法更为优秀.
4. 松江有轨电车实例分析
4.1 参数设置
经实地调查,新松江路人民北路路口示意图如图5所示. 其原有信号周期为140 s,有轨电车通车后将有轨电车安全通过路口时间计入信号周期,设为180 s. 记录交叉道口的通过车数,平均车流量设为东西走向0.4 pcu/s,南北走向0.3 pcu/s. 设此时有轨电车的发车间隔时间往人民北路新松江路方向高峰为5 min一班,平常为10 min一班;往新松江路人民北路方向高峰为3 min一班,平常为8 min一班[11]. 取算法迭代次数为60次,粒子数目为15个.
4.2 算法运行结果分析
适应函数曲线收敛情况如图6所示. 粒子群算法结果见表3. 此时,获得最优解为[18,26,19,81,36],即4个路口两组信号灯的一个周期内各相位信号配时.
表 3 单点交叉道口粒子群算法结果Table 3. Rresults of particle swarm optimization at single point intersection字段 值 Best_x [18,26,19,81,36] Best_fit 1054914 detail 1x1 struct 5. 结 语
本研究通过利用算法求解数学模型的方式,以改变时间最少和车辆延误时间最短为目标函数,对有有轨电车介入的交叉道口的信号配时问题进行分析与研究. 改进基于自适应和灾变的粒子群算法并带入参数运算,与传统的遗传算法相比较,得到基于灾变自适应的粒子群算法能较好地对信号配时进行优化. 进而给出基于改进后的粒子群算法对上海市松江区有轨电车实际单点交叉道口信号配时的建议,为实际信号配时工作提供一个新的思路.
-
表 1 灾变基本形式
Table 1. Basic form of catastrophe
灾变形式 势函数 折迭型 {x^3} + ux 尖点型 c{x^4} + u{x^2} + vx 燕尾型 {x^6} + u{x^3} + v{x^2} + wx 蝴蝶型 {x^6} + t{x^4} + u{x^3} + v{x^2} + wx 椭圆脐型 {x^3} + {y^3} + wxy - ux - vy 双曲脐型 \dfrac{1}{3}{x^3} - x{y^2} + w ( {{x^2} + {y^2}}) - ux + vy 抛物脐型 {y^4} + {x^2}y + w{x^2} + t{y^2} - ux - vy 表 2 粒子群算法结果
Table 2. Results of particle swarm algorithm
字段 值 Best_x [77,25,73,27,48] Best_fit 4965750 detail 1x1 struct 表 3 单点交叉道口粒子群算法结果
Table 3. Rresults of particle swarm optimization at single point intersection
字段 值 Best_x [18,26,19,81,36] Best_fit 1054914 detail 1x1 struct -
[1] 李凯, 毛励良, 张会, 等. 现代有轨电车交叉口信号配时方案研究[J] . 都市交通快轨,2013,26(2):104 − 107. [2] 潘琢, 曾蓉娣. 现代有轨电车交叉口延误时间计算原理[J] . 数学的实践与认识,2017,47(17):152 − 159. [3] CURRIE G, SHALABY A. Active transit signal priority for streetcars: Experience in Melbourne, Australia, and Toronto, Canada[J] . Transportation Research Record Journal of the Transportation Research Board,2008,2042:41 − 49. doi: 10.3141/2042-05 [4] 李瑞敏, 陆化普. 基于遗传算法的交通信号控制多目标优化[J] . 长安大学学报(自然科学版),2009,29(3):85 − 88. [5] 董超俊, 刘志勇, 邱祖廉. 灾变粒子群优化算法及其在交通控制中的应用[J] . 计算机工程与应用,2005,41(29):19 − 23. doi: 10.3321/j.issn:1002-8331.2005.29.006 [6] 陈玉江, 王敏, 罗聪. 有轨电车优先的固定信号配时优化模型[J] . 交通运输研究,2006,2(1):8 − 16. [7] 王辉, 朱龙彪, 朱天成, 等. 基于粒子群遗传算法的泊车系统路径规划研究[J] . 工程设计学报,2016,23(2):195 − 200. doi: 10.3785/j.issn.1006-754X.2016.02.014 [8] 葛景璞. 基于灾变粒子群算法的电网无功规划的研究[D]. 北京: 华北电力大学, 2007. [9] 陈占伟, 李骞. 一种自适应惯性权重的粒子群优化算法[J] . 微电子学与计算机,2011,28(3):27 − 30. [10] 万善余, 范迪. 基于遗传算法的信号灯配时[J] . 电子科技,2017,30(3):49 − 52. [11] 刘克虎, 宿亚军, 苏浚. 现代有轨电车实现“绿波”交通应用方法研究[J] . 都市快轨交通,2017,30(2):120 − 124. doi: 10.3969/j.issn.1672-6073.2017.02.024 -