收藏 分享(赏)

蚁群算法简述及实现.doc

上传人:weiwoduzun 文档编号:2627603 上传时间:2018-09-23 格式:DOC 页数:6 大小:71.76KB
下载 相关 举报
蚁群算法简述及实现.doc_第1页
第1页 / 共6页
蚁群算法简述及实现.doc_第2页
第2页 / 共6页
蚁群算法简述及实现.doc_第3页
第3页 / 共6页
蚁群算法简述及实现.doc_第4页
第4页 / 共6页
蚁群算法简述及实现.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、蚁群算法简述及实现1 蚁群算法的原理分析蚁群算法是受自然界中真实蚁群算法的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法,所以它更恰当的名字应该叫“人工蚁群算法”,我们一般简称为蚁群算法。M.Dorigo 等人充分的利用了蚁群搜索食物的过程与著名的 TSP 问题的相似性,通过人工模拟蚁群搜索食物的行为来求解 TSP 问题。蚂蚁这种社会性动物,虽然个体行为及其简单,但是由这些简单个体所组成的群体却表现出及其复杂的行为特征。这是因为蚂蚁在寻找食物时,能在其经过的路径上释放一种叫做信息素的物质,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动

2、。蚁群的集体行为表现为一种正反馈现象,蚁群这种选择路径的行为过程称之为自催化行为。由于其原理是一种正反馈机制,因此也可以把蚁群的行为理解成所谓的增强型学习系统(Reinforcement Learning System) 。引用 M.Dorigo 所举的例子来说明蚁群发现最短路径的原理和机制,见图 1 所示。假设D 和 H 之间、B 和 H 之间以及 B 和 D 之间( 通过 C)的距离为 1,C 位于 D 和 B 的中央( 见图1 (a)。现在我们考虑在等间隔等离散世界时间点(t=0,1,2)的蚁群系统情况。假设每单位时间有 30 只蚂蚁从 A 到 B,另三十只蚂蚁从 E 到 D,其行走速度

3、都为 1(一个单位时间所走距离为 1),在行走时,一只蚂蚁可在时刻 t 留下浓度为 1 的信息素。为简单起见,设信息素在时间区间(t+1 , t+2)的中点(t+1.5)时刻瞬时完全挥发。在 t=0 时刻无任何信息素,但分别有30 只蚂蚁在 B、30 只蚂蚁在 D 等待出发。它们选择走哪一条路径是完全随机的,因此在两个节点上蚁群可各自一分为二,走两个方向。但在 t=1 时刻 ,从 A 到 B 的 30 只蚂蚁在通向H 的路径上(见图 1 (b)发现一条浓度为 15 的信息素,这是由 15 只从 B 走向 H 的先行蚂蚁留下来的;而在通向 C 的路径上它们可以发现一条浓度为 30 的信息素路径,

4、这是由 15 只走向BC 的路径的蚂蚁所留下的气息与 15 只从 D 经 C 到达 B 留下的气息之和( 图 1 (c)。这时,选择路径的概率就有了偏差,向 C 走的蚂蚁数将是向 H 走的蚂蚁数的 2 倍。对于从 E 到 D来的蚂蚁也是如此。(a) (b) (c)图 1 蚁群路径搜索实例这个过程一直会持续到所有的蚂蚁最终都选择了最短的路径为止。这样,我们就可以理解蚁群算法的基本思想:如果在给定点,一只蚂蚁要在不同的路径中选择,那么,那些被先行蚂蚁大量选择的路径(也就是信息素留存较浓的路径) 被选中的概率就更大,较多的信息素意味着较短的路径,也就意味着较好的问题回答。2 人工蚁群算法描述蚁群算法

5、可以看作为一种基于解空间参数化概率分布模型(Parameterized Probabilistic Model)的搜索算法框架 (Model-based search algorithms)。在蚁群算法中,解空间参数化概率,模型的参数就是信息素,因而这种参数化概率分布模型就是信息素模型。在基于模型的搜索算法框架中,可行解通过在一个解空间参数化概率分布模型上的搜索产生,此模型的参数用以前产生的解来更新,使得在新模型上的搜索能够集中在高质量的解搜索空间内。这种方法的有效性建立在高质量的解总是包含好的解构成元素的假设前提下。通过学习这种解构成元素对解的质量的影响有助于找到一种机制,并通过解构成元素的

6、最佳组合来构造出高质量的解。一般来说,一个记忆模型的搜索算法通常使用以下两步迭代来解决优化问题:1)可行解通过在解空间参数化概率分布模型上的搜索产生。2)用搜索产生的解来更新参数化概率模型,即更新解空间参数化概率分布的参数,使得在新模型上的参数搜索能够集中在高质量的解搜索空间内。在蚁群算法中,基于信息素的解空间参数化概率模型(信息素模型) 以解构造图的形式给出。在解构造图上,定义了一种作为随机搜索机制的人工蚁群,蚂蚁通过一种分布在解构造图上被称为信息素的局部信息的指引,在解构造图上移动,从而逐步的构造出问题的可行。信息素与解构造图上的节点或弧相关联,作为解空间参数化概率分布模型的参数。由于 T

7、SP 问题可以直接的映射为解构造图(城市为节点,城市间的路径为弧,信息素分布在弧上), 加之 TSP 问题也是个 NP 难题,所以,蚁群算法的大部分应用都集中在 TSP 问题上。一般而言,用于求解 TSP 问题、生产调度问题等优化问题的蚁群算法都遵循下面的统一算法框架。算法 1:求解组合优化问题的蚁群算法设置参数,初始化信息素踪迹While(不满足条件时)dofor 蚁群中的每只蚂蚁for 每个解构造步(直到构造出完整的可行解 )1)蚂蚁按照信息素及启发式信息的指引构造一步问题的解;2)进行信息素局部更新。(可选)endforendfor1)以某些已获得的解为起点进行邻域( 局部)搜索;(可选

8、)2)根据某些已获得的解的质量进行全局信息素更新。endwhileend在算法 1 中,蚂蚁逐步的构造问题的可行解,在一步解的构造过程中,蚂蚁以概率方式选择信息素强且启发式因子高的弧到达下一个节点,直到不能继续移动为止。此时蚂蚁所走过的路径对应求解问题的一个可行解。局部信息素更新针对蚂蚁当前走过的一步路径上的信息素进行,全局信息素更新是在所有蚂蚁找到可行解之后,根据发现解的质量或当前算法找到的最好解对路径上的信息素进行更新。3 蚁群算法与其他搜索算法比较3.1 蚁群算法与进化算法比较近年来,遗传算法(GA)、进化规划(Evolutionary Planning)、进化策略(Evolutiona

9、ry Strategies)在理论和应用上发展迅速、效果显著并逐渐走向了融合,形成了一种新颖的模拟进化的计算理论,统称为进化计算(Evolutionary Computation)。因此我们可以用进化计算作为代表与蚁群算法进行比较,从另一个角度来认识蚁群算法,加深对蚁群算法的理解。蚁群算法与进化计算的相似之处有两点:首先,两种算法均采用群体表示问题的解;其次,新群体通过包含在群体中与问题相关的知识来生成。两者的主要区别在于进化计算中所有问题的的知识都包含在当前群体中,而蚁群算法中代表过去所学的知识保存在信息素的踪迹中。3.2 蚁群算法与模拟退火算法比较从模拟退火算法的搜索策略可以看出蚁群算法和

