欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是: 首页

蚁群算法

科普小知识 2023-11-14 23:53:22
...

蚁群算法(AntColonyOptimization,ACO),又称蚂蚁算法,是一种用来寻找最优解决方案的机率型技术。蚁群算法首先成功应用与求解TSP问题,引起了许多学者的关注,成为研究热点之一,并不断提出新的改进算法,使蚁群算法得到了广泛的应用。算法的改进主要是从局部搜索策略、蚂蚁内部状态、信息素更新策略及选择策略四个方面进行,都取得了较好的效果。蚁群算法最初被应用到经典的组合优化问题,随着研究的深入,应用范围扩大到更多的组合优化问题,如在作业调度、网络路由、电力系统、生命科学、空战决策、聚类分析等领域都得到了广泛的应用。

1、蚁群算法基本原理

蚁群算法(AntColonyOptimization,ACO),又称蚂蚁算法,是一种用来寻找最优解决方案的机率型技术。它由MarcoDorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。

蚂蚁在路径上前进时会根据前边走过的蚂蚁所留下的分泌物选择其要走的路径。其选择一条路径的概率与该路径上分泌物的强度成正比。因此,由大量蚂蚁组成的群体的集体行为实际上构成一种学习信息的正反馈现象:某一条路径走过的蚂蚁越多,后面的蚂蚁选择该路径的可能性就越大。蚂蚁的个体间通过这种信息的交流寻求通向食物的最短路径。


蚁群算法原理示意图

蚁群算法就是根据这一特点,通过模仿蚂蚁的行为,从而实现寻优。这种算法有别于传统编程模式,其优势在于,避免了冗长的编程和筹划,程序本身是基于一定规则的随机运行来寻找最佳配置。也就是说,当程序最开始找到目标的时候,路径几乎不可能是最优的,甚至可能是包含了无数错误的选择而极度冗长的。但是,程序可以通过蚂蚁寻找食物的时候的信息素原理,不断地去修正原来的路线,使整个路线越来越短,也就是说,程序执行的时间越长,所获得的路径就越可能接近最优路径。这看起来很类似与我们所见的由无数例子进行归纳概括形成最佳路径的过程。实际上好似是程序的一个自我学习的过程。

这种优化过程的本质在于:

选择机制:信息素越多的路径,被选择的概率越大。更新机制:路径上面的信息素会随蚂蚁的经过而增长,而且同时也随时间的推移逐渐挥发消失。

协调机制:蚂蚁间实际上是通过分泌物来互相通信、协同工作的。蚁群算法正是充分利用了选择、更新和协调的优化机制,即通过个体之间的信息交流与相互协作最终找到最优解,使它具有很强的发现较优解的能力。基于以上机制编写的程序的核心代码可能不过上百行,却完成了类似于学习的过程。原因就是所谓的自组织理论,简单规则的涌现。事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,但是,当集群里有无数蚂蚁的时候,复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的规律!

那么,这些简单规则是什么呢?下面详细说明:

1、范围:蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。

2、环境:蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。

3、觅食规则:在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。

4、移动规则:每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。

5、避障规则:如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。

6、播撒信息素规则:每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。

2、蚁群算法的研究


蚁群算法用于TSP问题求解

20世纪90年代初,蚁群算法首先成功应用与求解TSP问题,引起了许多学者的关注,成为研究热点之一,并不断提出新的改进算法,使蚁群算法得到了广泛的应用。算法的改进主要是从局部搜索策略、蚂蚁内部状态、信息素更新策略及选择策略四个方面进行,都取得了较好的效果。如自适应蚁群算法、基于信息素扩散的蚁群算法、多态蚁群算法、基于信息熵的改进蚁群算法、基于网格划分策略的连续域蚁群算法、基于交叉变异操作的连续域蚁群算法等。

蚁群算法还能与其他优化算法相融合,从而相互取长补短,改善算法的性能。目前这方面的研究有蚁群算法与遗传算法、人工神经网络、粒子群算法及人工免疫算法等算法之间的融合。这些融合了的算法在解决某些特定问题时,表现出了比较优异的性能,因此,设计新的融合策略结合其他优化算法进一步改善蚁群算法的性能是非常有意义的研究方向。

蚁群算法的参数设置对算法的性能也有重要的影响。Solno提出了在蚁群算法运行前加入一个预处理阶段,这个阶段先不使用信息素找到一定数量的路径,再从中选择部分路径在算法开始前初始化信息素,获得了较好的效果。然而对这方面的研究相对较少,因此参数的设置原则也值得深入的研究。

