1、 蚁群算法原理简述一、蚁群算法的背景信息根据蚂蚁“寻找食物”的群体行为,意大利著名学者等于 1991 年在法国巴黎召开的第一届欧洲人工生命,DorigManiezoVClrniA会议上最早提出了蚁群算法的基本模型。1992 年,Dorigo M 又在其博士学位论文中进一步阐明了蚁群算法的核心思想。蚁群算法是一种基于种群的启发式仿生进化系统。蚁群算法最早成功应用于解决著名的旅行商问题 ,该算法采用了分布式正反馈并行计算机制,易于与其他方法结合,()TSP而且具有较强的鲁棒性。蚁群算法创立十多年来,无论在算法理论还是在算法应用方面都取得了很多突破性研究进展。它已经从单纯地解决对称 拓展到解决非对称
2、 、指派问题 以及车TSPTSP()QAP间作业调度问题 等。尤其是近几年来,这种新兴的仿生优化算法已经显示出强大的()JSP生命力和广阔的发展前景。二、蚁群算法的原理自然界中的蚂蚁是没有视觉的,既不知道向何处寻找食物,也不知道发现食物后如何返回自己的巢穴,它仅仅依赖于同类散发在周围环境中的特殊物质信息素的轨迹,来决定自己何去何从。但是尽管没有任何先验的知识,但蚂蚁们还是有能力找到从其巢穴到食物源的最佳路径。所以大量研究发现,同一蚁群中的蚂蚁能感知信息素及其强度,后来的蚂蚁会倾向于朝信息素浓度高的方向移动,而移动留下的信息素又会对原有信息素进行加强,后续的蚂蚁而后续的蚂蚁选择该路径的可能性也越
3、大。由于在相同时间段内越短的路径会被越多的蚂蚁访问,所以后续的蚂蚁选择较短路径的可能性也越大,最后所有的蚂蚁都走最短的那条路径。应该指出,以蚁群为基础的方法能够有效地寻找较短的路径,但不一定是最短的路径。不过,对于那些难于获得最优解的问题,如那些 NP 难题,这种近于最优的解法常常已经是绰绰有余了。事实上,随着城市数目的增多,寻找精确解很快就会变成一个无法对付的问题。三、蚁群算法的模型下面以求解平面上 个城市的 为例来简要地介绍一下用于 的基本蚁群算法。nTSPTSP蚁群算法模型 个城市的 即为寻找通过 个城市各一次且最后回到出发点的最短路径。n假设有 个城市, 只蚂蚁,令 表示城市 之间距离
4、, 表nm(,12,)ijd ,ij()ijt示在 时刻城市 之间路径上残留信息素强度。蚂蚁 在行进的过程中,根据各条路径上t,ij k残留信息素强度来决定下一步行进的路径,用 表示在 时刻蚂蚁 由城市 转移到城()ijpttki市 的概率,则有:j()(),()() -10,kijikkkssijsJittjJipt( 式 )否 则表示蚂蚁 下一步允许的城市集,列表 为蚂蚁()12)k kintabu kktabu的禁忌表。当所有 个城市都被列入到 中时,蚂蚁 游历了所有城市,现回到出kt发点便完成了一次遍历,则蚂蚁 所经过的路径就是该 的一个可行解。 是启发式因kTSPij子,表示蚂蚁 从
5、城市 行进到城市 的期望程度,通常取 的倒数; 分别表示信息kij ijd,素和启发式因子在方程中相对重要程序;当所有蚂蚁完成一次遍历之后,各路径上的信息素再根据式 2 进行全局更新:1()()(2)=3ij ijijmkijijtt式式其中, 表示挥发系数, 表示持久性系数, 表示本次迭代后信息0( ) 1-ij素的增量, 表示第 只蚂蚁在本次迭代中残留在边上的信息素量。根据信息素不同的kij更新策略, 提出了三种不同的蚁群算法模型,即 模型、DorgMAnt-Cycle模型及 模型。它们的主要区别在于 模型及Ant-QuaityAnt-esiyQuati模型中利用的是局部信息,即蚂蚁完成一
6、步后更新路径上的信息素;而在es模型中利用的是整体信息,即蚂蚁完成一次遍历后更新整条路径上的所有信息t-Ccl素。由于 模型中信息增量 考虑了全局变化,所以在求解 时具有较好性AntylekijTSP能,通常作为蚁群算法的基本模型。四、算法的具体实现(1) 参数初始化。令时间 ,设置 为常数,t=0,NCmax,(),ijtconst。(0)ij(2) 循环次数 .1(3) 蚂蚁的禁忌表索引号 。k(4) 蚂蚁的数目 。(5) 蚂蚁个体根据状态转移概率式 1 所计算的概率选择元素 并前进,j。jCtabuk(6) 修改禁忌表指针,即选择好之后将蚂蚁移动到新的元素,并把该元素移动到蚂蚁个体的禁忌
7、表中。 (7) 若集合 C 中元素未遍历完, km,则跳转到第 4 步, 否则执行第 8 步。(8) 根据式 2 和式 3 更新每条路径上信息量。(9) 若满足结束条件,则循环结束并输出程序计算结果,否则清空禁忌表并跳转到第 2 步。五、改进的蚁群算法通过实验,我们发现标准蚁群算法在求解过程中存在容易陷入局部最优解的问题。为此,本文提出一种改进的自适应蚁群算法对此进行改进。5.1 信息素的更新采用自适应伪随机比率来选择下一座城市,即对于位于城市 的蚂蚁,按式 4 选i择下一座城市 :j 0argmx(,),-4,ijijqjs如 果 ( 式 )否 则其中 为 上一致分布的随机数,它越小,系统随
8、机选择下一个城市的概率q01,就越大,一般取 表示城市 与城市 之间的信息素量; 表示城.9;(,)ijij(,)ij市 与城市 之间的启发式因子, 表示启发式因子的相对重要程度, 由式 1 确定。ijs全局信息素更新: 1(1)(),=5mkij ijijijijtt( 式 )改变为:当 1+max()()blij ijijt t( m)时 , - (6)1lij ijijblijestL( )时 , 式其 中 ,为当前全局最优解的长度, 为信息素的挥发系数,bestL01( , )是一个也迭代次数 成正比的函数, 为常数。即完成信息激素更新后,mc( ) =mc将每条边上的信息素浓度限制在
9、 之间,避免某些边上的信息素过大,inax,jj减小图上各边的信息素的差距,从而扩大解的搜索空间。六、结束语蚁群算法是近年来产生的一种源于大自然生物世界的新的启发式优化方法。通过以上对蚁群算法的基本原理及其实际应用的介绍可以发现该算法有如下主要特点:a.正反馈机制:经过蚂蚁越多的路径,后续蚂蚁选择该路径的可能性就越大,通过信息素的不断更新最终收敛于最优路径上。b.较强的通用性:算法模型只需做很少修改就可运用于别的组合优化问题。c.分布式并行计算能力:算法在全局的多点同时进行解的搜索 ,具有本质上的并行性,易于并行实现。当然蚁群算法也有不足之处,几乎每个实用的启发式搜索算法都是由某个参数集控制的,蚁群优化算法也不例外,事先无法找到参数的一个最优选择,使得它对于任何问题都能达到最优性能,一般只能分析了具体问题后,在实验过程中凭借经验不断调整参数,以期得到最优解。其次,同其他启发式算法相比较,蚁群算法在计算效率方而有待进一步提高。