一种求解TSP的自适应蚁群优化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种求解TSP的自适应蚁群优化算法
王胜训;李艳颖
【摘要】According to the standard ant colony algorithm in solving traveling salesman problem of (TSP) has the defects ,such as slow convergence speed and easily trapped in local most superior ,an adaptive ant colony optimization algorithm was proposed .The algorithm designs a real-time monitoring mechanism and a new search direction .Real-time monitoring mechanism can let the algorithm to jump out of local optimal value ,and when the algorithm jump out of local optimal value ,the new search direction can speed up the algorithm convergence to global optimal .Through the typical TSP instance simulation ,com-pared with the basic ant colony algorithm and MMAS algorithm ,the result shows that the algorithm has great superiority in overcoming the premature phenomenon and the convergence speed .%针对标准蚁群算法在求解旅行商问题(TSP)时存在收敛速度慢,易陷入局部最优等缺陷,提出一种自适应蚁群优化算法。
该算法设计了一种实时监测机制和一种新的搜索方向,实时监测机制可以让算法跳出局部最优值,并且当算法跳出局部最优值时,沿着新的搜索方向搜索,可以加快算法收敛到全局最优。
通过对典型的 TSP实例仿真实验,与基本蚁群算法、MMAS算法相对比,结果显示该算法在克服早熟现象和收敛速度方面有很大的优越性。
【期刊名称】《西安工程大学学报》
【年(卷),期】2013(000)006
【总页数】5页(P840-844)
【关键词】蚁群算法;旅行商问题(TSP);组合优化
【作者】王胜训;李艳颖
【作者单位】西安电子科技大学理学院,陕西西安710071;西安电子科技大学理
学院,陕西西安710071
【正文语种】中文
【中图分类】TP18
0 引言
旅行商问题TSP[1](Traveling Salesman Problem)又称为货郎担问题,是
经典的NP问题.TSP问题可描述为:设有n个城市,已知每两个城市之间的距离,一个旅行商从某一个城市出发巡回售货,问这个旅行商应该如何选择路线,使每个城市经过一次且仅有一次,并且总的行程最短.
蚁群算法是由Marco Dorigo等人于1991年首先提出的[2],是一种新颖的仿生进化算法,该算法采用了正反馈并行自催化机制,具有较强的鲁棒性,优良的分布式计算机制,易于与其他方法结合等优点.在解决许多复杂优化问题方面已经展
现出其优异的性能和巨大的发展潜力,并应用于生产调度、布线等生产问题.但该
算法在进化的过程中,在信息素正反馈调节的作用下,很容易陷入局部最优,且存在收敛速度慢等问题.为了提高蚁群算法的寻优性能,很多学者对其进行了改进.在
考虑到该算法在寻优的过程中,鲁棒性较强,易与其他方法结合的特点,文献[3-4]分别将蚁群算法和遗传算法相结合,取得了很好的效果.由于参数在蚁群进化过程中起到很重要的作用,因此,文献[5]对蚁群算法中参数的作用做了研究,同时对最优的参数配置问题做了分析.文献[6]在进化的过程中,将模糊的方法引
入蚁群算法,增加了解空间的多样性,有效地克服了该算法已陷入局部最优的缺陷.
1 基本蚁群算法求解TSP问题
设m为蚁群中蚂蚁的数量;dij为城市i,j间的欧氏距离,bi(t)表示t时刻位
于城市i的蚂蚁的个数;τij为路径(i,j)上残留信息素数量,为第k只蚂蚁在路径(i,j)上留下的信息素量;ηij 为路径(i,j)的期望、程度,一般取ηij=
1/dij;随着时间的推移,以前路径上留下的信息素将逐渐消逝[7],用参数ρ(ρ∈ (0,1))来表示残留信息素单位时间的蒸发度,tabuk用以记录蚂蚁k
走过的城市;Lk为蚂蚁k走过的路程;为某一时刻蚂蚁k由位置i转移到位置j的概率.
1.1 路径选择机制
蚂蚁从节点i到另一个没有经过的节点j的运动采用下述转移概率规则,该规则是以城市i,j之间路径上的信息素的浓度τij(t)和在该节点所能得到的启发性信息(城市之间的距离)为基础.具体的概率选择公式如式(1)所示[3].
式中,allowedk为蚂蚁k下一步允许选择的城市,tabuk为禁忌表,用来存放蚂蚁已经走过的城市,allowedk={1,2,…,n}-tabuk;α,β分别表示τ,η的作用程度.
1.2 信息素调节机制
当m只蚂蚁全部完成一次周游后,构造了一个回路集合H(t),形成问题的一个可行解集合,其中第k只蚂蚁的回路长度记为L(k,t).当第t个搜索时刻结束时,蚂蚁便在各自的回路上留下信息素,其增量与该解的质量(即L(k,t)的大小)成反比,各条路径上的信息素总量和m只蚂蚁留在边(i,j)上的总的信息素增量可根据式(2)和(3)调整.
式中,为本次循环中第k只蚂蚁留在路径(i,j)上的信息素量.
根据信息素更新策略的不同,可分为3种不同的更新策略,该文中主要采取全局
更新策略,如式(4).
式中,Q为常数(表示蚂蚁循环一周所释放的信息素总量).Lk表示蚂蚁k在本次循环中所走的路径的长度.
很多学者在信息素方面做了大量的研究,例如,文献[8-9]就是通过动态调节
信息素来扩大解的搜索空间,跳出局部最优解,从而收敛到全局最优解.
2 改进算法及实施步骤
对于演化算法的关键问题,就是在“探索”和“利用”之间建立一个平衡点,也就是说既要使得该算法的搜索空间尽可能大,以寻找那些尽可能存在最优解的解区间;同时充分利用群体内当前具有的有效信息,使得算法搜索的侧重点放在那些可能最优较高适应值的个体所在的区间内,从而以大概率搜索到全局最优解.蚁群算法的
信息交互及通信主要是通过信息素来完成,其收敛到最优解的过程,就是信息素正反馈调节的过程,然而这种正反馈的过程,却容易使进化过程停滞不前,陷入局部最优解,为了解决这个问题,根据算法搜索的情况,提出了2个改进措施.
2.1 实时监测机制
在一定的进化代数后,进行实时监测算法的搜索和收敛状态,如果在规定的进化代数之内获得的最优值没有发生变化,该搜索可能陷入了局部极值中,则增加一种新的搜索方向,让该搜索在目前得到的最优值的前提下,进行新方向的搜索,这样可以充分利用当前最优值的信息和新的搜索方向的信息,更有利于加快全局收敛速度.如果得到新的最优值,则更新当前最优值,并且在一定的进化代数内在新得到的最优值范围内进行局部搜索;当局部搜索得到的最优值不再发生变化时,则再进行新的方向的搜索.重复上面的过程,直到满足最大进化代数.
2.2 新的搜索方向
先是随机产生一些新的路径,在新的路径内选取最好的几条路径来替换原来m只蚂蚁走过的路径的最后几条,这样选择路径较好的几条可以让搜索方向以更大的概率跳向全局最优值,加快全局收敛速度.在路径信息素更新方面,采取新的更新策略:①将新添加的几条路径进行信息素更新,扩大搜索范围;②在替换后的新的m条路径中选取最优的路径进行信息素更新,充分利用全局最优值,加快全局收敛.
文献[10]中的MMAS算法在基本蚁群算法中的最大改进就是将每一段路径上的信息素量限定在预设定的最大值MAXTAO和最小值MINTAO之间,在仿真实验中可以看出该方法在防止过早停滞方面对基本蚁群算法有较大的改进,本文也利用了MMAS算法中对信息素设置最大值最小值的思想.
上述更新算法的Matlab代码如下:
2.3 实施步骤
步骤(1)初始化种群规模N,最大迭代次数Nc_max,相应参数α,β,ρ,Q 以及在寻找新的方向时随机生成的种群规模a及选取的最优个数b,监测实施之前的进化代数Nc_new.
步骤(2)当进化代数Nc<Nc_new时,迭代算法用MMAS算法;当Nc>
Nc_new时,开始进行搜索与收敛的监测,且每隔规定的代数检测一次.如果算法在该代数内的最优值不再发生变化,则进行新的方向的搜索,否则继续;如果Nc =Nc_max,结束,转入步骤(4).
步骤(3)当在新的方向上搜索到更好的解时,则保存此解,并在该解周围进行局部搜索.如果在上述规定的监测代数内最优解没有更新,则转入步骤(2),否则继续;如果Nc=Nc_max,结束,转入步骤(4).
步骤(4)输出最优解.
3 仿真实验及结果分析
通过对全国34个省会城市以及通用的TSPLIB中选用的eil51和KroA100分别采用基本的蚁群算法、MMAS算法以及本文提出的自适应蚁群算法进行仿真,比较
几种算法的计算结果.仿真采用Matlab7.0进行编程.
表1 3种算法对34个城市的仿真结果注:α=1,β=4,ρ=0.8,a=20,b=6,Nc_new=50.算法路径长度最优路径长度最差路径长度平均路径长度基本蚁群算法15 875 16 988 16 314.2 MMAS算法 15 777 16 545 15 924本文算法15 744 15 962 15 819.4
表2 3种算法对eil51的仿真结果注:α=1,β=4,ρ=0.8,a=20,b=6,
Nc_new=50.算法路径长度最优路径长度最差路径长度平均路径长度基本蚁群算法442.214 5 456.886 6 450.149 5 MMAS算法 438.703 2 448.181 8 443.567 75本文算法428.981 6 433.285 6 430.933 66
表3 3种算法对KroA100的仿真结果注:α=1,β=4,ρ=0.8,a=20,b=6,Nc_new=100.算法路径长度最优路径长度最差路径长度平均路径长度基本蚁群
算法22 095 25 132 23 953.6 MMAS算法 21 536 22232 21 894.2本文算法21 322 21 872 21 497.5
从表1~3可以看出,本文算法在最优路径和平均路径长度都优于基本蚁群算法和MMAS算法,稳定性较好.
图1 eil51平均路径曲线(上方)与收敛曲线(下方)
图2 本文算法的eil51最优路径图
从图1可以看出算法一旦陷入局部极值时,就能跳出此极值,向着更优的方向进化.本算法得到的eil51最短路径为16-2-22-1-32-11-38-5-49-10-
39-33-45-15-37-17-44-42-19-40-41-13-25-14-18-4-47
-12-46-51-27-6-48-23-24-43-7-26-8-31-28-3-36-35-20-29-21-34-30-9-50.对应的最短路径长度为428.9816.
本算法得到的KroA100最短路径为13-76-33-37-5-52-78-96-39-
30-48-100-41-71-14-3-43-46-29-34-83-55-7-9-57-20-12-27-86-35-62-60-77-23-98-91-45-32-11-15-17-59-74-21-72-10-84-36-99-38-24-18-79-53-88-16-22-94-70-66-26-65-4-97-56-80-31-89-42-8-92-75-19-90-49-6-63-1-47-93-28-67-58-61-51-87-25-81-69-64-40-54-2-44-50-73-68-85-82-95.对应的最短路径长度为21 322.
图3 本文算法的KroA100最优路径图
从实验数据可以看出,本文的自适应算法在收敛速度和跳出局部最优值获得全局最优解方面,都比基本蚁群算法和MMAS算法有很大的提高.
4 结束语
在和其他算法的对比中可以看出,本算法在克服蚁群算法收敛速度慢,易陷入局部最优方面有很大的提高,是一种有效的改进算法.但这种算法在新的搜索方向的参
数设置方面还有待进一步研究.
【相关文献】
[1] DORIGO M,GAMBARDELLA L M.Ant colony system:A cooperative learning approach to the traveling salesman problem[J].IEEE Transactions on Evolutionary Computation,1997,1(1):53-66.
[2] COLORNI A,DORIGO M,MANIEZZO V.Distributed optimization by ant colonies [C]//Proceedings of the First European Conference on Artificial Life,Paris,1991,142:134-142.
[3] CHEN S M,CHIEN C Y.Solving the traveling salesman problem based on the
genetic simulated annealing ant colony system with particle swarm optimization techniques[J].Expert Systems with Applications,2011,38(12):14439-14450. [4] ALBAYRAK M,ALLAHVERDI N.Development a new mutation operator to solve the traveling salesman problem by aid of genetic algorithms[J].Expert Systems with Applications,2011,38(3):1313-1320.
[5]孙力娟,王良俊,王汝传.改进的蚁群算法及其在TSP中的应用研究[J].通信学报,2004,25(10):111-116.
[6]柳寅,马良.模糊蚁群算法及其在 TSP中的应用[J].数学的实践与认识,2011,41(6):150-154.
[7]段海滨.蚁群算法原理及其应用[M].北京:科学出版社,2005.
[8]王颖,谢剑英.一种自适应蚁群算法及其仿真研究[J].系统仿真学报,2002,14(1):31-33.
[9]覃刚力,杨家本.自适应调整信息素的蚁群算法[J].信息与控制,2002,31(3):198-201.
[10] STUTZLE T,HOOS H.Max-min ant system and local search for the traveling salesman problem[C]//IEEE International Conference on Evolutionary Computation,Indianapolis,1997:309-314.。