蚁群算法的基本原理及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组合爆炸问题TSP问题,后经他本人(1992,1996,2000)及学者
Colorni,Maniezzo(1997,1999)等进一步研究,将其系统化。其主要
参数变量表达如下:
选择概率: pikj(t)
[ij(t)][ij] lU[il(t)][il]
jU
0
other
m
信息素更新方程为:ij(t1)•ij(t) ikj(t)
蚂蚁k=1
蚂蚁k=k+1
按状态选择公式(1)选择下一城市 修改禁忌表
否 k>=蚂蚁总数m? 是
按公式(2)和(3)进 行信息量更新
否 满足结束条件?
是
输出程序计算结果 结束
tabu(k)
禁忌表:与真实蚁不同,人工蚁群 系统具有记忆功能。为了满足蚂蚁 必须经过所有n个不同的城市这个 约束条件,为每只蚂蚁都设计了一 个数据结构,成为禁忌表。用来记 录了t时刻蚂蚁已经经过的城市,不 允许该蚂蚁在本次循环中再经过这 些城市。当本次循环结束后禁忌表 被用来计算该蚂蚁所建立的解决方 案。之后禁忌表清空蚂蚁又可以自 由地选择。
息量ij const,其中 const表示常数,且初始时刻 ij(0)0。
(2)循环次数 Nc Nc1 。
(3)蚂蚁数目 kk1。 (4)蚂蚁个体根据状态转移概率公式(后面介绍)计算的概率选择城市 j并前进
, jCtabku
(5)修改禁忌表指针,即选择好之后将蚂蚁移动到新的城市,并把该城市移 动到该蚂蚁个体的禁忌表中。
D 15ants C
B 15ants
10ants
H
10ants
30ants
A
A
图3 蚂蚁选路过程示例
E
30ants
D 20ants C
B 20ants
30ants
A
Nest
Food
Obstacle
图4 蚂蚁最终绕过障碍物找到最优路径
蚁群算法原理
蚂蚁在寻找食物源时,能在其走过的路上释放一种特殊的分泌物—— 信息素 (随着时间的推移该物质会逐渐挥发), 后来的蚂蚁选择该路径 的概率与当时这条路径上该物质的强度成正比.
Q —— 体现蚂蚁所留轨迹数量的一个常数;
U —— 可行结点集合;
N
k i
——
为第k
只蚂蚁在第结点i
出发下一步的可行结点集;
tabu(k) ——一个列表,用于记录第k只蚂蚁到目前为止已经访
问的城市。
AS模型(Ant System 简称AS)
蚂蚁系统(AS)是第一个蚁群优化算法(ACO),它是意
大利科学家Dorigo 在1991年最先提出,并成功地用于求解著名的
蚁群算法相关符号的定义
m ——蚂蚁个数; n —— 结点(顶点)个数;
ij —— 边弧 (i, j) 的能见度(visibility), 或称局部启发因子
,一般取 1 d ij ,d ij 表示路径 (i, j)之间的长度;(由城市i转移到
城市j的可见度亦称启发信息)
ij —— 边弧 (i, j) 的信息素轨迹强度(intensity);
k1
按
k ij
的不同取法,可形成三种类型的蚂蚁算法模型:
蚁群算法的基本原理及其应用
专 业:控制理论与控制工程 年 级:2009级 姓 名:吕坤 学 号:09104046 指导老师:赵明旺
蚁群算法
蚁群算法的原理、特点 蚁群算法的模型 蚁群算法的研究及应用
蚁群算法的提出
蚁群算法(ant colony optimization, ACO), 又称蚂蚁算法,是一种用来寻找
蚁群算法的特点
(1)其原理是一种正反馈机制或称增强型学习系统;它通过信息素的不断 更新达到最终收敛于最优路径上;
(2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实际蚂蚁的一种 简单模拟,它融进了人类的智能;
(3)它是一种分布式的优化方法;不仅适合目前的串行计算机,而且适合 未来的并行计算机;
(4)它是一种全局优化的方法;不仅可用于求解单目标优化问题,而且可 用于求解多目标优化问题;
Obstacle
图1 蚂蚁正常行进,突然环境改变,增加了障碍物
Nest
Food
Obstacle
图2 蚂蚁以等同概率选择各条路径 紧接着,随着时间的增加
较短路径信息素浓度高,选择该路径的蚂蚁逐渐增多
E
t=0
E
t=1
30ants
d=1 D
H
d=0.5
C
15ants
H
d=1 B d=0.5
15ants
(6)若集合C 中城市未遍历完,即 k<m,则跳转到第(3)步,否则执行第 (7)步。
(7)更新每条路径上的信息量,计算公式将在后面介绍。 (8)若满足结束条件,即如果循环次数 Nc Ncma,x 则循环结束并输出程序
计算结果,否则清空禁忌表并跳转到第(2)步。
蚁群算法流程图
开始 初始化
迭代次数Nc=Nc+1
优化路径的机率型算法。它由 Marco Dorigo于1992年在他的 博士论文中提出,其灵感来源于
蚂蚁在寻找食物过程中发现路径 的行为。
Macro Dorigo
蚁群现象:在蚁群寻找食物时,它们总能找到一条从食物到 巢穴之间的最优路径,并且能随着环境的变化而变化的搜索 新的最优路径。
Nest
Food
当某路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多, 后来蚂蚁选择该路径的概率也越高,更增加了该路径的信息素强度。
而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制, 通过 这种正反馈机制,蚂蚁最终可以发现最短路径。
特别地,当蚂蚁巢穴与食物源之间出现障碍物时,蚂蚁不仅可以绕过 障碍物,而且通过蚁群信息素轨迹在不同路径上的变化,经过一段时 间的正反馈,最终收敛到最短路径上。
(5)它是一种启发式算法;计算复杂性为 O(NC•m•n2)
其中NC 是迭代次数,m 是蚂蚁数目,n 是目的节点数目。
蚁群算法求解的一般步骤
(1)参数初始化。令时间 t 0 和循环次数 Nc 0,设置最大循环次数 Nc max
,将m 只蚂蚁置于 n(m<n)个城市上 ,令有向图上每条边 (i,j)的初始化信
k ij
——
蚂蚁k 于弧上(i, j)
留下的单位长度轨迹信息素数量;
p
k ij
——
蚂蚁k
在结点的转移概率,j
Βιβλιοθήκη Baidu
是尚未访问结点;
—— 信息素轨迹的相对重要性( 0 );
—— 边弧能见度的相对重要性( 0 );
蚁群算法符号的定义
—— 信息素轨迹的持久性( 01),1 可理解为轨迹
衰减度(evaporation);