3、蚁群算法的应用


蚁群算法用于客运乘务

蚁群算法最初被应用到经典的组合优化问题,随着研究的深入,应用范围扩大到更多的组合优化问题,如在作业调度、网络路由、电力系统、生命科学、空战决策、聚类分析等领域都得到了广泛的应用,体现了蚁群算法的实用性和通用性。以下是几个蚁群算法应用的例子。

网络路由问题

将蚁群算法应用于解决受限路由问题,目前可以解决包括带宽、延时、丢包率和最小花费等约束条件在内的QoS组播路由问题,比现有的链路状态路由算法有明显的优越性。王卫亚等人将蚁群算法和遗传算法相结合的融合算法用于对带宽、时延和差率等多项QoS参数有要求的最优路由选择,在优化性能和时间性能上都取得了很好的效果。李俊等人提出了一种基于改进蚁群算法的分布式动态RWA方法,用于解决波分复用光网络中动态选路和波长分配问题,与现有最短路径相比,该算法有效降低了光路阻塞率,促进波长资源的合理分配,也降低了大型网络的通信开销。

电力系统领域

电力系统的许多优化问题本质上是属于组合优化问题。Gomez等人将蚁群算法应用于配电网络的规划。王林川等人将一种改进蚁群算法应用于配电网故障的定位。王海燕等人将蚁群算法应用于电力系统暂态稳定评估特征选择,减少了特征维数,提高了分类正确率。电力系统的这些组合优化问题的有效解决将为电力企业节省大量的资金,因此在电力系统的应用具有很大的实际价值。

航迹规划领域

是指在特定的约束条件下,寻找运动体从初始点到目标点满足某种性能指标最优的运动轨迹。在空防技术日益先进、防空体系日益完善的现代战争中,航迹规划是提高飞行器作战效能、实施远程精确打击的有效手段。因此对航迹规划方法的研究将有重要的现实意义。田伟等人提出了一种改进蚁群算法用于无人作战飞机的航路寻优过程,提高了无人作战飞机的航路寻优能力。孟祥恒等人将蚁群算法用于多无人机航迹规划。曹晋等人提出了一种基于蚁群算法的最小代价航迹规划方法,解决了航迹维数解算问题,为飞行器提供最优航迹规划路径。

4、存在的问题及解决方法的进展

蚁群算法以其分布式并发性、正反馈、鲁棒性强、收敛速度快、易获得全局最优解等特点,成为目前国内启发式算法研究的热点,但是蚁群算法也存在如下缺点:容易出现停滞现象(stagnationbehaviour),算法运算时间过长。针对这些缺陷,近年来众多国内外的学者在蚁群的改进方面做了大量的研究工作,其目的是在合理时间复杂度的限制条件下,尽可能提高蚁群算法在一定的空间复杂度下的寻优能力,从而改善蚁群算法的全局收敛性,扩宽蚁群M.Dorigo等人提出一种修正的蚁群算法为Ant-QSystem,该算法和基本蚁群算法有如下不同:

(1)状态转移规则不同:仅让信息量最大的路径以较大的概率选中。

(2)全局更新规则不同:仅对一次循环中的最优的蚂蚁使用。

(3)增加更新规则:在所有蚂蚁完成一次转移后执行。

德国学者Thomastuzle和Holerhoos提出了一种改进的算法即最大最小系统(MAX-MINantsystem,MMAS)。为了防止算法过早的停滞,MMAS限定了信息量允许的上下限,并且采用了平滑机制对蚂蚁系统的解进行了改进。1999年,M.Dorigo把先前的各种蚁群算法归结为ACO元启发式算法(antcolonyoptimizationmetar-heuristic)的概念,把各种基于蚁群系统的算法归结到一个统一的框架中。作为一种新型的启发式算法,ACO元启发式算法近年来受到广泛的关注。

一些学者把蚁群算法和其它的一些仿生优化算法进行融合,并且取得了较好的应用效果。AbbattistaF等人最早提出将遗传算法(GA)和蚁群算法相融合的策略,并且在Oliver30TSP和Eilon50TSP的仿真实验中得到了较好的结果。候云鹤等人将微粒群(PSO)引入蚁群算法(GACA)的局部搜索中,采用GACA进行全局搜索,确定最优解存在的领域。LeeZJ提出一种新的融合算法即免疫-蚁群算法,并将其成功应用在求解WTAP。蒋加伏等提出了一种基于免疫-蚁群算法的多约束QoS路由选择算法,也取得了很好的应用效果。