10、模拟退火算法(SA) 从本质上来讲是一致的。SA 对某个“固体的” 一个微观状态 i 计算其能量 Ei 的过程与蚂蚁的一次“周游”一样,都是对解空间的一次采样;“退火” 与 “分泌信息素”都是利用积累信息来增强对子空间的搜索 ;而“Metropolis 准则 ”和“ 随机状态转移规则” 类似,都是使算法能够跳出局部最优,在一定范围内接受恶化解,搜索新的子空间。因此,SA 已经非常成熟的收敛性研究对分析设置蚂蚁规模参数和信息素分布策略对最终解质量的影响有很大的借鉴意义。对于 SA 的收敛性分析一般分两种情况,齐次 Markov链和非齐次 Markov 链。齐次 Markov 链的分析结果告诉我们

11、,在任意温度 t,SA 都达到平衡分布的情况下,当 t0 时,SA 将收敛于全局最优。也就是说 ,在任意温度 t,SA 都要遍历整个解空间。那么,如果我们保留 sA 采样后的当前全局最优解,则即使在任何温度 t,SA 都会收敛于全局最优。换句话说,对于蚁群算法,如果蚂蚁数量(规模 )足够多,能够保证对解空间的遍历,那么即使不用信息素,也能保证全局收敛。不过这种方法显然就是一种盲目随机搜索,没有任何实际的应用价值。对于非其次 Markov 链的 SA,即在某个固定温度 t,采样次数有限,而 t 将无限趋近于 0 的情况下,结论告诉我们当控制参数序列满足一定条件时,SA 才收敛于整体最优解集。其更

