一种基于改进蚁群算法的路径规划算法-开云(中国)Kaiyun·官方网站 -APP下载

文档序号:34131600发布日期:2023-11-28阅读:936来源:国知局


1.本发明涉及全局路径规划相关技术领域,种基具体涉及一种基于改进蚁群算法的于改路径规划算法。


背景技术:

2.近年来,进蚁随着科技的群算快速进步与发展,无人车在现实中的规划应用也越来越广泛,无论是算法在道路上的无人汽车,还是种基在物流仓库中的自动搬运小车,都是于改无人车的一种。无人车的进蚁适用范围广泛,使用场景也多样,群算因此前景广阔。规划
3.在经典蚁群路径规划算法中,算法栅格地图中的种基每一条路径上信息素的量都是相同的,就导致在算法的于改初期,蚁群所选择的进蚁每条路径的概率都是相同的,盲目的搜索使得蚁群无法短时间找到一条较优的路径。由于蚁群在这种没有引导的路径下进行搜索,容易遍历过多错误路径,导致蚁群陷入局部最优的情况,而一直无法找到最短路径。


技术实现要素:

4.针对上述蚁群在没有引导的路径下进行搜索,容易遍历过多错误路径,导致蚁群陷入局部最优而一直无法找到最短路径的技术问题,本技术方案提供了一种基于改进蚁群算法的路径规划算法,通过对蚁群群算法中的启发函数及信息素挥发系数进行改进,使得在路径规划中能够更快的收敛、路径更短,并在更少地迭代次数下输出最优路径;能有效的解决上述问题。
5.本发明通过以下技术方案实现:
6.一种基于改进蚁群算法的路径规划算法,包括步骤:
7.步骤1:构建环境建模,初始化算法参数,并用不同颜色的方格分别代表起点、终点、路径、障碍物;
8.步骤2:将起点所在节点(xi,yi)与下一步将要到达的节点(xj,yj)相连接,再将小车所在节点(xi,yi)与目标节点(xg,yg)相连接,最后将下一步所要到达的节点(xj,yj)与目标节点(xg,yg)相连接,三点的连线组成一份三角形;
9.步骤3:当前节点(xi,yi)与终点(xg,yg)的连线,和当前节点(xi,yi)与下一步将要到达的节点(xj,yj)的连线两者所组成的夹角为θ1,将下一所要到达的节点(xi,yi)与终点(xg,yg)相连接,其线与所在节点(xi,yi)与下一节点(xi,yi)的连线组成的夹角为θ2,并将所得夹角θ1和θ2代入启发函数中进行计算;
10.步骤4:通过步骤3中所求得的启发函数,能够获得新的蚂蚁的转移概率,即新型轮盘赌;
11.步骤5:通过式子对信息素挥发系数ρ值的大小进行更改,让ρ值在路径搜索前期获得较大的值,在后期获得较小的值;通过对信息素挥发系数值的改变,使算法获得一个较好的全局搜索能力和一个较快的收敛速度,改进的式子如下:
[0012][0013]
式中:k为当前的迭代次数,k为总迭代次数,ρ(k)为当下迭代次数的信息素挥发系数,ρ
min
和ρ
max
分别为最小的信息素挥发系数和最大的信息素挥发系数,因为信息素会随时间消散,因此ρ
min
和ρ
max
这两个数值由初次迭代k时获得最大值,最后迭代k时获得最小值;
[0014]
步骤6:将各代蚂蚁放置在格栅地图起点中,在matlab软件中运行程序代码,蚁群开始进行路径搜索;在进行选择下一个节点时,利用步骤3改进后的启发函数公式对蚂蚁下一目标点的选择进行导向,并通过此式计算出选择下一节点方向的概率;当到达下一节点后,继续计算下一节点的方向,不断地重复并将所遍历的节点在禁忌表中记录下来,直至整个路径搜索完成;
[0015]
步骤7:蚂蚁完成路径搜索后,对信息素进行更新;通过改进后的动态信息素挥发系数,使得信息素也能在路径规划的前期和后期动态更新,通过信息素浓度的不同记录下蚂蚁的路线和通过的距离;
[0016]
步骤8:当上面7个步骤全部完成后,则完成一次迭代;循环步骤2至步骤7的步骤,重新从步骤2的起点开始新一轮的路径规划;记录每一次迭代的路径长度,并通过步骤7更新的信息素确保蚂蚁在此后的迭代中有较大的概率选择信息素浓度高的节点,以提高收敛速度;当达到最大迭代次数k后,根据所保存的路径长度,选出最短路径,输出此最优解。
[0017]
进一步的,骤1所述的环境建模为20
×
20栅格地图的环境建模。
[0018]
进一步的,步骤3所述的启发函数的公式为:
[0019][0020][0021][0022]
式中,η
ij
为启发函数,蚂蚁选择下一节点的概率与启发函数成正比;i为当前节点的栅格序号,j为下一节点的栅格序号,g为目标节点的栅格序号,d
i,j
为当前节点到下一节点的距离,d
j,g
为下一节点到重点的距离;此启发函数能够应用步骤4中的转移概率公式中,优化蚂蚁向下一节点转移的概率成为新的转移概率,增加了目标节点对当前节点的导向作用,避免了算法中蚂蚁的盲目搜索,从而使得算法的收敛速度得到提高。
[0023]
进一步的,步骤4所述的转移概率为蚂蚁k在t时刻由当前节点i到目标节点j的概率,公式如下:
[0024]
[0025]
式中:为t时刻当前栅格节点i到下一栅格节点j的信息素浓度;α为信息素启发因子,表示信息素浓度对蚂蚁在选择下一节点时的重要程度,β为期望启发因子,期望是指蚂蚁选择下一节点与目标点之间距离的接近程度,表示距离因素对蚂蚁选择路径的影响程度,allowedk为蚂蚁k可以选择的格栅的集合,oth erwise表示当格栅无法选择是向此格栅移动的概率为0。
[0026]
进一步的,步骤7所述信息素的更新规则如下:
[0027]
τ
ij
(t+1)=(1-ρ)
·
τ
ij
(t)+δτ
ij
(t,t+1)
[0028][0029][0030]
式中:q为通过一次迭代中最优路径产生的信息素总量,lk是最小代价所获取的最短路径长度,τ
ij
(t)为t时刻的为t时刻当前栅格节点i到下一栅格节点j的信息素浓度,δτ
ij
为变异前当前栅格节点i到下一栅格节点j的信息素增量,δτ
ij
(t,t+1)为t时刻到t+1时刻节点i到下一栅格节点j的信息素增量。
[0031]
有益效果
[0032]
本发明提出的一种基于改进蚁群算法的路径规划算法,与现有技术相比较,其具有以下有益效果:
[0033]
(1)本技术方案通过对蚂蚁算法中的启发函数和信息素挥发系数进行改进;对启发函数的改进是通过对所在点的与下一点的连线,及下一点与终点的连线,再将所在点与终点的连线,所组成的夹角代入到启发函数中来优化启发函数,能够增加目标节点对当前节点的导向左右,避免算法中蚂蚁盲目地搜寻,陷入收敛过慢及局部收敛的问题。对信息素挥发系数的改进是将传统蚁群算法中信息素挥发系数由原来的固定常数,通过公式将信息素挥发系数改进为在路径规划的前期和后期动态变化的数值。能够增强全局搜索能力,并加快收敛速度,使得算法的效果更好。两者的结合,使得在路径规划的过程中,能够在尽量少的迭代次数下,寻找到最短的路径,并输出最优路径。
附图说明
[0034]
图1为本发明的整体流程示意图。
[0035]
图2为本发明中实施例1的结果示意图。
[0036]
图3为本发明的实施例1中的对比图。
具体实施方式
[0037]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。在不脱离本
发明设计构思的前提下,本领域普通人员对本发明的技术方案做出的各种变型和改进,均应落入到本发明的保护范围。
[0038]
实施例1:
[0039]
如图1所示,一种基于改进蚁群算法的路径规划算法,包括步骤:
[0040]
步骤1:构建20
×
20栅格地图的环境建模,初始化算法参数,并用不同颜色的方格分别代表起点、终点、路径、障碍物。
[0041]
步骤2:将起点所在节点(xi,yi)与下一步将要到达的节点(xj,yj)相连接,再将小车所在节点(xi,yi)与目标节点(xg,yg)相连接,最后将下一步所要到达的节点(xj,yj)与目标节点(xg,yg)相连接,三点的连线组成一份三角形。
[0042]
步骤3:当前节点(xi,yi)与终点(xg,yg)的连线,和当前节点(xi,yi)与下一步将要到达的节点(xj,yj)的连线两者所组成的夹角为θ1,将下一所要到达的节点(xi,yi)与终点(xg,yg)相连接,其线与所在节点(xi,yi)与下一节点(xi,yi)的连线组成的夹角为θ2,并将所得夹角θ1和θ2代入启发函数中,其式如下:
[0043][0044][0045][0046]
式中:η
ij
为启发函数,蚂蚁选择下一节点的概率与启发函数成正比;i为当前节点的栅格序号,j为下一节点的栅格序号,g为目标节点的栅格序号,d
i,j
为当前节点到下一节点的距离,d
j,g
为下一节点到重点的距离。此启发函数能够应用步骤4中的转移概率公式中,优化蚂蚁向下一节点转移的概率成为新的转移概率,增加了目标节点对当前节点的导向作用,避免了算法中蚂蚁的盲目搜索,从而使得算法的收敛速度得到提高。
[0047]
步骤4:通过步骤3中所求得的启发函数η
ij
,能够获得新的蚂蚁的转移概率,即新型轮盘赌;,为蚂蚁k在t时刻由当前节点i到目标节点j的概率,公式如下:
[0048][0049]
式中:为t时刻当前栅格节点i到下一栅格节点j的信息素浓度;α为信息素启发因子,表示信息素浓度对蚂蚁在选择下一节点时的重要程度,β为期望启发因子,期望是指蚂蚁选择下一节点与目标点之间距离的接近程度,表示距离因素对蚂蚁选择路径的影响程度,allowedk为蚂蚁k可以选择的格栅的集合,oth erwise表示当格栅无法选择是向此格栅移动的概率为0。
[0050]
步骤5:由于蚂蚁在路径上释放信息素的同时,信息素也会随时间逐渐消失,这就
是信息素的挥发特性。传统的蚁群算法中ρ通常为一固定常数,通过式子对ρ值的大小进行更改,让ρ值在路径搜索前期获得较大的值,使得算法拥有较强的全局搜索能力,让ρ值在后期获得较小的值,使算法收敛速度更快。ρ的取值对蚁群算法的性能有着重要的关系,ρ值选取得较小,会使得算法陷入局部最优,ρ值选取的较大,路径上的信息素挥发的较快,使得算法的搜索效率降低。通过对信息素挥发系数值的改变,使算法获得一个较好的全局搜索能力和一个较快的收敛速度,改进的式子如下:
[0051][0052]
式中:k为当前的迭代次数,k为总迭代次数ρ(k)为当下迭代次数的信息素挥发系数,ρ
min
和ρ
max
分别为最小的信息素挥发系数和最大的信息素挥发系数,因为信息素会随时间消散,因此ρ
min
和ρ
max
这两个数值由初次迭代k时获得最大值,最后迭代k时获得最小值。
[0053]
步骤6:将各代蚂蚁放置在格栅地图起点中,在matlab软件中运行程序代码,蚁群开始进行路径搜索。在进行选择下一个节点时,利用步骤3改进后的启发函数公式对蚂蚁下一目标点的选择进行导向,并通过此式计算出选择下一节点方向的概率。当到达下一节点后,继续计算下一节点的方向,不断地重复并将所遍历的节点在禁忌表中记录下来,直至整个路径搜索完成。
[0054]
步骤7:蚂蚁完成路径搜索后,对信息素进行更新,信息素的更新规则如下:
[0055]
τ
ij
(t+1)=(1-ρ)
·
τ
ij
(t)+δτ
ij
(t,t+1)
[0056][0057][0058]
式中:q为通过一次迭代中最优路径产生的信息素总量,lk是最小代价所获取的最短路径长度,τ
ij
(t)为t时刻的为t时刻当前栅格节点i到下一栅格节点j的信息素浓度,δτ
ij
为变异前当前栅格节点i到下一栅格节点j的信息素增量,δτ
ij
(t,t+1)为t时刻到t+1时刻节点i到下一栅格节点j的信息素增量,通过改进后的动态信息素挥发系数,使得信息素也能在路径规划的前期和后期动态更新,通过信息素浓度的不同记录下蚂蚁的路线和通过的距离。
[0059]
步骤8:当上面7个步骤全部完成后,则完成一次迭代;一次迭代难以出现最优解,因此需要重新从步骤2的起点开始新一轮的路径规划,故循环步骤2至步骤7的步骤。
[0060]
记录每一次迭代的路径长度,并通过步骤7更新的信息素确保蚂蚁在此后的迭代中有较大的概率选择信息素浓度高的节点,以提高收敛速度;当达到最大迭代次数k后,根据所保存的路径长度,选出最短路径,输出此最优解。
[0061]
如图2与图3所示,图2为从起点到达终点的路线图,在此期间没有任何碰撞。图3中蓝色线条为常规蚁群算法的迭代收敛曲线,绿色线条为改进后的蚁群算法的迭代曲线图。
从图中能够明显地看出:改进后的能够更快的收敛,并且绿色线条所走的路径也更短,能够有效的避免陷入局部最优解,表明改进的后的蚁群算法拥有更高的效率和有效性。
网友询问留言已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
技术分类