, ,
(长安大学 电子与控制工程学院,西安 710064)
交通流预测作为反映交通状态的重要手段,被广泛应用于交通控制与诱导[1-2],有利于提高路网利用率,缓解交通压力。目前,在对交通流预测的研究中,主要集中于短时和长时交通流预测。随着交通拥堵等问题日益严重,由于短时交通流预测无法实现对未来交通状态的全面掌握,难以满足交通控制与交通诱导的需求。相比之下,长时交通流预测在实现对未来交通状态的全面掌握中,具有较大优势。Xiaomo Jiang[3]等提出了一种非参数动态时滞回归小波神经网络模型,用于长时交通流量预测;Liu B[4]等根据深度学习改进LSTM网络预测长时交通流;Fei Su[5]等提出了一种基于功能非参数回归的长时交通状况预测模型。以上长时交通流预测模型,需建立精确的数学模型,不易实现,且预测精度较低。
BP神经网络具有很强的非线性映射能力和柔性的网络结构,被广泛应用于长时交通流预测[6-7]。但是,BP神经网络算法自身存在易陷入局部最优等缺点,导致预测精度低[7]。相关学者提出了改进神经网络的方法,进行长时交通流预测。Hou Yue等[8]提出一种差分进化算法优化BP神经网络的长时流量预测算法,避免算法陷入局部最优;Zhao H B等[9]利用遗传算法改进BP神经网络,进行中长时交通流预测;Xu L[10]等利用改进遗传算法优化BP神经网络进行长时交通流预测。然而,已有改进方法如差分进化算法、遗传算法等,均存在收敛速度慢、易陷入局部最优解等缺陷,改进效果不佳,进而难以得出精确的交通流量预测。
为解决上述问题,根据人工蜂群算法具有寻优效果好、适应性强、收敛速度快等特点[11],提出一种改进的人工蜂群优化BP神经网络算法(BP neural network algorithm based on Artificial Bee Colony Algorithm with Tent chaos search strategy, TABC-BP)。算法利用Tent映射良好的遍历性及混沌特性[12],在采蜜蜂阶段实现混沌搜索,提高了种群的全局搜索能力,同时增强算法跳出局部最优的能力。将该算法用于预测合肥市黄天路早高峰、平峰、晚高峰和低峰4个时间段的交通量,提高了长时交通流的预测精度,实现了对未来交通状态的全面掌握。
人工蜂群算法[13](Artificial Bee Colony Algorithm,ABC)主要通过采蜜蜂在给定区间内搜索最优解,根据贪婪选择策略在新解与旧解中选择适应值大的解。ABC算法在采蜜蜂过程中,由于放弃适应值低的新解,降低了算法的全局搜索能力,从而易陷入局部最优,降低了算法的优化效率。
为提高ABC算法的优化效率,在采蜜蜂模式中,利用Tent混沌映射放弃的新解,Tent映射函数式[14]如式(1)所示。
x∈[0.5,1]
(1)
混沌搜索步骤如下。
Step1:根据公式(1)在区间[0,1]上随机产生D维混沌因子xi,记为x1、x2、…、xD;
Step2: 对于第i步的采蜜蜂Xi,若搜索到的新解new_Xi适应值低于原解Xi的适应值,根据公式(2),将x1、x2、…、xD映射到新解区间[new_Xi-min,new_Xi-max]上得到新解new_Xi'。
new_Xi'=new_Xi-min+
(new_Xi-max-new_Xi-min)new_Xi
(2)
式(2)中,new_Xi-max与new_Xi-min是新解new_Xi的最大值与最小值。
Step3:采用贪婪选择算法在new_Xi'与Xi中选择适应值更优的解,并保留给下一代种群。
当搜索的新解适应值低于旧解适应值时,利用Tent映射改进搜索的新解。若利用Tent映射改进后的新解的适应值仍然低于旧解,则放弃新搜索的解和Tent映射后的解,保留旧解;若Tent映射后的解的适应值高于旧解,则放弃旧解和新搜索的解,利用Tent映设的解代替旧解。
利用Tent映射改进放弃的新解,增加了新解替代旧解的几率,从而提高采蜜蜂的搜索能力,增强算法的全局搜索能力和跳出局部最优的能力。
通过对Sphere函数与Rastrigin函数寻找全局最小值来测试改进人工蜂群算法(Artificial Bee Colony Algorithm with Tent chaos search strategy, TABC)的性能,并与ABC算法和具有混沌搜索策略的蜂群优化算法[15](Artificial bee colony algorithm with chaotic-search strategy,LABC)的测试解进行对比。
1.2.1 测试函数
Sphere函数是单峰函数,极值数目少,在(0,0)点取得最小值0,用该函数主要测试算法的寻优速度。Rastrigin函数是复杂的非线性多模态函数,具有许多局部极值点,但只有一个全局最小点(0,0),最小值为0,用来考察算法的全局搜索能力和跳出局部最优的能力。
Sphere函数和Rastrigin函数的表达式分别如式(3)和式(4)所示。
(3)
(4)
1.2.2 性能对比
设置测试函数的维度为10,种群大小NP=200,限制次数Limit=50,利用ABC算法、LABC算法和TABC算法对测试函数进行10次寻优实验,优化结果即最小值如表1所示。
表1 3种算法的优化结果
由表1可以看出:
(1)针对单峰函数Sphere,TABC算法的收敛速度明显快于ABC算法和LABC算法,且TABC算法的收敛次数比ABC算法和LABC算法分别提高60%和40%。主要原因在于Tent混沌搜索增加了解的多样性,提高了TABC算法的收敛速度,是算法能迅速收敛于函数最优值。
(2)针对多峰函数Rastrigin,TABC算法在迭代3 000次时,寻优结果为1.1008e-10,明显优于ABC算法和LABC算法的寻优。主要因为Tent混沌搜索增强了TABC算法的局部搜索能力,增加了算法跳出局部最优的能力,在提高算法收敛速度的同时,提高了算法的优化精度。
为进一步研究3种算法对函数的寻优过程,图1、图2给出了Sphere函数迭代1 000次与Rastrigin函数迭代3 000次的收敛曲线图,可直观反映出3种算法在寻优过程中的迭代变化情况。
图1 Sphere函数的收敛曲线
图2 Rastrigin函数的收敛曲线
由图1与图2收敛曲线可以看出,针对两种函数,TABC算法的适应值均趋近于1,且收敛速度远高于ABC算法和LABC算法。ABC算法和LABC算法在搜索中后期(如Sphere函数在迭代600~1 000次和Rastrigin在迭代1 500~3 000次)容易出现停滞现象,而TABC算法在进化过程中不断的攀升,避免了算法陷入局部最优。表明利用Tent混沌改进人工蜂群算法寻优过程中放弃的新解,能够增强算法跳出局部最优的能力,进而提高算法的寻优效率。
BP人工神经网络算法作为一种预测算法,共具有输入层、隐含层和输出层三层结构,各层神经元之间的连接权值反映了神经元之间的连接强度。输入的预测因素根据不同的权值和阈值的迭代计算,最终由输出层输出预测结果,迭代过程中不断改变人工神经网络各层的权值和阈值,时预测结果达到最优。BP神经网络具有很强的非线性映射能力和柔性的网络结构,被广泛应用,但BP人工神经网络存在收敛速度慢、易陷入局部最优等缺点,因此采用人工蜂群优化BP神经网络算法。
基本的人工蜂群优化BP神经网络算法(BP neural network algorithm based on Artificial Bee Colony Algorithm, ABC-BP),是利用人工蜂群算法优化BP人工神经网络输入层、隐含层及输出层的权值和阈值。将BP算法输入层、隐含层及输出层的权值与阈值作为蜜源,每只采蜜蜂对应一个确定的蜜源进行寻优,并在迭代过程中在蜜源的邻域寻找新蜜源。根据蜜源丰富程度,跟随蜂依概率跟随采蜜蜂,并在其附近进行采蜜,寻找其他蜜源。如果蜜源多次更新,蜜源丰富度仍买有提高,则放弃蜜源,雇佣蜂转为侦察蜂随机搜索新蜜源,最终输出最优蜜源。
由于ABC算法在采蜜蜂过程中,放弃适应值低的新解,导致算法优化效率低,进而导致ABC-BP算法的预测精度低。因此提出具有Tent混沌搜索的人工蜂群优化BP神经网络算法。
TABC-BP算法步骤如下。
Step1:设置TABC-BP算法参数,初始化种群,按照公式(5)计算种群个体的适应值;
(5)
其中:fiti为第i个蜜源的适应值,fiti为具体优化问题的目标函数值。
Step2:根据公式(6)对采蜜蜂Xi,在当前位置搜索新解new_Xi。在新解与旧解中,采用贪婪选择算法选取适应度更优的解。
(6)
Step3:根据第1.1节的Tent混沌搜索策略产生新解new_Xi',采用贪婪选择策略选择适应值更优的解。
Step4:各观察蜂依照式(7)计算的概率大小选择一个采蜜蜂,并在邻域内搜索新解。
(7)
式中,fiti是第i个解对应的适应度函数值。
Step5:同Step2,并记下种群最终更新过后达到的最优适应度值,以及相应的参数。
Step5:当搜索次数记录变量Bas到达一定阈值Limit,仍然没有找到最优解时,重新随机初始化该采蜜蜂的解,如式(8)所示。
Xi(n)=Xmin+rand(0,1)(Xmax-Xmin)
Basi≥Limit
(8)
Step6:记录全局最优值,并跳转至Step2,直至算法满足结束条件。
Step7:将全局最优解作为BP算法的权值和阈值输入BP算法进行预测。
TABC-BP算法的流程图如图3所示。
图3 TABC-BP算法流程图
2.2.1 仿真条件
为检验TABC-BP算法的有效性,在Matlab2015b环境下,采用Matlab语言编写算法计算程序。并利用BP算法、ABC-BP算法、LABC-BP算法和TABC-BP算法对同一实测交通流时间序列,进行交通流预测对比实验。
为消除不同量纲对分析结果的影响,对试验中的交通流时间序列数据按式(9)处理成在区间[-1,1]内的归一化时间序列。
(9)
式中,xi表示原数据序列,zi表示归一化后的数据序列。
实验结果采用平均绝对误差MAE和预测准确率FC进行评价,表达式如式(10)和(11)所示。
(10)
(11)
式中,N表示预测样本数,Ri表示与测试实际值,Ci表示测试预测值,M表示和实际值相同的预测值的个数。
实验采用9-5-1三层BP神经网络结构,BP神经网络参数设置为:训练步长取2 000,最小误差取0.001,学习率取0.01;人工蜂群算法参数设置为:种群规模取200,迭代次数取1 000次。
2.2.2 结果分析
试验中的仿真数据来自合肥市黄天路交通检测器数据,采集间隔为15min。参考文献[16]中所提根据不同时段交通流量的特性将全天交通流划分为早高峰(7:00~10:00)、平峰(11:00~16:00)、晚高峰(17:00~20:00)和低峰(21:00~6:00),分别对各时间段交通流量进行预测。选用2017年10月31日至2017年11月24日中周二、周三、周四和周五的交通流量数据、行驶速度数据和车道占有率数据(共4608个数据)作为训练样本,11月28日至12月1日的交通流量数据、行驶速度数据和车道占有率数据(共1152个数据)作为测试样本进行交通流量预测。其预测结果如图4~7所示。
图4 早高峰交通流实测序列实际值和预测值
图5 平峰交通流实测序列实际值和预测值
由图4~7可以看出,利用4种模型分别预测早高峰、平峰、晚高峰和低峰时段的交通流,其预测结果均能够较好地反映交通流量变化的趋势和规律。TABC-BP模型与其他3种模型相比,预测结果更接近于实际值,并在对各时段交通流的预测中,有多处预测结果与实际值一致。
为了对比在不同时段,4种模型对交通流量的预测结果,表2给出4种模型预测不同时段交通流的预测准确率和平均绝对误差。
从表2可以看出,对不同时间段交通流的预测中,文献[12]提出的LABC-BP算法,预测准确度和预测平均绝对误差相比于BP算法和ABC-BP算法,都有所改善,但TABC-BP算法的预测结果最优,其预测准确率均高于其他3种算法,且预测平均绝对误差也低于其他3种算法,表明利用TABC-BP算法预测交通流较其他3种算法能够准确的反映出未来交通流的变化趋势。同时表明了利用TABC优化BP算法的权值和阈值,提高了BP算法的预测能力。同时,利用分时段预测交通流,能够避免因不同时间段交通流特点的不同对预测结果造成的影响。因此,得出利用TABC-BP算法分时段预测长时交通流是完全可行的。
本文提出了一种改进的人工蜂群算法优化BP神经网络进行交通流预测的方法,得到如下结论:
表2 实测交通流时间序列不同时段的预测准确率与误差
图6 晚高峰交通流实测序列实际值和预测值
图7 低峰交通流实测序列实际值和预测值
(1)TABC-BP算法采用Tent映射改进ABC算法中放弃的新解,增加了算法的搜索效率,提高了全局搜索能力,进而增加了TABC-BP算法的预测精度。
(2)函数测试表明,TABC算法的收敛速度明显快于ABC算法,且TABC算法的收敛次数比ABC算法提高60%。Tent混沌搜索增强了TABC算法的局部搜索能力,增加了算法跳出局部最优的能力,提高了寻优效率。
(3)利用TABC-BP算法对合肥市黄天路全天的交通流进行分时段预测,避免了不同交通流特点对交通流预测的影响。其预测准确率优于BP算法、ABC-BP算法和LABC-BP算法,预测平均绝对误差也低于其他3种算法。利用TABC-BP分时段预测长时交通流,可以提高长时交通流预测的预测水平。