12、直接的表述方式是:控制参数 t 的衰减量与在温度 t 下的采样数之间存在一种均衡:t 的衰减量越大,则在温度艺下的采样数就必须越多;反之,若 t 的衰减量缓慢 ,则在每个温度下 SA 只需进行少量采样。那么。从蚁群算法的角度可以看到:因为蚂蚁的规模实际上影响的只是信息素更新的频率,所以当规模设置较大时,每次更新信息素时,可以以较快的速度拉大不同状态上的信息素差距; 当规模较小时,每次只对信息素进行少量更新 ,以免算法早熟。由此可见,对蚁群算法的参数设置可以直接利用 SA 中对“冷却进度表”的研究成果。此外,既然两者在本质上一致,那么 SA 的一些改进和变异可以直接用在蚁群算法上以改进其性能。3

13、.3 蚁群算法与神经网络比较由许多并发、局部交互的单元(人工蚂蚁) 组成的蚁群,可以看成是一种 “连接”系统。 “连接”系统最具代表性的例子是神经网络(Neural Network,简称 NN)。从结构上看,蚁群算法与通常的神经网络具有类似的并行机制。蚂蚁访问过的每一个状态 i 对应于神经网络中的神经元 i,与问题相关的状态 i 的邻域结构与神经元 i 中的突触连接相对应。蚂蚁本身可以看成是通过神经网络的并发输入信号,以修改突触与神经元之间的连接强度。信号经过随机转换函数的局部反传,使用的突触越多,两个神经元之间的连接越强。蚁群算法中的学习规则可以解释为一种后天性的规则,即质量较好的解包含连接

14、信号的强度高于质量较差的解。4 基本蚁群算法及其实现4.1 引言蚁群在觅食过程中总能找到蚁巢和食物源之间的最短路径。受蚂蚁的这种行为启发,意大利学者 M.Dorigo、V.Maniezzo 以及 A.Colorni 首先提出了一种新型的随机搜索模拟进化算法蚂蚁系统(Ant System,简称 As)。AS 算法是第一个蚁群算法的模型,被称为基本蚁群算法。AS 算法首先被用来求解 TSP 问题,并取得了巨大成功。实验结果显示 AS 算法具有很强的发现较好解的能力,但同时也存在一些缺点,如收敛速度较慢、易出现停滞现象等等。针对 AS 算法的不足之处,许多学者对其进行了深入的研究,提出了一些改进的蚁

