基于改进蚁群算法的移动机器人旅行商优化方法
【技术领域】
[0001] 本发明涉及智能移动机器人技术领域,具体涉及一种基于改进蚁群算法的移动机 器人旅行商优化方法。
【背景技术】
[0002] "旅行商问题(TSP)"常被称为"旅行推销员问题",是指一名推销员要拜访多个地 点时,如何找到在拜访每个地点一次后再回到起点的最短路径。规则虽然简单,但在地点数 目增多后求解却极为复杂。以42个地点为例,如果要列举所有路径后再确定最佳行程,那么 总路径数量之大,几乎难以计算出来;例如在物流中的描述是对应一个物流配送公司,欲将 n个客户的订货沿最短路线全部送到,如何确定最短路线。旅行商问题(TSP)是典型的NP完 全问题,即其最坏情况下的时间复杂度随着问题规模的增大按指数方式增长,到目前为止 还未找到一个多项式时间的有效算法。目前研究经典TSP常用算法有遗传算法、粒子群算 法、模拟退火算法、神经网络算法等。使用遗传算法前期收敛速度过快,容易陷入局部最优 解;使用粒子群算法虽然操作简单,且能够快速收敛,但是随着迭代次数的不断增加,在种 群收敛集中的同时,各粒子也越来越相似,可能在局部最优解周边无法跳出;使用模拟退火 算法具有收敛速度慢,执行时间长,算法性能与初始值有关及参数敏感等缺点;使用神经网 络算法很难在较复杂的环境下实现。
[0003]蚁群算法最早是由意大利学者Marco Dorigo于1991年在其博士论文中提出,其真 实地模拟了自然界蚂蚁群体的觅食行为。蚁群算法是一种自组织的、并行的、正反馈算法, 具有较强的鲁棒性。把蚁群算法应用于研究TSP问题,能够有效解决此类问题,虽然许多科 学家也对传统的蚁群算法做了许多改进,而且大多是将蚁群算法与其他算法相结合来解决 前期收敛速度过慢的问题,前期收敛速度慢就必然导致效率非常低。
【发明内容】
[0004] 本发明要解决的技术问题是针对现有技术中的不足,提出了一种基于改进蚁群算 法的移动机器人旅行商优化方法,在算法前期具有快速的收敛性,减少迭代次数,提高搜索 效率,缩短路径长度,符合人工规划意图,适用于移动机器人在静态环境中的自主导航。
[0005] 实现本发明目的的技术方案之一是提供一种基于改进蚁群算法的移动机器人旅 行商优化方法,包括如下几个步骤:
[0006] ①利用移动机器人自带的摄像头、声呐环、红外传感器采集移动机器人的工作环 境信息,包括所有的"城市"坐标信息,并进行地图建模;
[0007] ②利用各"城市"的坐标信息,计算城市间的相互距离,并根据距离信息对信息素 浓度进行初始化;
[0008] ③利用改进后的蚁群算法,进行路径寻优;其具体过程包括:
[0009] A、对环境信息进行坐标处理;
[0010] B、设置初始参数,包括蚁群规模、信息素重要程度因子、启发函数重要程度因子、 信息素挥发因子、信息素释放总量、最大迭代次数和迭代次数初值;
[0011] C、将蚂蚁随机置于不同的城市,按照一定的概率随机选择下一个待访问的城市;
[0012] D、对所走路径进行局部信息素浓度更新;
[0013] E、所有蚂蚁完成一次迭代后,对信息素浓度进行全局更新;
[0014] F、若没有达到最大迭代次数,转至步骤C;否则,终止迭代,输出最优解结果;
[0015] ④根据步骤③得到的优化结果输出最优路径的路线图。
[0016] 进一步的,步骤①中,地图建模的要求如下:(a)移动机器人的活动范围在有限的 二维空间;(b)将移动机器人和各个城市看做质点,便于分析研究;(c)将移动机器人和各个 城市按照二维坐标系建模;城市的总数量为n。
[0017]进一步的,步骤②中,用cUj表示任意城市i和城市j之间的距离,计算公式如下:
,其中城市i在二维坐标系的坐标为(xi, yi),城市j在二维坐标系的坐标为(xj,yj);
[0019]根据距离信息对信息素浓度进行初始化得到的初始信息素浓度为T〇u,^^ = l/ dij 〇
[0020]进一步的,步骤③的过程B中,信息素挥发因子的数值选取为0.1。
[0021 ]进一步的,步骤③的过程C中,蚂蚁k在t时刻从城市i转移到城市j的概率<的计算 公式为:
[0023] 式中:allowk(k=l,2,…,m)为蚂蚁k待访问城市的集合,开始时,allowk中有(n-1)个元素,即包括除了蚂蚁k出发城市的其他所有城市,随着时间的推进,all 〇Wk中的元素 逐渐减少,直至为空,即表示所有的城市均访问完毕;T^(t)表示在t时刻城市i、j间路径上 的信息素浓度;a为信息素重要程度因子,其值越大,表示信息素的浓度在转移中起的作用 越大;0为启发函数重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁会 以较大的概率转移到距离短的城市;阳⑴为启发函数,表示t时刻蚂蚁从城市i转移到城市 j的期望程度,计算公式如下:
[0024] 进一步的,步骤③的过程D中,局部信息素浓度初次更新规则如下:
[0025] Tij(t+l) = (l-e)Tij(t)+ex/〇,
[0026] 其中,Tij(t+1)为初次更新后的局部信息素浓度,e是一个参数,££(〇,1),变量1/0 = C/c^,C为不为零的常数。
[0027] 进一步的,步骤③的过程D中,计算完一次城市间的转移概率后,采用轮盘赌方法 选择下一个待访问的城市。
[0028] 进一步的,步骤③的过程E中,对信息素浓度进行全局更新的方式如下:
[0033] 其中,P表示信息素的挥发程度,I是一个参数,4<表示对最短路径和最长路径额 外更新的信息素增量;表示第k只蚂蚁在城市i与城市j连接路径上释放的局部信息素浓 度;A 表示所有蚂蚁在城市i与城市j连接路径上释放的局部信息素浓度之和,| e (〇,1), Q为常数,表示蚂蚁循环一次所释放的局部信息素总量;Lk为蚂蚁k经过路径的长度,Lbest为 该次迭代中最短路径长度,L wcirst为该次迭代中最长路径长度,n为城市数目。
[0034] 实现本发明目的的技术方案之二是提供一种基于改进蚁群算法的移动机器人路 径寻优方法,包括如下几个步骤:
[0035] S101:根据城市间距离信息初始化信息素矩阵;
[0036] S102:初始化其他参数信息,包括蚁群规模、信息素重要程度因子、启发函数重要 程度因子、信息素挥发因子、信息素释放总量、最大迭代次数和迭代次数初值;
[0037] S103:将蚂蚁随机置于不同出发点,采用轮盘赌法选择下一个访问的城市,直至访 问完所有的城市;
[0038] S104:对所走路径进行局部信息素更新;
[0039] S105:所有蚂蚁完成一次迭代后进行全局信息素更新;
[0040] S106:判断是否达到最大迭代次数,若达到了,则转S107;否则转S103;
[00411 S107:终止计算,输出最优路线图。
[0042] 本发明具有积极的效果:(1)本发明的优点在于它对以往传统蚁群算法对于初始 化信息素浓度方面做了改进,使得蚂蚁一开始就能对蚂蚁的寻优做出导向,前期收敛速度 明显加快;同时对初始参数的合理选择,例如信息素挥发因子P的选择,使得结果不至于陷 入局部最优解或者难以形成最优解,以及对信息素更新方式作出合理改进,能有效避免陷 入局部最优和提高机器人的工作效率和工作可靠性。
[0043] (2)传统蚁群算法将初始化信息素浓度设置为1,这样就给蚂蚁初次搜索路径带来 了问题,每条路径被选中的概率都一样,这样就导致了前期搜索较慢,走了过多的弯路,影 响了整个搜索的效率。而本发明对此问题所做的改进就是根据计算得到的城市间的距离信 息来确定初始信息素浓度,也就是用距离的倒数来初始化信息素矩阵,也就是让蚂蚁优先 选择距离较近的城市,这样就给初次搜索的蚂蚁指明了一定的方向,从而不至于去多走一 些没必要的弯路。
[0044] (3)本发明只需要迭代传统蚁群算法的一半次数就能收敛到最优解,效率提升了 一倍多。本发明对传统蚁群算法所做改进的优势显而易见,改进后的蚁群算法让蚂蚁在前 期少走许多弯路,提高了算法前期的收敛性,大大提高了移动机器人的工作效率和工作可 靠性。
【附图说明】
[0045] 图1为本发明的基于改进蚁群算法的移动机器人旅行商优化方法的流程图;
[0046] 图2为传统蚁群算法的路径图;
[0047]图3为传统蚁群算法的各代最短距离与平均距离的对比图;
[0048]图4为改进后的蚁群算法的优化路径图;
[0049]图5为改进后的蚁群算法的各代最短距离与平均距离的对比图。
【具体实施方式】
[0050] (实施例1)
[0051] 见图1,本实施例的基于改进蚁群算法的移动机器人旅行商优化方法,具体包括以 下步骤:
[0052] 步骤一、环境建模:
[0053]利用移动机器人自带的摄像头、声呐环、红外传感器采集移动机器人的工作环境 信息,包括所有的"城市"坐标信息,并进行地图建模;建模要求如下:(a)移动机器人的活动 范围在有限的二维空间;(b)将移动机器人和各个城市看做质点,便于分析研究;(c)将移动 机器人和各个城市按照二维坐标系建模。城市的总数量为n。
[0054]步骤二、初始化信息素矩阵:
[0055]计算各个城市间的相互距离du,并根据距离信息确定蚁群算法的初始信息素浓度 扣^,其中T(^ = l/d小其中,(^表示城市i和城市j之间的距离,计算公式如下:
,其中城市i在二维坐标系的坐标为(xi, yi),城市j在二维坐标系的坐标为(xj,yj)。
[0057]传统蚁群算法将初始化信息素浓度设置为1,这样就给蚂蚁初次搜索路径带来了 问题,每条路径被选中的概率都一样,这样就导致了前期搜索较慢,走了过多的弯路,影响 了整个搜索的效率。而本发明对此问题所做的改进就是根据计算得到的城市间的距离信息 来确定初始信息素浓度,也就是用距离的倒数来初始化信息素矩阵,也就是让蚂蚁优先选 择距离较近的城市,这样就给初次搜索的蚂蚁指明了一定的方向,从而不至于去多走一些 没必要的弯路。
[0058]步骤三、利用改进后的蚁群算法进行路径寻优。具体过程如下:
[0059] (a)对环境进行坐标处理;
[0060] (b)设置初始参数,包括蚁群规模m,信息素重要程度因子a,启发函数重要程度因 子0,信息素挥发因子P,信息素释放总量Q,最大迭代次数iterjnax,迭代次数初值iter=l; 其中,信息素挥发因子P的影响在于它体现的是蚂蚁留在其通过的路径上的信息素轨迹的 持久性,若其