一种基于蚁群算法的拥堵路段路径优化方法与流程

文档序号:18743492发布日期:2019-09-21 02:04阅读:616来源:国知局
本发明涉及路径优化算法领域,尤其是涉及一种基于改良后的蚁群算法的路径优化方法。
背景技术
::随着社会的不断发展与科学技术的不断进步,人们的生活水平逐渐提高,在以前被当做奢侈品的汽车也开始变得十分平常。截止2018年年底,我国汽车保有量已达2.4亿辆。平均下来一个家庭就有一辆汽车。但是汽车给生活带来便利的同时也会使得道路交通十分拥堵,特别是北京、上海、广州等一线城市。而现今市面上的手机导航app基本只是根据地图规划路线,并不会考虑道路的路况,这就导致跟着导航走反而所需时间更长的情况出现。这种情况下就需要我们研究一个更好的路径优化算法规划路线,不仅仅是根据路线的长短,还需要考虑到中途路段的各种会影响通行时间的情况。蚁群系统(AntSystem或AntColonySystem)是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现虽然单个蚂蚁的行为比较简单,但是整个蚂蚁群体却可以展现出一些智能的行为。例如蚁群常常可以在许多地形各异的环境下,轻而易举的找出最短到达目的地的路径。而出现这种现象的原因是因为自然界中蚁群内的蚂蚁可以通过某种信息机制进行信息的传递。后面又经过进一步研究发现,蚂蚁都会在其经过的路径上释放一种能够传达信息的通常称之为“信息素”的物质,蚁群内的蚂蚁能够感应到路径上的“信息素”,并且能分辨出信息素的浓度,在分辨出路径的浓度后它们会顺着“信息素”浓度较高路径行走,而每只路过的蚂蚁都会在路上留下“信息素”,形成一种类似正反馈的机制,这样经过一段时间后,最短的路径上留下的信息素会变得最浓,整个蚁群就会沿着最短路径找到食物了。技术实现要素:本发明的目的是提供一种基于蚁群算法的拥堵路段路径优化方法,通过更改蚁群算法前期的选择算法与信息素的影响程度使蚁群算法不容易陷入局部最优路径。本发明的技术方案:一种基于蚁群算法的拥堵路段路径优化方法,包括以下步骤:步骤1,建立一个标记点(又称节点)的坐标矩阵,根据所划定区域的标记建筑物将各个标记点的横坐标、纵坐标更新到坐标矩阵buildings中,然后根据标记点之间的距离建立一个通行道路矩阵buildings-data,量化后得到坐标图;步骤2,建立红绿灯矩阵trafficlights、事故路段矩阵caraccition、行车缓慢路段矩阵slow,并分别将信号灯等待信息、事故路段信息和行车缓慢信息数据输入相应的矩阵;以坐标矩阵buildings、红绿灯矩阵trafficlights、事故路段矩阵caraccition以及行车缓慢路段矩阵slow数据为基础,通过干扰因素转换规则进行数据转换并组成节点之间距离矩阵D;步骤3,设定好蚁群数量m、迭代次数runtime、信息素矩阵pheromone、信息素影响程度因子pheromone-inf、信息素挥发因子masin、距离影响程度因子dasin;步骤4,开始前5次迭代,具体如下:步骤4.1,将蚁群放在起始点,随机选择下一个节点,将此节点记录到迭代路径矩阵table中;并把已去过的节点放到已过节点矩阵tabu中;步骤4.2,通过与所有节点的比较,并根据通行道路矩阵buildings-data所记录的节点间距离进行筛选,得出目前蚂蚁所在节点能去的下一个节点,放在下一节点矩阵allow中;步骤4.3,将能选择的下一个节点放入下一节点概率矩阵p中;步骤4.4,根据信息素含量和节点之间的距离,计算下一个节点的概率:P(k)=Pheromone(tabu(end),allow(k))^pheromone-inf*buildings-data(tabu(end),allow(k))^dasin;其中end为矩阵tabu中已通过的最近一个节点,k为allow矩阵中当前能去的下一个节点;步骤4.5,把步骤4.4得到的概率做归一化处理,并将要去的下一个节点根据概率排序;步骤4.6,利用随机函数rand得到一个小于1的数,判断该数在哪个概率区间,从而选择下一个节点target;步骤4.7,重复步骤4.1—步骤4.6,直到蚂蚁到达目的地;步骤4.8,迭代一次后,根据迭代路径矩阵table与信息素挥发因子masin对信息素矩阵pheromone进行更新;步骤4.9,重复步骤4.1—步骤4.8进行下一次迭代,直至5次迭代结束;步骤5,将所有蚁群放在起始点,根据通行道路矩阵buildings-data、信息素矩阵pheromone、信息素影响程度因子pheromone-inf、距离矩阵D以及距离影响程度因子dasin选择下一个蚁群的节点;根据道路换算后的距离以及道路上残留的信息素浓度选择道路,并将该路径记录到迭代路径矩阵table中;步骤6,将剩下的节点放入下一节点矩阵allow中,转步骤5,直到蚂蚁到达目的地;步骤7,迭代一次后,根据迭代路径矩阵table与信息素挥发因子masin对信息素矩阵pheromone进行更新;步骤8,重复步骤5—步骤7,进行下一次迭代;步骤9,完成步骤3规定的迭代次数runtime后,信息素矩阵中的信息素含量最浓的路径就是经过蚁群算法优化后的最优路径。本发明根据城市交通的实际情况对片区的标志点、道路、干扰因素等进行了量化,然后利用改进后的蚁群算法对量化后的城市交通模型进行了路径优化,可以得到路径的最优解,即选择所需时间最短的路径。附图说明图1为原城市地图。图2为图1经过量化后的坐标图。图3为图2经优化后的最优路径图。具体实施方式下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例:步骤1,为图1所示的原图建立一个标记点的坐标矩阵,根据所划定区域的标记建筑物将各个标记点的横坐标、纵坐标更新到坐标矩阵buildings中。然后根据标记点之间的距离(不能为无穷大)建立一个道路矩阵buildings-data,可得一量化后的坐标图如图2所示。步骤2,建立红绿灯矩阵trafficlights、事故路段矩阵caraccition、行车缓慢路段矩阵slow,并分别将信号灯等待信息、事故路段信息和行车缓慢信息数据输入相应矩阵;以坐标矩阵buildings、红绿灯矩阵trafficlights、事故路段矩阵caraccition以及行车缓慢路段矩阵slow数据为基础,通过干扰因素转换规则进行转换并组成节点之间距离矩阵D;首先利用节点的坐标计算出道路的实际距离,用D1(i,j)表示,i、j分别为该节点横坐标和纵坐标:D1(i,j)=sqrt(sum((points(i,:)-points(:,j))^2));再计算该节点等红绿灯增加的距离D2(i,j),其中gtraflt为红绿灯节点等待时间,以秒的数据代入:D2(i,j)=1000*gtraflt(i,j)/15;然后计算该节点事故路段影响的距离D3(i,j),其中gaction为事故路段影响的时间,以秒的数据代入:D3(i,j)=8*gaction(i,j)/3;行车缓慢而影响的距离:D4(i,j)按D1(i,j)、D2(i,j)、D3(i,j)三者之和的一半计算,D4(i,j)=[D1(i,j)+D2(i,j)+D3(i,j)]*1/2;得到节点之间的总距离为D(i,j)=D1(i,j)+D2(i,j)+D3(i,j)+D4(i,j);步骤3,设定蚁群数量m=100,迭代次数runtime=200,信息素矩阵pheromone初始值都为1,信息素影响程度因子pheromone-inf=1,信息素挥发因子masin=1,距离影响程度因子dasin=5。步骤4,开始前5次迭代,具体如下:步骤4.1,将蚁群放在起始点,随机选择下一个节点,将此节点记录到迭代路径矩阵table中;并把已去过的节点放到已过节点矩阵tabu中;步骤4.2,通过与所有节点的比较,并根据通行道路矩阵buildings-data所记录的节点间距离进行筛选(无穷大不选,其他可选),得出目前蚂蚁所在节点能去的下一个节点,放在下一节点矩阵allow中;步骤4.3,将能选择的下一个节点放入下一节点概率矩阵p中;步骤4.4,根据信息素含量和节点之间的距离,计算下一个节点的概率:P(k)=Pheromone(tabu(end),allow(k))^pheromone-inf*buildings-data(tabu(end),allow(k))^dasin;步骤4.5,把步骤4.4得到的概率利用公式P=P/sum(P)进行归一化处理,并将要去的下一个节点根据概率排好序;步骤4.6,利用随机函数rand得到一个小于1的数,看该数落在哪个概率区间,从而选择相应的节点为下一个节点target;步骤4.7,重复步骤4.1—步骤4.6,直到蚂蚁到达目的地;步骤4.8,迭代一次后,根据迭代路径矩阵table与信息素挥发因子masin对信息素矩阵pheromone进行更新。设定Delta_Tau为矩阵点的信息素含量,Q为总信息素,Length(e)为信息素在每条路径上的浓度。利用公式:Delta_Tau(Table(e,f),Table(e,f+1))=Delta_Tau(Table(e,f),Table(e,f+1))+Q/Length(e);计算并更新每一个矩阵点的信息素含量,其中e为Table矩阵的行,f为Table矩阵的列。步骤4.9,重复步骤4.1—步骤4.8,进行下一次迭代,直至5次迭代结束;步骤5,将所有蚁群放在起始点,根据通行道路矩阵矩阵buildings-data、信息素矩阵pheromone、信息素影响程度因子pheromone-inf、距离矩阵D以及距离影响程度因子dasin选择下一个蚁群的节点。根据道路换算后的距离以及道路上残留的信息素浓度选择道路,并将该路径记录到迭代路径矩阵table中。步骤6,将剩下的节点放入下一节点矩阵allow中,转步骤5,直到蚂蚁到达目的地;步骤7,迭代一次后,根据迭代路径矩阵table与信息素挥发因子masin对信息素矩阵pheromone进行更新;步骤8,重复步骤5—步骤7,进行下一次迭代;步骤9,完成步骤3规定的迭代次数runtime=200后,信息素矩阵中的信息素最浓的路径就是经过蚁群算法优化后的最优路径,如图3所示。本文所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
:的技术人员可对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1