蚁群算法简述及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蚁群算法简述及实现
1 蚁群算法的原理分析
蚁群算法是受自然界中真实蚁群算法的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法,所以它更恰当的名字应该叫“人工蚁群算法”,我们一般简称为蚁群算法。M.Dorigo等人充分的利用了蚁群搜索食物的过程与著名的TSP问题的相似性,通过人工模拟蚁群搜索食物的行为来求解TSP问题。
蚂蚁这种社会性动物,虽然个体行为及其简单,但是由这些简单个体所组成的群体却表现出及其复杂的行为特征。这是因为蚂蚁在寻找食物时,能在其经过的路径上释放一种叫做信息素的物质,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。蚁群的集体行为表现为一种正反馈现象,蚁群这种选择路径的行为过程称之为自催化行为。由于其原理是一种正反馈机制,因此也可以把蚁群的行为理解成所谓的增强型学习系统(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,其行走速度都为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的信息素路径,这是由15只走向BC的路径的蚂蚁所留下的气息与15只从D经C到达B留下的气息之和(图1 (c))。这时,选择路径的概率就有了偏差,向C走的蚂蚁数将是向H走的蚂蚁数的2倍。对于从E到D来的蚂蚁也是如此。
(a)(b)(c)
图1 蚁群路径搜索实例
这个过程一直会持续到所有的蚂蚁最终都选择了最短的路径为止。
这样,我们就可以理解蚁群算法的基本思想:如果在给定点,一只蚂蚁要在不同的路径中选择,那么,那些被先行蚂蚁大量选择的路径(也就是信息素留存较浓的路径)被选中的概率就更大,较多的信息素意味着较短的路径,也就意味着较好的问题回答。
2人工蚁群算法描述
蚁群算法可以看作为一种基于解空间参数化概率分布模型(Parameterized Probabilistic Model)的搜索算法框架(Model-based search algorithms)。在蚁群算法中,解空间参数化概率,模型的参数就是信息素,因而这种参数化概率分布模型就是信息素模型。在基于模型的搜索算法框架中,可行解通过在一个解空间参数化概率分布模型上的搜索产生,此模型的参数用以前产生的解来更新,使得在新模型上的搜索能够集中在高质量的解搜索空间内。这种方法的有效性建立在高质量的解总是包含好的解构成元素的假设前提下。通过学习这种解构成元素对解的质量的影响有助于找到一种机制,并通过解构成元素的最佳组合来构造出高质量的解。一般来说,一个记忆模型的搜索算法通常使用以下两步迭代来解决优化问题:
1)可行解通过在解空间参数化概率分布模型上的搜索产生。
2)用搜索产生的解来更新参数化概率模型,即更新解空间参数化概率分布的参数,使得在新模型上的参数搜索能够集中在高质量的解搜索空间内。
在蚁群算法中,基于信息素的解空间参数化概率模型(信息素模型)以解构造图的形式给出。在解构造图上,定义了一种作为随机搜索机制的人工蚁群,蚂蚁通过一种分布在解构造图上被称为信息素的局部信息的指引,在解构造图上移动,从而逐步的构造出问题的可行。信息素与解构造图上的节点或弧相关联,作为解空间参数化概率分布模型的参数。
由于TSP问题可以直接的映射为解构造图(城市为节点,城市间的路径为弧,信息素分布在弧上),加之TSP问题也是个NP难题,所以,蚁群算法的大部分应用都集中在TSP问题上。一般而言,用于求解TSP问题、生产调度问题等优化问题的蚁群算法都遵循下面的统一算法框架。
算法1:求解组合优化问题的蚁群算法
设置参数,初始化信息素踪迹
While(不满足条件时)do
for蚁群中的每只蚂蚁
for每个解构造步(直到构造出完整的可行解)
1)蚂蚁按照信息素及启发式信息的指引构造一步问题的解;
2)进行信息素局部更新。(可选)
endfor
endfor
1)以某些已获得的解为起点进行邻域(局部)搜索;(可选)
2)根据某些已获得的解的质量进行全局信息素更新。
endwhile
end
在算法1中,蚂蚁逐步的构造问题的可行解,在一步解的构造过程中,蚂蚁以概率方式选择信息素强且启发式因子高的弧到达下一个节点,直到不能继续移动为止。此时蚂蚁所走过的路径对应求解问题的一个可行解。局部信息素更新针对蚂蚁当前走过的一步路径上的信息素进行,全局信息素更新是在所有蚂蚁找到可行解之后,根据发现解的质量或当前算法找到的最好解对路径上的信息素进行更新。
3 蚁群算法与其他搜索算法比较
3.1 蚁群算法与进化算法比较
近年来,遗传算法(GA)、进化规划(Evolutionary Planning)、进化策略(Evolutionary Strategies)在理论和应用上发展迅速、效果显著并逐渐走向了融合,形成了一种新颖的模拟进
化的计算理论,统称为进化计算(Evolutionary Computation)。因此我们可以用进化计算作为代表与蚁群算法进行比较,从另一个角度来认识蚁群算法,加深对蚁群算法的理解。
蚁群算法与进化计算的相似之处有两点:首先,两种算法均采用群体表示问题的解;其次,新群体通过包含在群体中与问题相关的知识来生成。两者的主要区别在于进化计算中所有问题的的知识都包含在当前群体中,而蚁群算法中代表过去所学的知识保存在信息素的踪迹中。
3.2 蚁群算法与模拟退火算法比较
从模拟退火算法的搜索策略可以看出蚁群算法和模拟退火算法(SA)从本质上来讲是一致的。
SA对某个“固体的”一个微观状态i计算其能量E i的过程与蚂蚁的一次“周游”一样,都是对解空间的一次采样;“退火”与“分泌信息素”都是利用积累信息来增强对子空间的搜索;而“Metropolis准则”和“随机状态转移规则”类似,都是使算法能够跳出局部最优,在一定范围内接受恶化解,搜索新的子空间。
因此,SA已经非常成熟的收敛性研究对分析设置蚂蚁规模参数和信息素分布策略对最终解质量的影响有很大的借鉴意义。对于SA的收敛性分析一般分两种情况,齐次Markov链和非齐次Markov链。齐次Markov链的分析结果告诉我们,在任意温度t,SA都达到平衡分布的情况下,当t→0时,SA将收敛于全局最优。也就是说,在任意温度t,SA都要遍历整个解空间。那么,如果我们保留sA采样后的当前全局最优解,则即使在任何温度t,SA都会收敛于全局最优。换句话说,对于蚁群算法,如果蚂蚁数量(规模)足够多,能够保证对解空间的遍历,那么即使不用信息素,也能保证全局收敛。不过这种方法显然就是一种盲目随机搜索,没有任何实际的应用价值。
对于非其次Markov链的SA,即在某个固定温度t,采样次数有限,而t将无限趋近于0的情况下,结论告诉我们当控制参数序列满足一定条件时,SA才收敛于整体最优解集。其更直接的表述方式是:控制参数t的衰减量与在温度t下的采样数之间存在一种均衡:t的衰减量越大,则在温度艺下的采样数就必须越多;反之,若t的衰减量缓慢,则在每个温度下SA只需进行少量采样。
那么。从蚁群算法的角度可以看到:因为蚂蚁的规模实际上影响的只是信息素更新的频率,所以当规模设置较大时,每次更新信息素时,可以以较快的速度拉大不同状态上的信息素差距;当规模较小时,每次只对信息素进行少量更新,以免算法早熟。
由此可见,对蚁群算法的参数设置可以直接利用SA中对“冷却进度表”的研究成果。
此外,既然两者在本质上一致,那么SA的一些改进和变异可以直接用在蚁群算法上以改进其性能。
3.3 蚁群算法与神经网络比较
由许多并发、局部交互的单元(人工蚂蚁)组成的蚁群,可以看成是一种“连接”系统。“连接”系统最具代表性的例子是神经网络(Neural Network,简称NN)。从结构上看,蚁群算法与通常的神经网络具有类似的并行机制。蚂蚁访问过的每一个状态i对应于神经网络中的神经元i,与问题相关的状态i的邻域结构与神经元i中的突触连接相对应。蚂蚁本身可以看成是通过神经网络的并发输入信号,以修改突触与神经元之间的连接强度。信号经过随机转换函数的局部反传,使用的突触越多,两个神经元之间的连接越强。蚁群算法中的学习规则可以解释为一种后天性的规则,即质量较好的解包含连接信号的强度高于质量较差的解。
4 基本蚁群算法及其实现
4.1 引言
蚁群在觅食过程中总能找到蚁巢和食物源之间的最短路径。受蚂蚁的这种行为启发,意