蚂蚁算法AntColonyOptimization丁建立中国民航大学计算机学院蚂蚁算法蚂蚁算法的原理、特点蚂蚁算法的模型蚂蚁算法的研究进展蚂蚁算法求解TSP问题蚂蚁的生物特征用于优化领域的人工蚂蚁算法,其基本原理吸收了生物界中蚂蚁群体行为的某些显著特征:(1)察觉小范围区域内状况并判断出是否有食物或其他同类的信息素轨迹;(2)释放自己的信息素;(3)所遗留的信息素数量会随时间而逐步减少。图2-1蚂蚁从蚁穴(Nest)移至食物源(Food)图2-2在巢穴与食物源之间出现障碍物时蚂蚁收敛到最短路径的过程蚂蚁算法的原理蚂蚁在寻找食物源时,能在其走过的路上释放一种特殊的分泌物——信息素(随着时间的推移该物质会逐渐挥发),后来的蚂蚁选择该路径的概率与当时这条路径上该物质的强度成正比.当一定路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多,后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的信息素强度。而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制,通过这种正反馈机制,蚂蚁最终可以发现最短路径。特别地,当蚂蚁巢穴与食物源之间出现障碍物时,蚂蚁不仅可以绕过障碍物,而且通过蚁群信息素轨迹在不同路径上的变化,经过一段时间的正反馈,最终收敛到最短路径上。蚂蚁算法的特点(1)其原理是一种正反馈机制或称增强型学习系统;它通过信息素的不断更新达到最终收敛于最优路径上;(2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实际蚂蚁的一种简单模拟,它融进了人类的智能;(3)它是一种分布式的优化方法;不仅适合目前的串行计算机,而且适合未来的并行计算机;(4)它是一种全局优化的方法;不仅可用于求解单目标优化问题,而且可用于求解多目标优化问题;(5)它是一种启发式算法;计算复杂性为,其中NC是迭代次数,m是蚂蚁数目,n是目的节点数目。)(2nmNCO蚂蚁算法符号的定义蚂蚁算法(AntAlgorithm,AA)或统称蚁群优化(AntColonyOptimization,ACO)一些符号的含义:m——蚂蚁个数;n——结点(顶点)个数;——边弧的能见度(visibility),或称局部启发因子,一般取,表示路径之间的长度;——边弧的信息素轨迹强度(intensity);——蚂蚁k于弧上留下的单位长度轨迹信息素数量;——蚂蚁k在结点的转移概率,j是尚未访问结点;——信息素轨迹的相对重要性();——边弧能见度的相对重要性();ij),(jiijd1ijd),(jiij),(jikij),(jikijp00蚂蚁算法符号的定义——信息素轨迹的持久性(),可理解为轨迹衰减度(evaporation);——体现蚂蚁所留轨迹数量的一个常数;——可行结点集合;——为第k只蚂蚁在第结点i出发下一步的可行结点集;——一个列表,用于记录第k只蚂蚁到目前为止已经访问的城市。101QUkiN)(ktabu蚂蚁算法求解的一般步骤第1步:初始化,NC=0,将m只蚂蚁置于n个顶点上;第2步:将各蚂蚁的初始出发点置于当前解集中;对每一个蚂蚁k,按概率P选择移至下一顶点j上;将顶点j置于当前解集;第3步:计算各蚂蚁的目标函数值;记录当前的最好解;第4步:按更新方程修改信息素轨迹强度;第5步:对各边弧,,NC=NC+1;第6步:若搜索次数NC预定迭代次数且无退化行为(即找到的都是相同解),则转第二步;第7步:输出目前的最好解。),(ji0ijAS模型(AntSystem简称AS)蚂蚁系统(AS)是第一个蚁群优化算法(ACO),它是意大利科学家Dorigo在1991年最先提出,并成功地用于求解著名的组合爆炸问题TSP问题,后经他本人(1992,1996,2000)及学者Colorni,Maniezzo(1997,1999)等进一步研究,将其系统化。其主要参数变量表达如下:选择概率:信息素更新方程为:otherUjtttpUlililijijkij0][)]([][)]([)(mkkijijijttt1)()()1(按的不同取法,可形成三种类型的蚂蚁算法模型:(1)蚂蚁密度模型(AntDensity):(2)蚂蚁数量模型(AntQuantity):(3)蚂蚁圈模型(AntCycle):其中:可行结点集合,具体应用中经常用表示,为第k只蚂蚁在第i结点出发下一步的可行结点集(TSP问题应去掉第k只蚂蚁已经过的结点),为第k只蚂蚁在本次循环中所走的路径的长度。上述三种模型中,蚂蚁密度模型和蚂蚁数量模型利用的是局部信息,而蚂蚁圈模型利用的是全局信息,对全局优化较好。kijkkijLQijkijdQQkijUkiNkiNkLACS(AntColonySystem)模型Dorigo与Gambardella等学者在1997年在Ant-Q算法的基础上进行修改,为了平衡寻找更好结果和寻找更大的搜索空间,Pseudo-Random-Proportionalrule下状态转移如下:V按照下面概率选择这里是将Ant-Q模型中,更重要地是给出了局部在线和全局离线的两种信息素轨迹更新方式:00])()[(argmaxqqVqqvililNlkikiNlililijijkijp)()()()(1LocalUpdating(onlineupdating):GlobalUpdating(offlineupdating):这里的可以是,,0。仅对最短路径的信息素增加量。局部更新用于每一时刻每一蚂蚁的每一步移动之中,而全局更新是所有的蚂蚁都完成一个周期的搜索之后最好的搜索结果进行信息素轨迹更新。ijijijtt)1()()1(eijijijtt)1()()1(jmaxeij0ijMMAS(Max-MinAntSystem)模型为避免停滞和陷入局部,Stutzle和Hoos提出了MAX-MINAntSystem(简称MMAS)模型,它对AS进行了三点改进:(1)为了更加充分地寻优,各路径信息素初值设为最大值;(2)一圈中只有最短路径的蚂蚁才进行信息素修改增加,这与AS蚂蚁圈模型调整方法相似;(3)为了避免算法过早收敛非全局最优解,将各路经的信息素浓度限制在于之间,即。超出这个范围的值被强制设为或者。从实验结果看,MMAS算法在防止算法过早停滞及有效性方面对AS算法有较大的改进。maxeijijijtt)()1(],[maxminmaxminijmaxmin几种模型的评价随着蚂蚁算法发展,蚂蚁算法的模型越来越丰富,人们针对不同的问题设计不同的参数,如求解TSP问题时,,表示两个城市之间的距离;在求解QAP问题时,表示流程与距离的关系;在求解SMTT时,是可以得到的启发数据。如等参数的选择也要根据不同问题做出不同选择。同时,基于问题进行轨迹更新方程的修改及概率选择的定义也是必要的。在蚂蚁算法的几种模型中,AS,ACS,MMAS三种具有重要的作用。ijijd1ijdijijs1jiijdfsijijMDD1ijMDD,,,QAS(AntSystem)模型的优点AS(AntSystem)是最早的伴随蚁群这个概念提出来的算法,它首先被成功地运用于TSP问题。虽然与目前已经发展完备的一些算法(如GA等)比较起来,基本蚁群算法计算量比较大,而且效果也并不一定更好,但是它的成功运用激起了人们对蚁群算法的极大兴趣,并吸引了一批研究人员从事蚁群算法的研究。AS的优点在于:(1)正反馈,从而能迅速找到好的解决方法;(2)分布式计算可以避免过早地收敛;(3)强启发能在早期的寻优中迅速找到合适的解决方案。(4)AS算法被成功地运用于许多能被表达为在图表上寻找最佳路径的问题。ACS与AS的主要区别(1)ACS算法中,蚂蚁在寻找最佳路径的过程中使用局部信息,即采用局部信息对信息素浓度进行调整;(2)在所有进行寻优的蚂蚁结束路径寻找后,信息素的浓度会再一次调整,这次采用的是全局信息,而且只对过程中发现的最好路径上的信息素浓度进行加强;(3)有一个状态传递机制,用于指导蚂蚁最初的寻优过程,并通过信息素的积累反映问题的目前状态。MMAS模型特点MMAS(MAX-MINAntSystem)是到目前为止解决TSP,QAP等问题最好的ACO类算法。和其他寻优算法比较起来,它仍然属于最好的解决方案之一。其特点在于:(1)只对最佳路径增加信息素的浓度,从而更好地利用了历史信息(这与ACS算法的调整方案有点类似);(2)为了避免算法过早收敛于并非全局最优的解,将各条路径可能的信息素浓度限制于,超出这个范围的值被强制设为或者是,可以有效地避免某条路径上的信息量远大于其余路径,使得所有的蚂蚁都集中到同一条路径上,从而使算法不再扩散;(3)将各条路径上信息素的起始浓度设为,这样便可以更加充分地进行寻优。],[maxminmaxmaxmin表2蚂蚁算法及其应用研究问题研究者算法命名时间旅行商问题(TSP)Dorigo,Maniezzo,ColorniGambardellaandDorigoStizleandHoosBullnheimerandHartl马良吴斌、史忠植Randall丁建立、陈增强、袁著祉ASAnt-Q,ACSandACS-3-optMMASASrank扩展TSP蚂蚁算法分段蚂蚁算法PACS遗传算法与蚂蚁算法融合GAAA19911995,1996199619971999200120022003分配问题(QAP)Maniezzo,Colorni,DorigoGambardella,Taillard,DorigoStizleandHoosManiezzo,CarbonaroRamalhinho,Lourenco,SerraTalbi,Roux,Fonlupt,RobillardAS-QAP,ANTS-QAP,AS-QAPcHAS-QAPbMMAS-QAPANTS-FAPMMAS-GAPPAC1994,1998,199919971997199819982001调度问题(SP)Colorni,Dorigo,ManiezzoStizleBaueretalDenBesten,Dorigo,Maniezzo陈义宝、周济等AS-JSPAS-FSPACS-SMTTPACS-SMTWTP工件排序蚁群算法19941997199919992002表2蚂蚁算法及其应用(续)路由问题(RP)Bullnheimer,Hartl,StraussGambardella,Taillard,AgazziSchoonderwoerd,Bonabeau,vanderputetalWhite,Pagurek,OppacherDiCaro,DorigoSubramanian,Druschel,ChenHeusseetalNavarroVarela,Sinclair李生红,刘泽民,周正张素兵,刘泽民丁建立、陈增强、袁著祉AS-VRPHAS-VRPABC,ABC-smart,ABC-backwardASGAAntNet-FA,AntNet-FSRegularantsCAFACO-VWPVC路由选择分布式多播路由动态路由选择199719991996199819981997,1998199719981999200020012003其他问题Gambardella,DorigoCostaandHertzMichel,MiddendorfLeguizamon,MichalewiczLiang,Smith马良,蒋馥马良,王龙德丁建立、陈增强、袁著祉HAS-SOPANTCOLAS-SCSAS-MKPACO-RAP度限制最小树(DCMST)背包问题蚂蚁算法蚂蚁算法收敛性分析1997199719981999199919992