当前位置:文档之家› 蚁群算法简介

蚁群算法简介




蚁群优化算法的年表:
1959年,Pierre-Paul Grassé发明了Stigmergy理论来解释白蚁建设巢的行为; 1983年, Deneubourg和他的同事们研究了蚂蚁的集体行为;


1988年, Moyson Manderick写了一篇蚂蚁自组织的文章
Macro Dorigo
蚁群优化算法研

究进展 最初提出的AS有三种版本:Ant-density、Ant-quantity和Ant-
cycle。在Ant-density和Ant-quantity中蚂蚁在两个位置节点间每移动 一次后即更新信息素,而在Ant-cycle中当所有的蚂蚁都完成了自己的 行程后才对信息素进行更新,而且每个蚂蚁所释放的信息素被表达为反 映相应行程质量的函数。现在我们一般所提到的AS实质上指的是蚂蚁周 期这一版本的AS另外两个版本的AS因为其低劣的性能已遭淘汰。


蚁群算法基本原理
蚂蚁的觅食行为及其优化过程
双桥实验 在研究蚂蚁觅食行为过程中,人们发现,尽管单只蚂蚁 的能力十分有限,但整个蚁群却在觅食过程中发现从蚁 巢到食物源的最短路径,在觅食过程中,蚂蚁通过“媒 介质”来协调它们之间的行动。所谓“媒介质”指的是 一种以环境的变化为媒介的间接通信方式。蚂蚁在寻找 食物时,以其产生的被称为信息素的化学物质作为媒介 而间接的传递信息。当蚂蚁从蚁穴走到食物源,从而形 成了含有信息素的路径。
1989年,Goss, Aron, Deneubourg和Pasteels关于阿根廷蚂蚁的集体行为的研究, 给蚁群优化算法的思想提供了灵感; 1989年,Ebling和他的同事落实了觅食行为的模型 1991年, M. Dorigo在他的博士论文中提出了蚂蚁系统(文章于1992年发表)。 一份从论文中提取的技术报告五年后出版,由V. Maniezzo和A.Colorni合著; 1996年,蚂蚁系统的文章出版; 1996年,Hoos与Stützle发明了最大最小蚂蚁系统; 1997年,Dorigo和Gambardella发布了蚁群系统; 1997年, Schoonderwoerd和他的同三种优化算法(EAS, ASrank ,MMAS)
采用蚁群系统(ACS)
蚁群优化算法的改进版本

5.3.1精华蚂蚁系统(EAS)
k 1 1 , (i, j )
τ (i, j ) (1 ρ ).τ (i, j )
τ k (i, j ) e b (i, j ) R
m

τ τ

k (i, j ) k k 0, 其他 -1 (i, j ) , (i , j )在路径 b b 0,其他

蚁群优化算法起源

蚁群优化(ant colony optimization,ACO)是20世纪 90年代初由意大利学者 M.Dorigo等通过模拟蚂蚁的行 为而提出的一种随机优化技术。 ACO算法最初用于求解旅行商 问题,现在已经成功用于许多 组合优化问题。本节课将介绍 ACO算法的基本原理和实现技 术,并通过介绍求解旅行商问 题的ACO算法了解实现细节。
k
m
这里m是蚂蚁个数;是信息素的蒸发率,规 ρ 0.5τ k (i, j) 0 ρ 1 定 ,在AS中通常设置为 ,
ρ
是第k只蚂蚁在它经过的边上释放的信息素量, 它等于蚂蚁 k本轮构建路径长度的倒数。 表示 Ck k 路径长度,它是 中所有边的长度和。 R
开始
初始化每条边上的信息素量t0
终止条件 1、算法已经找到与最优解的距离在预定义范围内的一个解 2、算法已经探索的路径数目达到最大值,或者算法执行的迭代次数达到最大值 3、程序执行的CPU时间达到最大值 4、算法陷入停滞状态
j计算每只蚂蚁构建的路径长度, 更新每条边上的信息素量
结束
应用举例
蚁群算法的缺点
蚁群算法(AS)的缺点 1、收敛速度慢 2、易于陷入局部最优 改进

k
p
[τ (i, j)] [η (i, j)] [τ (i,u)] [η (i,u)]
J
信息素更新
τ (i, j ) (1 ρ ).τ (i. j ) (i, j ) k k 0, 其他

τ
(C )
k 1 1 , (i, j )
τ k (i, j) R


1998年,Dorigo发起了第一次蚁群算法的专题会议
1998年, Stützle提出初步的并行实现

1999年,Bonabeau, Dorigo和Theraulaz的出版了一本书,主要关于人工蚂蚁


