最早的蚁群算法是蚂蚁系统(Ant System,AS),研究者们根据不同的改进策略对蚂蚁系统进行改进并开发了不同版本的蚁群算法,并成功地应用于优化领域。用**该方法求解旅行商(TSP)问题、分配问题、车间作业调度(job-shop)问题,取得了较好的试验结果。**蚁群算法具有分布式计算、无中心控制和分布式个体之间间接通信等特征,易于与其他优化算法相结合,它通过简单个体之间的协作表现出了求解复杂问题的能力,已被广泛应用于求解优化问题。蚁群算法相对而言易于实现,且算法中并不涉及复杂的数学操作,其处理过程对计算机的软硬件要求也不高,因此对它的研究在理论和实践中都具有重要的意义。
目前,国内外的许多研究者和研究机构都开展了对蚁群算法理论和应用的研究,蚁群算法已成为国际计算智能领域关注的热点课题。虽然目前蚁群算法没有形成严格的理论基础,但其作为一种新兴的进化算法已在智能优化等领域表现出了强大的生命力。
2 蚁群算法理论
蚁群算法是对自然界蚂蚁的寻径方式进行模拟而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下信息素进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此来指导自己的运动方向。因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
3 算法理论图解
(1)在自然界中,蚂蚁的食物源总是随机分散于蚁巢周围,在蚁群协调、分工、合作后总能找到一条通往食物源的最短路径。现实中,我们能观察到大量蚂蚁在巢穴与食物源之间形成近乎直线的路径,而不是曲线、圆等其他形状,如图(a)。
(2)蚂蚁群体不仅能完成复杂的任务,并且还能适应环境的变化,如在蚁群运动路线上突然出现障碍物时,一开始各只蚂蚁分布是均匀的,不管路径长短,蚂蚁总是先按同等概率选择各条路径,如图(b)。
(3)蚂蚁在运动过程中,能在其经过的路径上留下信息素,并且能感知到这种物质的存在及其强度,并以此指导自己运动的方向,蚂蚁倾向于信息素浓度高的方向移动。在相同时间内较短路径上的信息素量就遗留得较多,则选择较短路径得蚂蚁也随即增多,如图(c)。
(4)不难看出,由于大量蚂蚁组成得蚁群集体行为表现出的一种信息正反馈现象,在某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大,蚂蚁个体质检就是通过这种信息交流机制来搜索食物,并最终沿着最短路径行进,如图(d)。
4 人工蚁群优化过程
基于以上真实蚁群寻找食物时的最优路径选择问题,可以构造人工蚁群,来解决最优化问题,如TSP问题。人工蚁群中把具有简单功能的工作单元看作蚂蚁。二者的相似之处在于都是优先选择信息素浓度大的路径。较短路径的信息素浓度高,所以能够最终被所有蚂蚁选择,也就是最终的优化结果。两者的区别在于人工蚁群有一定的记忆能力,能够记忆已经访问过的节点。同时,人工蚁群再选择下一条路径的时候是按一定算法规律有意识地寻找最短路径,而不是盲目的。例如在TSP问题中,可以预先知道当前城市到下一个目的地的距离。
在TSP问题的人工蚁群算法中,假设m只蚂蚁在图的相邻节点间移动,从而协作异步地得到问题的解。每只蚂蚁的一步转移概率由图中的每条边上的两类参数决定:一是信息素值,也称信息素痕迹;二是可见度,即先验值。
信息素的更新方式有两种:一是挥发,也就是所有路径上的信息素以一定的比率减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好”(有蚂蚁走过)的边增加信息素。
蚂蚁向下一个目标的运动是通过一个随机原则来实现的,也就是运用当前所在节点存储的信息,计算出下一步可达节点的概率,并按此概率实现一步移动,如此往复,越来越接近最优解。
蚂蚁在寻找过程中,或在找到一个解后,会评估该解或解的一部分的优化程度,并把评价信息保存在相关连接的信息素中。
这种算法有别于传统编程模式,其优势在于,避免了冗长的编程和筹划,程序本身是基于一定规则的随机运行来寻找最佳配置。也就是说,当