蚁群算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蚁群算法
目录
1 蚁群算法基本思想 (1)
1.1蚁群算法简介 (1)
1.2蚁群行为分析 (1)
1.3蚁群算法解决优化问题的基本思想 (2)
1.4蚁群算法的特点 (2)
2 蚁群算法解决TSP问题 (3)
2.1关于TSP (3)
2.2蚁群算法解决TSP问题基本原理 (3)
2.3蚁群算法解决TSP问题基本步骤 (5)
3 案例 (6)
3.1问题描述 (6)
3.2解题思路及步骤 (6)
3.3MATLB程序实现 (7)
3.1.1 清空环境 (7)
3.2.2 导入数据 (7)
3.3.3 计算城市间相互距离 (7)
3.3.4 初始化参数 (7)
3.3.5 迭代寻找最佳路径 (7)
3.3.6 结果显示 (7)
3.3.7 绘图 (7)
1 蚁群算法基本思想
1.1 蚁群算法简介
蚁群算法(ant colony algrothrim ,ACA )是由意大利学者多里戈(Dorigo M )、马聂佐( Maniezzo V )等人于20世纪90初从生物进化的机制中受到启发,通过模拟自然界蚂蚁搜索路径的行为,提出来的一种新型的模拟进化算法。该算法用蚁群在搜索食物源的过程中所体现出来的寻优能力来解决一些系统优化中的困难问题,其算法的基本思想是模仿蚂蚁依赖信息素,通过蚂蚁间正反馈的方法来引导每个蚂蚁的行动。
蚁群算法能够被用于解决大多数优化问题或者能够转化为优化求解的问题,现在其应用领域已扩展到多目标优化、数据分类、数据聚类、模式识别、电信QoS 管理、生物系统建模、流程规划、信号处理、机器人控制、决策支持以及仿真和系统辩识等方面。
蚁群算法是群智能理论研究领域的一种主要算法。
1.2 蚁群行为分析
E
A
B
C
D
F d=3
d=2 m=20 t=0
A
B C D
d=3
d=2 m=10 m=10
t=1
1.3 蚁群算法解决优化问题的基本思想
用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息量较多,随着时间的推进,较短路径上积累的信息浓度逐渐增高,选择该路径的蚂蚁个数愈来愈多。最后,整个蚂蚁会在正反馈的作用下集中到最佳路径上,此时对应的便的待优化问题的最优解。
1.4 蚁群算法的特点
(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解;
(2)每个个体可能通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的
E A B
C D
F
d=3
d=2 m=10
t=7
m=10
E
A
B C
D
F d=3
d=2 m=10
t=9
m=10
E
A
B
C
D
F
d=3
d=2 m=20
T>8
m=20
蚂蚁释放的信息素与路径长度成反比
路径上信息素浓度越大,路径被选概率越大
实时变化,个体间通过环境进行间接通讯;
(3)搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率;
(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到最优解。
2 蚁群算法解决TSP 问题
2.1 关于TSP
G =(N , E ),N ={1,2,3,…,n },E ={(i ,j ) | i ,j ∈N }
城市之间的距离n n ij d ⨯)(
目标函数∑=-=n
l i i l l d w f 1
1)(,其中),,,(21n i i i w =为城市1,2,3,..n 的一个排列,11i i n =+。
2.2 蚁群算法解决TSP 问题基本原理
1.初始假设 蚂蚁群体中蚂蚁数量为m ; 城市个数为n ;
城市i 与城市j 之间的距离为)n j i d ij ,...3,2,1,( =;
t 时刻城市i 与城市j 连接路径上的信息浓度为)(t ij τ。初始时刻,各城市间连接路径上的
信息浓度相同,可设为0)0(ττ=ij 。 2. 转移概率计算
t 时刻蚂蚁k 从城市i 转移到城市j 的概率为)(t P k ij ,其计算公式为
⎪⎪⎩⎪⎪⎨
⎧∉∈••=∑∈k k allow s is is ij ij K
ij allow s allow s t t t P k 0 ][)]([][)]([)(,
,βαβ
αητητ 其中:
)(t ij η为启发函数,ij ij d t /1)(=η,表示蚂蚁从城市i 转移到城市j 的期望程度;
)(m k allow k ,...,3,2,1 =为蚂蚁k 待访问城市的集合,开始时,k allow 中有(n-1)个元素,即
包括除了蚂蚁k 出发城市的其他所有城市,随意时间的推进,k allow 中元素不断减少,直到为空,即表示所有的城市均访问完毕; α为信息素重要程度因子,其值越大,表示信息素的浓度在转移中起的作用越大;
β为启发函数重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁会
以较大的概率转移到距离短的城市。
3. 信息素更新
信息素更新包括信息素的挥发和信息素增强(释放信息素)。 蚂蚁释放信息素的三种模型: (1) ant cycle system 模型
, 0i /⎩⎨⎧=∆其他访问城市只蚂蚁从城市第,
j k L Q k k ij
其中,Q 为常数,表示蚂蚁循环一次所释放的信息素总量;k L 为第k 只蚂蚁经过路径的
长度。
(2) ant quanlity system 模型
, 0i /⎩⎨⎧=∆其他访问城市只蚂蚁从城市第,j k d Q ij k ij
(3) ant density system 模型
, 0i ⎩
⎨⎧=∆其他访问城市只蚂蚁从城市第,
j k Q k
ij
一般用ant cycle system 模型计算释放的信息浓度,即蚂蚁经过的路径越短,释放的信息素浓度越高。
信息素挥发(evaporation )过程是信息素痕迹的浓度自动逐渐减弱的过程。挥发过程主要用于避免算法过快地向局部最优区域集中,有助于搜索区域的扩展。
设)10(ρρ<表示信息素的挥发程度。当所有蚂蚁完成一次循环后,各个城市间连接路径上的信息浓度可需进行如下实进更新: