蚁群算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
社会性动物的群集活动往往能产生惊人的自组织行为,如个体行为显得盲目的蚂蚁在组成蚁群后能够发现从蚁巢到食物源的最短路径。生物学家经过仔细研究发现蚂蚁之间通过一种称之为“外激素”的物质进行间接通讯、相互协作来发现最短路径。受其启发,1991年由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于种群的模拟进化算法——蚁群优化。本文阐述了算法的基本原理及特性以及一些优化的蚁群算法,阐述了蚁群算法在数据挖掘中的应用,最后总结了蚁群算法在数据挖掘应用中尚待解决的问题。
关键词: 蚁群算法; 蚁群优化; 数据挖掘
正文文字大小:大中小 1 蚁群算法原理
自1991年由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于种群的模拟进化算法——蚁群优化。该算法的出现引起了学者们的极大关注,蚁群算法的特点:
①其原理是一种正反馈机制或称增强型学习系统; 它通过【最优路径上蚂蚁数量的增加→信息素强度增加→后来蚂蚁选择概率增大→最优路径上蚂蚁数量更大增加】达到最终收敛于最优路径上L
②它是一种通用型随机优化方法, 它吸收了蚂蚁的行为特(内在搜索机制) , 它是使用人工蚂蚁仿真(也称蚂蚁系统) 来求解问题L但人工蚂蚁决不是对实际蚂蚁的一种简单模拟, 它融进了人类的智能L人工蚂蚁有一定的记忆; 人工蚂蚁不完全是瞎的; 人工蚂蚁生活的时空是离散的L
③它是一种分布式的优化方法, 不仅适合目前的串行计算机, 而且适合未来的并行计算机L
④它是一种全局优化的方法, 不仅可用于求解单目标优化问题, 而且可用于求解多目标优化问题L
⑤它是一种启发式算法, 计算复杂性为o (Nc*n2*m) , 其中Nc 是迭代次数, m 是蚂蚁数目, n 是目的节点数目L
蚁群发现最短路径的原理和机制[1]
下面用图 1解释蚁群发现最短路径的原理和机制。
如图 1(a)所示,在蚁巢和食物源之间有两条道路 Nest-A-B-D-Food 和Nest-A-C-D-Food,其长度分别为 4 和 6。单位时间内蚂蚁可移动一个单位长度的距离。开始时所有路径上都没有外激素。
如图 1(b),在 t=0 时刻,20 只蚂蚁从蚁巢出发移动到 A。由于路径上没有外激素,它们以
相同概率选择左侧或右侧道路,因此平均有 10 只蚂蚁走左侧,另外 10 只走右侧。
如图 1(c),在 t=4 时刻,第一组先到达食物源的蚂蚁将折回。
如图 1(d),在 t=5 时刻,两组蚂蚁将在 D 点相遇。此时 BD 上的外激素数量与 CD 上的相同,因此返回的 10 只蚂蚁中有 5 只选择 BD 而另 5 只选择 CD。
如图 1(e),在 t=8 时刻,前 5 个蚂蚁将返回巢穴,而在 AC、CD 和 AB 上各有 5 个蚂蚁。
如图 1(f),在 t=9 时刻,前 5 个蚂蚁又回到 A 并且再次面对往左还是往右的选择。这时,AB 上的轨迹数是 20 而 AC 上是 15,因此将有较为多数的蚂蚁选择往右,从而增强了 AB 上外激素的量。随着该过程的继续,两条道路上外激素数量的差距将越来越大,直至绝大多数蚂蚁都选择了最短的路径。正是由于一条道路要比另一条道路短,因此,在相同的时间间隔内,短的路线会有更多的机会被选择。
根据仿生学家的研究结果,蚂蚁凭借路径寻优的能力能够找到蚁巢与食物之间的最短路径,其原理在于:蚂蚁在所经过的路径上留下一种挥发性分泌物(pheromone,以下称为信息素),信息素随着时间的推移会逐渐挥发消失.蚂蚁在觅食过程中能够感知这种物质的存在及其强度,并以此来指导自己的运动方向,倾向于朝着这种物质强度高的方向移动,即选择该路径的概率与当时这条路径上该物质的强度成正比.信息素强度越高的路径,选择它的蚂蚁就越多,则在该路径上留下的信息素的强度就更大,而强度大的信息素又吸引更多的蚂蚁,从而形成一种正反馈.通过这种正反馈,蚂蚁最终可以发现最佳路径,导致大部分的蚂蚁都会走此路径.
以求解n个城市的TSP旅行商问题为例说明ACA模型.
设蚁群中蚂蚁的数量为m,dij (i,j=1,2,…,n)表示城市i和城市j之间的距离,bi(t)表示t时刻位于城市i的蚂蚁的个数,则有表示t时刻在城市i,j连线上残留的信息量.初始时刻,各条路径上信息量相等,设τij(0)=C(C为常数).蚂蚁k(k=1,2,…,m)在运动过程中,根据各条路径上的信息量决定转移方向. 表示在t时刻蚂蚁k由城市i转移到城市j的概率.
(1)
残留信息的重要程度;β——启发信息的重要程度;tabuk——记录蚂蚁k当前所走过的城市,称为记忆列表,k=1,2,…,m,集合tabuk随着进化过程作动态调整.经过n个时刻,所有蚂蚁都完成了一次遍历.此时,计算每一只蚂蚁所走过的路径Lk,并保存最短路径Lmin=min{Lk︱k=1,2,…,m}.在蚂蚁完成一次循环以后,各路径上的信息量进行如下调整
τij(t+1)=(1-ρ)τij(t)+Δτij (2)
式中ρ∈(0,1),表示信息素τij(t)随时间的推移而衰减的程度.所以1-ρ为信息素残留因子,开始时Δτij(0)=0,
信息素增量Δτij可表示 (3)
式中Δτkij为蚂蚁k在本次循环中在城市i和j之间留下的信息量,它的计算公式根据具体问题而定.Dorigo曾给出Δτkij3种不同的模型,分别称为Ant-Cycle模型、Ant-Quantity模型、Ant-Density模型,它们的区别就在于信息素的更新机制,即其差别在于Δτkij
在Ant-Cycle模型中:
(4)
式中,Q表示信息素强度,它在一定程度上影响算法的收敛速度;Lk表示第K只蚂蚁在本次循环中所奏路径的总长度。
在Ant-Quantity模型中:
(5)
式中,Q表示信息素强度,它在一定程度上影响算法的收敛速度;dij表示第K只蚂蚁在t 和t+1之间经过的( i, j )
在Ant-Density模型中:
(6)
区别:式(5)式(6)中利用的是局部信息,即蚂蚁完成一步后更新路径上的信息素;而式(4)中利用的是整体信息,即蚂蚁完成一个循环后所有路径上的信息素。经过大量试验总结研究,采用式(4)性能较好,所以 Ant-Cycle模型是最优的。
以上说明了信息素残留因子1-ρ、信息启发式因子α、期望启发式因子β、信息素强度Q、蚂蚁数目M等都是非常重要的参数,其选区方式和选区原则直接影响到蚁群算法的全局收敛性和求解效率。我们学习到这种“三步走”[2]选择蚁群算法最优组合参数的有效方法:
(1)确定蚂蚁数目M,根据城市规模 / 蚂蚁数目≈1.5的选择策略来确定蚂蚁的总数目。
(2)参数粗调,即调整数值范围较大的信息启发式因子α、期望启发式因子β、信息素强度Q等参数,已得到较理想的解。
(3)参数微调,即调整数值范围较小的信息素残留因子1-ρ。
2 目前蚁群算法的应用
虽然对蚁群算法的研究时间不长, 但是初步研究已显示出它在求解复杂优化问题方面具有很