蚁群算法简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


蚁群优化算法起源

蚁群优化(ant colony optimization,ACO)是20世纪 90年代初由意大利学者 M.Dorigo等通过模拟蚂蚁的行 为而提出的一种随机优化技术。 ACO算法最初用于求解旅行商 问题,现在已经成功用于许多 组合优化问题。本节课将介绍 ACO算法的基本原理和实现技 术,并通过介绍求解旅行商问 题的ACO算法了解实现细节。
Macro Dorigo
蚁群优化算法研

究进展 最初提出的AS有三种版本:Ant-density、Ant-quantity和Ant-
cycle。在Ant-density和Ant-quantity中蚂蚁在两个位置节点间每移动 一次后即更新信息素,而在Ant-cycle中当所有的蚂蚁都完成了自己的 行程后才对信息素进行更新,而且每个蚂蚁所释放的信息素被表达为反 映相应行程质量的函数。现在我们一般所提到的AS实质上指的是蚂蚁周 期这一版本的AS另外两个版本的AS因为其低劣的性能已遭淘汰。
终止条件 1、算法已经找到与最优解的距离在预定义范围内的一个解 2、算法已经探索的路径数目达到最大值,或者算法执行的迭代次数达到最大值 3、程序执行的CPU时间达到最大值 4、算法陷入停滞状态
j计算每只蚂蚁构建的路径长度, 更新每条边上的信息素量
结束
应Hale Waihona Puke Baidu举例
蚁群算法的缺点
蚁群算法(AS)的缺点 1、收敛速度慢 2、易于陷入局部最优 改进


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


1988年, Moyson Manderick写了一篇蚂蚁自组织的文章
设计了三种优化算法(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


蚁群算法基本原理
蚂蚁的觅食行为及其优化过程
双桥实验 在研究蚂蚁觅食行为过程中,人们发现,尽管单只蚂蚁 的能力十分有限,但整个蚁群却在觅食过程中发现从蚁 巢到食物源的最短路径,在觅食过程中,蚂蚁通过“媒 介质”来协调它们之间的行动。所谓“媒介质”指的是 一种以环境的变化为媒介的间接通信方式。蚂蚁在寻找 食物时,以其产生的被称为信息素的化学物质作为媒介 而间接的传递信息。当蚂蚁从蚁穴走到食物源,从而形 成了含有信息素的路径。
蚁群算法基本流程

在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的实例解可以用城市序号的一个排列来表示;
k
m
这里m是蚂蚁个数;是信息素的蒸发率,规 ρ 0.5τ k (i, j) 0 ρ 1 定 ,在AS中通常设置为 ,
ρ
是第k只蚂蚁在它经过的边上释放的信息素量, 它等于蚂蚁 k本轮构建路径长度的倒数。 表示 Ck k 路径长度,它是 中所有边的长度和。 R
开始
初始化每条边上的信息素量t0

满足结束条件? 否 对每只蚂蚁,随机选择 一个出发城市
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
但是当问题规模扩展时,AS的解题能力大幅度下降。 因此,其后的ACO研究工作主要都集中于AS性能的改进方面。 例如:EAS, MMAS,ASrank,其思想是在算法开始后即对所有已发现的最 好路径给予额外的增强,并将随后与之对应的行程记为Tb(全局最优行 程),当进行信息素更新时,对这些行程予以加权,同时将经过这些行程 的蚂蚁记为“精英”,从而增大较好行程的选择机会。这种改进型算法 能够以更快的速度获得更好的解。但是若选择的精英过多则算法会由于

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

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
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)上的信息素 和启发式信息值 构成的


蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法。 蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为信息素 素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感 知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁 群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越 多,则后来者选择该路径的概率就越大。 为了说明蚁群算法的原理,先简要介绍一下蚂蚁搜寻食 物的具体过程。在蚁群寻找食物时,它们总能找到一条从食物到巢穴 之间的最优路径。这是因为蚂蚁在寻找路径时会在路径上释放出一种 特殊的信息素。当它们碰到一个还没有走过的路口时.就随机地挑选 一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长, 释放的激索浓度越低.当后来的蚂蚁再次碰到这个路口的时候.选择 激素浓度较高路径概率就会相对较大。这样形成一个正反馈。最优路 径上的激索浓度越来越大.而其它的路径上激素浓度却会随着时间的 流逝而消减。最终整个蚁群会找出最优路径。
τ
η
路径构建
定义5.1 AS中的随机比例规则;对于每只蚂蚁 k,路径记忆向量R 按照访问顺序记录了所有 k已经经过的城市序号。设蚂蚁k当前所在城市 为i,则其选择城市j作为下一个访问对象的概率 为: β α , j (i ) k β α (i, j ) q k μJ k (i ) 0,

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

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

τ τ

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


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年,首次在蛋白质折叠问题上的应用。
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和他的同事们开发了对电信网络的首次应用;

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

了进一步克服AS中暴露出的问题,提出了蚁群系统(Ant Colony System, ACS)。ACS与AS之间存在三方面的 主要差异:首先,ACS采用了更为大胆的行为选择规则; 其次,只增强属于全局最优解的路径上的信息素。其中, 0<ρ<1是信息素挥发参数, 是从寻路开始到当前为 止全局最优的路径长度。试验结果表明ACS的算法性能 明显优于AS,ACS是蚁群优化算法发展史上的又一里程 碑
蚁群算法
ACO(ant colony optimization)
大纲
1、蚁群优化算法简介 2、蚁群算法基本流程 3、蚁群算法应用举例 4、蚁群算法的改进版本
5、蚁群算法的相关应用 及当前发展趋势
蚂蚁的生物学特征

蚂蚁在8000万年前就建立起了自己的社会。许多“蚂蚁 城市”往往由5000万个成员组成,并且是一个组织完好 的复杂“城市”。 http://v.youku.com/v_show/id_XODEwOTg5Mg== .html
相关文档
最新文档