2000年,未来计算机系统杂志上发表了蚂蚁算法特刊
2000年,调度的最早期的应用程序,调度了序列和约束的满意度 2000年, Gutjahr提供了一个蚁群算法收敛的第一个证据 2001年,COA算法首次被使用( Eurobios和AntOptima ) 2001年, IREDA和他的同事们发表了第一个多对象算法 2002年,调度设计的首次应用,贝叶斯网络 2002年,比安奇和她的同事提出了随机问题的最早算法 2004年, Zlochin和Dorigo表明,有些算法等价于随机梯度下降,交叉熵和估计分布算法 2005年,首次在蛋白质折叠问题上的应用。

构建图;在这里,构建图与问题描述图是一致的,成份的集合C对应 着点的集合(即:C=N),连接对应着边的集合(即L=A),且每一条 边都带有一个权值,代表点i和j之间的距离。

约束条件:所有城市都要被访问且每个城市最多只能被访问一次。
信息素和启发式信息:TSP 问题中的信息素表示在访问城市i后直接访 问城市j的期望度。启发式信息值一般与城市i和城市j的距离成反比其 中一个直接选择就是
蚁群算法基本流程

在ACO 算法中,人工蚂蚁实际上代表的是一个解的随 机构建过程,从最初的空解开始,通过不断地向部分解 添加解的成分而构建出一个完整的解 AS算法对TSP的求解主要有两大步骤: 1、路径构建 2、信息素更新

旅行商问题
旅行推销员问题(Travelling Salesman Problem, 又称为旅行商 问题、货郎担问题、TSP问题)是一个多局部最优的最优化问题: 有n个城市,一个推销员要从其中某一个城市出发,唯一走遍所 有的城市,再回到他出发的城市,求最短的路线。 TSP问题可以用一个带权完全图G=(N,A)来表示,其中N是带有 n=|N|点(城市)的集合,A是完全连接这些点的边的集合。每 一条边(i,j)属于A都带有一个权值 它代表城市i与城市j之间的 距离。TSP问题就是要找到图中的最短哈密尔顿回路。这里所谓的 哈密尔顿回路就是可以遍访图G中的每一个点一次且仅一次的闭 合回路 一个TSP的实例解可以用城市序号的一个排列来表示;
蚁群算法
ACO(ant colony optimization)
大纲
1、蚁群优化算法简介 2、蚁群算法基本流程 3、蚁群算法应用举例 4、蚁群算法的改进版本
5、蚁群算法的相关应用 及当前发展趋势
蚂蚁的生物学特征

蚂蚁在8000万年前就建立起了自己的社会。许多“蚂蚁 城市”往往由5000万个成员组成,并且是一个组织完好 的复杂“城市”。 /v_show/id_XODEwOTg5Mg== .html
n
城市之间距离 : (dij ) nn 目标函数:f ( w) dil1il
l 1
其中,w (i1 , i2 ,
, in ), in 1 i1
为城市1, 2, n的一个排列。
g
h
τ η
k
α β ij ij
i
位于城市i的一只蚂蚁从未访问的城市中选出一个城 市,作为下一个将要访问的城市,选择的依据是边 ij ij (i,j)上的信息素 和启发式信息值 构成的

解的构建:每只蚂蚁最初都从随机选择出来的城市出发,每经过一次 迭代蚂蚁就向解中添加一个还没有访问过的城市。当所有城市都被蚂 蚁访问过之后,解的构建就终止。
蚁群算法与TSP问题
TSP问题可表示为一个N个城市的有向图G (N, A) 其中, N {1,2, ,n} A {(i ,j)| i, j N }

较早的收敛于局部次优解而导致搜索的过早停滞。
蚁群优化算法
研究进展

了进一步克服AS中暴露出的问题,提出了蚁群系统(Ant Colony System, ACS)。ACS与AS之间存在三方面的 主要差异:首先,ACS采用了更为大胆的行为选择规则; 其次,只增强属于全局最优解的路径上的信息素。其中, 0<ρ<1是信息素挥发参数, 是从寻路开始到当前为 止全局最优的路径长度。试验结果表明ACS的算法性能 明显优于AS,ACS是蚁群优化算法发展史上的又一里程 碑

满足结束条件? 否 对每只蚂蚁,随机选择 一个出发城市
i=1

i<n(城市数)? 是
对每只蚂蚁根据启发式信息 和信息素浓度选择下一个访问 城市
i=i+1
//功能:蚂蚁系统伪代码 //说明:本例以求TSP问题为目标 //参数:N为城市规模 procedure AS for each edge set initial pheromone t0 . end for while not stop for each ant k randomly choose an initial city. for i= 1 to n choose next city j with the probability given by Eq.(5.1). end for end for compute the length ck of the tour constructed by the kth ant. for each edge update the pheromone value by Eq.(5.2). end for end while print result. end procedure
相关主题