15、群算法,如带精英策略的蚂蚁系统(Ant System With elitist strategy,简称 ASelitist、蚁群系统(Ant Colorni System,简称 ACS)、基于优化排序的蚂蚁系统(Rank-Based Version of Ant System,简称 ASrank)、最大- 最小蚂蚁系统(Max-Min Ant System,简称 MMAS)以及最优-最差蚂蚁系统(Best-Worst Ant System,简称 BWAS)等等。4.2 蚂蚁系统的模型描述为了说明蚂蚁系统的模型,首先引入 TSP 问题。一般地来说,旅行商问题(Traveling Salesman

16、 Problem,简称 TSP 问题)可以描述如下:设 C=cl,c2,cn为 n 个城市的集合,L= Lij|ci、 cjC 是 c 中元素两两连接的集合,G=(C,L)是一个图 ,已知各城市之间的距离,TSP 问题的求解目的是从 G 中找出长度最短的Hamiltonian 圈 ,即找出对 C=cl,c2,cn中 n 个城市访问且只访问一次的最短的一条封闭曲线。TSP 问题分为对称型和非对称型。在对称型 TSP 问题中,有dij=dji, ci, cjC1,2, , n,d ij 是 lij 的长度; 在非对称型 TSP 问题中,至少存在一对ci, cjC,使 dijdji。为了模拟实际蚂蚁

17、的行为,我们首先引入如下记号:m蚁群中蚂蚁的数量;bi( t) t 时刻位于城市 i 的蚂蚁数,m= ;=1()dij两城市 i 和 j 之间的距离;ij边(i,j) 的能见度,反映由城市 i 转移到城市 j 的启发程度,这个量在蚂蚁的运行中不改变;ij( t) t 时刻边 (i,j)上的信息素量; ij本次迭代中边 ij 上的信息素增量 ;( t) 在 t 时刻蚂蚁 k 从城市 i 转移到城市 j 的概率;每只蚂蚁都具有以下特性:(1)完成一次循环后,蚂蚁在其访问过的每条边上留下相应的信息素 ;(2)蚂蚁依据概率选择下一个将要访问的城市,这个概率是两城市间距离及连接两个城市的边上信息量的函数

18、;(3)为了满足问题的约束条件,在完成一次循环之前,不允许蚂蚁选择己经访问过的城市 ,该过程由蚂蚁的禁忌表来控制。设 tabuk 为蚂蚁 k 的禁忌表,则蚂蚁在经过城市 i 以后,就将城市 i 加入到自己的禁忌表 tabuk、中,表示下次不能再选择城市 i。用 tabuk(s)表示禁忌表中第 s 个元素 ,也即蚂蚁走过的第 s 个城市。于是 AS 算法可以表述如下:在算法的初始时刻 ,将 m 只蚂蚁随机的放到 n 座城市,同时,将每只蚂蚁的禁忌表的第一个元素设置为当前它所在的城市。初始时刻,各条路径上的信息素量相等,设 ij( 0) =C(C 为一较小的常数)。然后每只蚂蚁按照各条路径上的信息

19、素量和启发式信息(两城市间的距离 )独立的选择下一座城市,蚂蚁系统所用的状态转移规则称为随机比例规则。在 t 时刻,蚂蚁 k 在城市 i 选择城市 j 的转移概率 ( t) 为:(4.1)( ) = ( ) ()()(),0, 其中,allowed k =1,2,ntabuk 表示蚂蚁下一步允许选择的城市。列表 tabuk 记录了蚂蚁 k当前走过的城市。当所有 n 座城市都加入到 tabuk 中时,蚂蚁 k 便完成了一次周游,此时蚂蚁k 所走过的路径便是 TSP 问题的一个可行解。式 (4.1)中的 ij 通常取城市 i 和城市 j 之间距离的倒数。 和 分别表示信息素和启发式因子的相对重要程

20、度。当所有蚂蚁完成一次周游以后,各路径上的信息素根据下式更新。(4.2)(+)=()+(4.3)=1其中 (0 l)表示信息残留系数 ,用 1- 表示信息素的挥发系数。 关于 的计算方法 ,M.Dorigo 曾给出三种不同的实现方法,分别对应三种不同的蚂蚁系统模型 ant-cycle system、ant-density system 以及 ant- quantity system。它们的区别在于表达式 的不同。在 ant-cycle system 模型中:(4.4)=,若 蚂蚁 在本次循 环 中 经过边 0, 在 ant-density system 模型中:(4.5)=,若 蚂蚁 在本次循

21、 环 中 经过边 0, 在 ant- quantity system 模型中:(4.6)=,若 蚂蚁 在本次循 环 中 经过边 0, 上面公式中,Q 为一正常数,表示蚂蚁循环一周或者一个过程在经过的路径上所释放的信息素总量。L k 表示第 k 只蚂蚁在本次循环中所经过的路径的长度。以上三种模型的区别在于:第一种模型利用的是蚁群的整体信息,即走完一个循环以后才进行残留信息量的全局调整; 而后两种模型中蚂蚁每走一步 (即从时间 t 到 t+1)都要更新残留的信息量,而不是等到所有的蚂蚁完成对所有的城市访问以后。4.3 蚂蚁系统模型的实现从上面的蚂蚁系统模型来看,其寻找最优解的过程实际上是一个有限的

22、递推过程,因而也适合在计算机上实现。AS 算法的实现可用以下的伪代码来描述:算法 2:AS 算法1.初始化设 t=0; t 为计时器Nc=0; Nc 为迭代次数计算器ij( t) =C; ij( t) 为每条路径(i , j)设的信息素量的初值 ij=0; 信息素增量的初值设为 0ij 由某种启发式算法确定 ; 在 TSP 中 , ij =1/dijtabuk=;在初始阶段,禁忌表为空 将 m 只蚂蚁随机地置于 n 个节点上;设置 s=1;s 为禁忌表索引,将各蚂蚁的初始城市置于当前禁忌表中for k=1 to n dofor k=1 to bi( t) dotabuk( s) =i;2.重复

23、直至禁忌表满为止这一步要重复( n-1)次设置 s=s+1;for i=1 to n dofor k=1 to bi( t) do以概率 选择城市 j;( )将蚂蚁 k 移动到城市 j;将刚刚选择到的城市 j 加入到禁忌表中在 ant-cycle system 模型中:按照(4.4)式计算 在 ant- density system 模型中:按照( 4.5)式计算 在 ant- quantity system 模型中:按照(4.6)式计算 3.记录到目前为止的最短路径if NcNcmax则清空所有禁忌表;设置 s=1;for i=1 to n dofor k=1 to bi( t) dotabuk( s) =1 ;一次循环后蚂蚁又重新回到初始位置设 t=t+1对于每一条路径(i , j) ,设置 ij=0;返回步骤 2否则输出最短路径算法停止

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报