算法设计与分析 第七章补充材料 蚁群算法介绍

110
1 算算算算算算算 算算算算算算算 算算算算算算 算算算算算算算算算算 算算 算算算算 :, #3432# [email protected] http://lchxu.welkind.net/ 2005 算 9 算 5 算— 2006 算 1 算 20 算

Upload: octavia-noel

Post on 14-Mar-2016

109 views

Category:

Documents


2 download

DESCRIPTION

算法设计与分析 第七章补充材料 蚁群算法介绍. 山东师范大学计算机系 授课:徐连诚, #3432# [email protected] , http://lchxu.welkind.net/ 2005 年 9 月 5 日 — 2006 年 1 月 20 日. 内 容. 一、启发式方法概述 二、蚁群优化算法. 背 景. 传统实际问题的特点 连续性问题 —— 主要以微积分为基础,且问题规模较小 传统的优化方法 追求准确 —— 精确解 理论的完美 —— 结果漂亮 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 算法设计与分析 第七章补充材料  蚁群算法介绍

1

算法设计与分析 第七章补充材料 蚁群算法介绍山东师范大学计算机系

授课:徐连诚, #3432#[email protected], http://lchxu.welkind.net/2005年 9 月 5 日— 2006年 1 月 20 日

Page 2: 算法设计与分析 第七章补充材料  蚁群算法介绍

2

内 容一、启发式方法概述二、蚁群优化算法

Page 3: 算法设计与分析 第七章补充材料  蚁群算法介绍

3

背 景 传统实际问题的特点 连续性问题——主要以微积分为基础,且问题规模较小 传统的优化方法 追求准确——精确解 理论的完美——结果漂亮 主要方法:线性与非线性规划、动态规划、多目标规划、整数规划等;排队论、库存论、对策论、决策论等。 传统的评价方法 算法收敛性(从极限角度考虑) 收敛速度(线性、超线性、二次收敛等)

Page 4: 算法设计与分析 第七章补充材料  蚁群算法介绍

4

传统运筹学面临新挑战 现代问题的特点 离散性问题——主要以组合优化(针对离散问题,定义见后)理论为基础 不确定性问题——随机性数学模型 半结构或非结构化的问题——计算机模拟、决 策支持系统 大规模问题——并行计算、大型分解理论、近似理论 现代优化方法 追求满意——近似解 实用性强——解决实际问题 现代优化算法的评价方法 算法复杂性

Page 5: 算法设计与分析 第七章补充材料  蚁群算法介绍

5

现代优化 ( 启发式 ) 方法种类 禁忌搜索( tabu search) 模拟退火( simulated annealing) 遗传算法( genetic algorithms) 神经网络( neural networks) 蚁群算法(群体(群集)智能, Swarm

Intelligence ) 拉格朗日松弛算法( lagrangean relaxation)

Page 6: 算法设计与分析 第七章补充材料  蚁群算法介绍

6

1 现代优化计算方法概述 1.1 组合优化问题 1.2 计算复杂性的概念 1.3 启发式算法

Page 7: 算法设计与分析 第七章补充材料  蚁群算法介绍

7

1.1 组合优化问题 1/8 组合优化( combinatorial optimization) : 解决离散问题的优化问题——运筹学分支。通过数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等,可以涉及信息技术、经济管理、工业工程、交通运输和通信网络等许多方面。 数学模型:

决策变量有限点集约束函数目标函数

, . ,0)(..

)( min

Dxxgts

xf

Page 8: 算法设计与分析 第七章补充材料  蚁群算法介绍

8

1.1 组合优化问题 2/8组合优化问题的三参数表示:

.|)(min)(,:

::

,,0)(,|:

),,(

FxxfxfFxx

Fxf

xgDxxFD

fFD

最优解,如果

可行解(点)目标函数

有限点集可行域决策变量定义域

Page 9: 算法设计与分析 第七章补充材料  蚁群算法介绍

9

1.1 组合优化问题 3/8 例 1 0-1 背包问题( 0-1 knapsack problem)

装包?问题:如何以最大价值件物品单位价值,第

件物品单位体积,第背包容积

.,,1:.,,1:

:

niicniia

b

i

i

Page 10: 算法设计与分析 第七章补充材料  蚁群算法介绍

10

1.1 组合优化问题 4/8

.1,0

i0i 1

(1.3) .,,1,1,0

(1.2) ,as.t.

(1.1) max

n

1ii

1i

n

i

i

i

n

ii

D

x

nix

bx

xc

物品,不装第物品装第,

其中

决策变量

包容量限制

总价值

数学模型:

Page 11: 算法设计与分析 第七章补充材料  蚁群算法介绍

11

1.1 组合优化问题 5/8

例 2 旅行商问题( TSP,traveling salesman problem)

管梅谷教授 1960 年首先提出,国际上称之为中国邮递员问题。 问题描述:一商人去 n 个城市销货,所有城市走一遍再回到起点,使所走路程最短。

Page 12: 算法设计与分析 第七章补充材料  蚁群算法介绍

12

1.1 组合优化问题 6/8

ij1

ij1

min (1.4)

s.t. 1. 1,2, , , (1.5) i

1. 1, 2, , ,

ij iji j

n

j

n

i

d x

x i n

x j n

数学模型:

总路长

只从城市出来一次

,

(1.6)

1, 2 1, 1,2, , , (1.7)

0,1 , , 1, 2, , , . (1.8)

: i j , s : s

1,

iji j s

ij

ij

ij

j

x s s n s n

x i j n i j

d

i jx

只走入城市一次

在任意城市子集中不形成回路

决策变量

其中

城市与城市之间的距离 集合 中元素的个数,

走城市和城市0 .

: , ,

: , ,ij ji

ij ji

i j

TSP d d i j

TSP d d i j

之间的路径,,不走城市和城市之间的路径

对称距离

非对称距离

Page 13: 算法设计与分析 第七章补充材料  蚁群算法介绍

13

1.1 组合优化问题 7/8例 3 装箱问题( bin packing) 尺寸为 1 的箱子有若干个,怎样用最少的箱子装下 n个尺寸不超过 1 的物品,物品集合为: 。 1 2{ , ,... }na a a

Page 14: 算法设计与分析 第七章补充材料  蚁群算法介绍

14

1.1 组合优化问题 8/8

1

1

min

. . 1, 1,2, , ,

1, 1, 2, , ,

0,1 , 1,2, , ; 1,2, , ,

B :

1,

0 .

B

ibb

n

i ibi

ib

ib

B

s t x i n

a x b B

x i n b B

i bx

i b

数学模型:

其中 装下全部物品需要的箱子,

第物品装在第 个箱子,,第物品不装在第 个箱子

Page 15: 算法设计与分析 第七章补充材料  蚁群算法介绍

15

1.2 计算复杂性的概念 1/11 评价算法的好坏——计算时间的多少、解的偏离程度 例 非对称距离 TSP 问题的算法实现:所有路径枚举。 计算时间: n 个城市,固定 1个为起终点需要 (n-1)!个枚举,设计算机 1秒能完成24个城市的枚举,则城市数与计算时间的关系如下表:

Page 16: 算法设计与分析 第七章补充材料  蚁群算法介绍

16

1.2 计算复杂性的概念 2/11

城市数 24 25 26 27 28 29 30 31计算时间 1

sec24sec

10min

4.3hour

4.9day

136.5day

10.8year

325year随城市增多,计算时间增加很快。到 31个城市时,要计算 325 年。

描述算法的好坏——计算复杂性——讨论计算时间与问题规模之间的关系。以目前二进制计算机中的存储和计算为基础,以理论的形式系统描述,是评估算法性能的基础。

Page 17: 算法设计与分析 第七章补充材料  蚁群算法介绍

17

1.2 计算复杂性的概念 3/11 问题( problem):要回答的一般性提问,通常含有若干个满足一定条件的参数(或自由变量)。可以从两方面描述: ( 1 )对所有参数的一般性描述; ( 2 )答案(或解)必须满足的性质。 实例( instance) : 给问题的所有参数指定具体值,得到问题的一个实例。这些具体值称为数据;这些数据输入计算机所占的空间称为实例的长度( size) .

Page 18: 算法设计与分析 第七章补充材料  蚁群算法介绍

18

1.2 计算复杂性的概念 4/11

一类最优化问题是由一些类似的具体问题(实例)组成的,每一个具体问题可表达成二元组( F,C) .F 为可行解集合 ;C是费用函数,是由 F到 R (实数集)的映像。问题是在 F中找到一个点 f*,使对 F中任意的 f ,有 C(f*) C(f),称 f* 为这一具体问题的最优解(或全局最优解) .

Page 19: 算法设计与分析 第七章补充材料  蚁群算法介绍

19

1.2 计算复杂性的概念 5/11 算法计算量的度量: 加、减、乘、除、比较的总运算次数与实例的计算机计算时的二进制输入数据的大小关系。 正整数 x 的二进制位数是 :( 整数到二进制的转换 )

2

( )( ) log (| | 1) 2

x l xl x x

记 的输入规模(编码长度)为 ,则

2 1 1其中 是考虑了 个符号位和 个数据分隔位。

Page 20: 算法设计与分析 第七章补充材料  蚁群算法介绍

20

1.2 计算复杂性的概念 6/11 算法计算量的度量之例—— TSP 枚举法

21, , , ( 1)!

( 1)! !;

( 1)!! ( 1)!

n

ni i

n nn n n

nn n

城市数, 1第一城市为始终点,计算一条路径( )长度的基本运算

, ,为两两城市间距离的 个数求和 共有 条路径

求和运算次数为:

,枚举所有路径进行 次比较可得最优路径 基本计算总次数为

:总计算量

计算量的统计:

Page 21: 算法设计与分析 第七章补充材料  蚁群算法介绍

21

1.2 计算复杂性的概念 7/11 实例的输入长度:

2 2

, ,

( 1)( log 1 2) log 1 2iji j d K

L n n K n

设对 有 则

( ) ( )

实例的输入长度是n的多项式函数 枚举法的基本计算量是 n的阶乘函数, 随 n的增加,比指数函数增加得还快 .

Page 22: 算法设计与分析 第七章补充材料  蚁群算法介绍

22

1.2 计算复杂性的概念 8/11

A

A

A

, ( ) AC (I)

( ) ( ( ))

( ) ( ( ( )))( )

I l I

g xC (I) g l I

C I O g l Ig x

实例 实例规模: ,算法基本计算总次数:

存在函数 和一个常数 ,使得对于该问题的任意实例I 都满足 (XX)

则二者关系表示为:

的性质决定了算法的性能。

Page 23: 算法设计与分析 第七章补充材料  蚁群算法介绍

23

1.2 计算复杂性的概念 9/11定义 多项式算法给定问题 P ,算法 A ,对一个实例 I ,存在多项式函数 g(x) ,使( XX )成立,称算法 A 对实例 I 是多项式算法;若存在多项式函数 g(x) ,使( XX )对问题 P的任意实例 I 都成立,称算法 A 为解决该问题 P 的多项式算法 .当 g(x) 为指数函数时,称 A 为 P 的指数时间算法。

Page 24: 算法设计与分析 第七章补充材料  蚁群算法介绍

24

1.2 计算复杂性的概念 10/11 利用复杂性分析对组合优化问题归类。 定义多项式问题 给定一个组合优化问题,若存在一个多项式算法,称该问题为多项式时间可解问题,或简称多项式问题 (或 P 问题 ). 所有多项式问题的集合记为 P. 例:线性规划是否为多项式问题?

Page 25: 算法设计与分析 第七章补充材料  蚁群算法介绍

25

1.2 计算复杂性参考书 11/11 计算复杂性 , 作者:

Christos, Papadimitriou清华大学出版社, 2004 年 9月第 1版 计算复杂性导论,作者:堵丁柱等, 高等教育出版社, 2002 年 8月第 1版

Page 26: 算法设计与分析 第七章补充材料  蚁群算法介绍

26

1.3 启发式算法 _ 定义 1/6 启发式算法( heuristic algorithm) 定义 1. 基于直观或经验构造的算法,在可接受的花费(时间、空间)下,给出待解组合优化问题的每个实例的一个可行解,该可行解与最优解偏差事先不一定可以预计 . 定义 2. 启发式算法是一种技术,在可接受的计算费用内寻找最好解,但不保证该解的可行性与最优性,无法描述该解与最优解的近似程度。 特点(与传统优化方法不同):凭直观和经验给出算法;不考虑所得解与最优解的偏离程度 .

Page 27: 算法设计与分析 第七章补充材料  蚁群算法介绍

27

1.3 启发式算法 _ 优点 2/6

优点:( 1 )有可能比简化数学模型解的误差小;( 2 )对有些难题,计算时间可接受;( 3 )可用于某些最优化算法(如分支定界算 法)之中的估界;( 4 )直观易行;( 5 )速度较快;( 6 )程序简单,易修改。

Page 28: 算法设计与分析 第七章补充材料  蚁群算法介绍

28

1.3 启发式算法 _ 不足 3/6

不足:( 1 )不能保证求得全局最优解;( 2 )解的精度不稳定,有时好有时坏;( 3 )算法设计与问题、设计者经验、技术 有关,缺乏规律性;( 4 )不同算法之间难以比较。

Page 29: 算法设计与分析 第七章补充材料  蚁群算法介绍

29

1.3 启发式算法 _ 分类 4/6

( 1 )一步算法( 2 )改进算法(迭代算法) (3) 数学规划算法 (4) 解空间松弛法

Page 30: 算法设计与分析 第七章补充材料  蚁群算法介绍

30

1.3 启发式算法 _ 分类 5/6( 5 )现代优化算法: 80 年代初兴起 禁忌搜索( tabu search) 模拟退火( simulated annealing) 遗传算法( genetic algorithms) 神经网络( neural networks) 蚂蚁算法( Ant Algorithm ,群体(群集)智能, Swarm Intelligence)( 6 )其他算法: 多种启发式算法的集成 .

Page 31: 算法设计与分析 第七章补充材料  蚁群算法介绍

31

1.3 启发式算法 _ 性能分析 6/6

( 1 )最坏情形分析( worst case analysis) 利用最坏实例分析计算复杂性、解的效果。 (2 )概率分析 ( probability analysis) 用最坏情况分析,会因一个最坏实例影响总体评价 . 在实例数据服从一定概率分布情形下,研究算法复杂性和解的效果 . (3) 大规模计算分析 通过大量实例计算,评价算法效果 . 注意数据的随机性和代表性 .

Page 32: 算法设计与分析 第七章补充材料  蚁群算法介绍

32

2 蚁群优化算法1. 蚁群优化算法概述2. 蚁群优化算法概念3. 算法模型和收敛性分析

4. 算法实现的技术问题5. 应用6. 参考资料

Page 33: 算法设计与分析 第七章补充材料  蚁群算法介绍

33

2.1 蚁群优化算法概述 2.1.1 起源 2.1.2 应用领域 2.1.3 研究背景 2.1.4 研究现状 2.1.5 应用现状

Page 34: 算法设计与分析 第七章补充材料  蚁群算法介绍

34

2.1.1 蚁群优化算法起源 20世纪 50 年代中期创立了仿生学,人们从生物进化的机理中受到启发。提出了许多用以解决复杂优化问题的新方法,如进化规划、进化策略、遗传算法等,这些算法成功地解决了一些实际问题。 20世纪 90 年代意大利学者M. Dorigo, V .Maniezzo,A . Colorni 等从生物进化的机制中受到启发,通过模拟自然界蚂蚁搜索路径的行为,提出来一种新型的模拟进化算法—— 蚁群算法,是群智能理论研究领域的一种主要算法。用该方法求解TSP 问题、分配问题、 job-shop调度问题,取得了较好的试验结果.虽然研究时间不长,但是现在的研究显示出,蚁群算法在求解复杂优化问题(特别是离散优化问题)方面有一定优势,表明它是一种有发展前景的算法.

Page 35: 算法设计与分析 第七章补充材料  蚁群算法介绍

35

2.1.2 蚁群优化算法应用领域 这种方法能够被用于解决大多数优化问题或者能够转化为优化求解的问题。现在其应用领域已扩展到多目标优化、数据分类、数据聚类、模式识别、电信 QoS 管理、生物系统建模、流程规划、信号处理、机器人控制、决策支持以及仿真和系统辩识等方面,群智能理论和方法为解决这类应用问题提供了新的途径。

Page 36: 算法设计与分析 第七章补充材料  蚁群算法介绍

36

2.1.3 蚁群优化算法研究背景 1/3

群智能理论研究领域有两种主要的算法:蚁群算法 (Ant Colony Optimization, ACO) 和微粒群算法( Particle Swarm Optimization, PSO )。前者是对蚂蚁群落食物采集过程的模拟,已成功应用于许多离散优化问题。微粒群算法也是起源于对简单社会系统的模拟,最初是模拟鸟群觅食的过程,但后来发现它是一种很好的优化工具。

Page 37: 算法设计与分析 第七章补充材料  蚁群算法介绍

37

2.1.3 蚁群优化算法研究背景 2/3

与大多数基于梯度的应用优化算法不同,群智能依靠的是概率搜索算法。虽然概率搜索算法通常要采用较多的评价函数,但是与梯度方法及传统的演化算法相比,其优点还是显著的 ,主要表现在以下几个方面:1 无集中控制约束,不会因个别个体的故障影响整个问题 的求解,确保了系统具备更强的鲁棒性 2 以非直接的信息交流方式确保了系统的扩展性 3 并行分布式算法模型,可充分利用多处理器 4 对问题定义的连续性无特殊要求 5 算法实现简单

Page 38: 算法设计与分析 第七章补充材料  蚁群算法介绍

38

2.1.3 蚁群优化算法研究背景 3/3

群智能方法易于实现,算法中仅涉及各种基本的数学操作,其数据处理过程对 CPU 和内存的要求也不高。而且,这种方法只需目标函数的输出值,而无需其梯度信息。已完成的群智能理论和应用方法研究证明群智能方法是一种能够有效解决大多数全局优化问题的新方法。更为重要是,群智能潜在的并行性和分布式特点为处理大量的以数据库形式存在的数据提供了技术保证。无论是从理论研究还是应用研究的角度分析,群智能理论及其应用研究都是具有重要学术意义和现实价值的。

Page 39: 算法设计与分析 第七章补充材料  蚁群算法介绍

39

2.1.4 蚁群优化算法研究现状 1/7

90 年代 Dorigo 最早提出了蚁群优化算法 ---蚂蚁系统( Ant System, AS )并将其应用于解决计算机算法学中经典的旅行商问题( TSP )。从蚂蚁系统开始,基本的蚁群算法得到了不断的发展和完善,并在 TSP以及许多实际优化问题求解中进一步得到了验证。这些 AS改进版本的一个共同点就是增强了蚂蚁搜索过程中对最优解的探索能力,它们之间的差异仅在于搜索控制策略方面。而且,取得了最佳结果的 ACO是通过引入局部搜索算法实现的,这实际上是一些结合了标准局域搜索算法的混合型概率搜索算法,有利于提高蚁群各级系统在优化问题中的求解质量。

Page 40: 算法设计与分析 第七章补充材料  蚁群算法介绍

40

2.1.4 蚁群优化算法研究现状 2/7

最初提出的 AS有三种版本: Ant-density、 Ant-quantity和 Ant-cycle 。在 Ant-density和 Ant-quantity 中蚂蚁在两个位置节点间每移动一次后即更新信息素,而在 Ant-cycle 中当所有的蚂蚁都完成了自己的行程后才对信息素进行更新,而且每个蚂蚁所释放的信息素被表达为反映相应行程质量的函数。通过与其它各种通用的启发式算法相比,在不大于 75城市的 TSP 中,这三种基本算法的求解能力还是比较理想的,但是当问题规模扩展时, AS 的解题能力大幅度下降。

因此,其后的 ACO 研究工作主要都集中于 AS 性能的改进方面。较早的一种改进方法是精英策略 (Elitist Strategy) ,其思想是在算法开始后即对所有已发现的最好路径给予额外的增强,并将随后与之对应的行程记为 Tgb(全局最优行程 ) ,当进行信息素更新时,对这些行程予以加权,同时将经过这些行程的蚂蚁记为“精英”,从而增大较好行程的选择机会。这种改进型算法能够以更快的速度获得更好的解。但是若选择的精英过多则算法会由于较早的收敛于局部次优解而导致搜索的过早停滞。

Page 41: 算法设计与分析 第七章补充材料  蚁群算法介绍

41

2.1.4 蚁群优化算法研究现状 3/7

为了进一步克服 AS 中暴露出的问题,提出了蚁群系统 (Ant Colony System, ACS) 。该系统的提出是以 Ant-Q 算法为基础的。 Ant-Q将蚂蚁算法和一种增强型学习算法 Q-learning有机的结合了起来。 ACS与 AS 之间存在三方面的主要差异:首先, ACS采用了更为大胆的行为选择规则;其次,只增强属于全局最优解的路径上的信息素。其中, 0<ρ<1是信息素挥发参数, 是从寻路开始到当前为止全局最优的路径长度。

Page 42: 算法设计与分析 第七章补充材料  蚁群算法介绍

42

2.1.4 蚁群优化算法研究现状 4/7

再次,还引入了负反馈机制,每当一只蚂蚁由一个节点移动到另一个节点时,该路径上的信息素都按照如下公式被相应的消除一部分,从而实现一种信息素的局部调整,以减小已选择过的路径再次被选择的概率。

Page 43: 算法设计与分析 第七章补充材料  蚁群算法介绍

43

2.1.4 蚁群优化算法研究现状 5/7

在对 AS进行直接完善的方法中, MAX-MIN Ant System是一个典型代表。该算法修改了 AS 的信息素更新方式,每次迭代之后只有一只蚂蚁能够进行信息素的更新以获取更好的解。为了避免搜索停滞,路径上的信息素浓度被限制在 [MAX,MIN ] 范围内,另外,信息素的初始值被设为其取值上限,这样有助于增加算法初始阶段的搜索能力。

Page 44: 算法设计与分析 第七章补充材料  蚁群算法介绍

44

2.1.4 蚁群优化算法研究现状 6/7

另一种对 AS改进的算法是 Rank-based Version AS 。与“精英策略”相似,在此算法中总是更新更好进程上的信息素,选择的标准是其行程长度 决定的排序,且每个蚂蚁放置信息素的强度通过下式中的排序加权处理确定,其中,w为每次迭代后放置信息素的蚂蚁总数。

Page 45: 算法设计与分析 第七章补充材料  蚁群算法介绍

45

2.1.4 蚁群优化算法研究现状 7/7

这种算法求解 TSP 的能力与 AS 、精英策略AS 、遗传算法和模拟退火算法进行了比较。在大型 TSP 问题中(最多包含 132座城市),基于 AS 的算法都显示出了优于 GA和 SA 的特性。而且在 Rank-based AS 和精英策略AS均优于基本 AS 的同时,前者还获得了比精英策略 AS更好的解。

Page 46: 算法设计与分析 第七章补充材料  蚁群算法介绍

46

2.1.5 蚁群优化算法应用现状 1/5

随着群智能理论和应用算法研究的不断发展,研究者已尝试着将其用于各种工程优化问题,并取得了意想不到的收获。多种研究表明,群智能在离散求解空间和连续求解空间中均表现出良好的搜索效果,并在组合优化问题中表现突出。 蚁群优化算法并不是旅行商问题的最佳解决方法,但是它却为解决组合优化问题提供了新思路,并很快被应用到其它组合优化问题中。比较典型的应用研究包括:网络路由优化、数据挖掘以及一些经典的组合优化问题。

Page 47: 算法设计与分析 第七章补充材料  蚁群算法介绍

47

2.1.5 蚁群优化算法应用现状 2/5

蚁群算法在电信路由优化中已取得了一定的应用成果。 HP公司和英国电信公司在 90 年代中后期都开展了这方面的研究,设计了蚁群路由算法( Ant Colony Routing, ACR )。 每只蚂蚁就像蚁群优化算法中一样,根据它在网络上的经验与性能,动态更新路由表项。如果一只蚂蚁因为经过了网络中堵塞的路由而导致了比较大的延迟,那么就对该表项做较大的增强。同时根据信息素挥发机制实现系统的信息更新,从而抛弃过期的路由信息。这样,在当前最优路由出现拥堵现象时, ACR 算法就能迅速的搜寻另一条可替代的最优路径,从而提高网络的均衡性、负荷量和利用率。目前这方面的应用研究仍在升温,因为通信网络的分布式信息结构、非稳定随机动态特性以及网络状态的异步演化与 ACO 的算法本质和特性非常相似。

Page 48: 算法设计与分析 第七章补充材料  蚁群算法介绍

48

2.1.5 蚁群优化算法应用现状 3/5

基于群智能的聚类算法起源于对蚁群蚁卵的分类研究。Lumer和 Faieta将 Deneubourg 提出将蚁巢分类模型应用于数据聚类分析。其基本思想是将待聚类数据随机地散布到一个二维平面内,然后将虚拟蚂蚁分布到这个空间内,并以随机方式移动,当一只蚂蚁遇到一个待聚类数据时即将之拾起并继续随机运动,若运动路径附近的数据与背负的数据相似性高于设置的标准则将其放置在该位置,然后继续移动,重复上述数据搬运过程。按照这样的方法可实现对相似数据的聚类。

Page 49: 算法设计与分析 第七章补充材料  蚁群算法介绍

49

2.1.5 蚁群优化算法应用现状 4/5

ACO还在许多经典组合优化问题中获得了成功的应用,如二次规划问题( QAP )、机器人路径规划、作业流程规划、图着色( Graph Coloring )等问题。 经过多年的发展, ACO已成为能够有效解决实际二次规划问题的几种重要算法之一。 AS在作业流程计划( Job-shop Scheduling )问题中的应用实例已经出现,这说明了 AS在此领域的应用潜力。利用 MAX-MIN AS 解决 PAQ也取得了比较理想的效果,并通过实验中的计算数据证明采用该方法处理 PAQ比较早的SA 算法更好,且与禁忌搜索算法性能相当。利用ACO 实现对生产流程和特料管理的综合优化,并通过与遗传、模拟退火和禁忌搜索算法的比较证明了 ACO的工程应用价值。

Page 50: 算法设计与分析 第七章补充材料  蚁群算法介绍

50

2.1.5 蚁群优化算法应用现状 5/5

许多研究者将 ACO 用于了武器攻击目标分配和优化问题、车辆运行路径规划、区域性无线电频率自动分配、 Bayesian networks 的训练和集合覆盖等应用优化问题。 Costa和Herz还提出了一种 AS在规划问题方面的扩展应用——图着色问题,并取得了可与其他启发式算法相比的效果。

Page 51: 算法设计与分析 第七章补充材料  蚁群算法介绍

51

2.2 蚁群优化算法概念2.2.1 蚁群算法原理2.2.2 简化的蚂蚁寻食过程2.2.3 自然蚁群与人工蚁群算法2.2.4 蚁群算法与 TSP 问题2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS )2.2.6 一般蚁群算法的框架

Page 52: 算法设计与分析 第七章补充材料  蚁群算法介绍

52

2.2.1 蚁群算法原理 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为外激素 (pheromone) 的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。 为了说明蚁群算法的原理,先简要介绍一下蚂蚁搜寻食物的具体过程。在蚁群寻找食物时,它们总能找到一条从食物到巢穴之间的最优路径。这是因为蚂蚁在寻找路径时会在路径上释放出一种特殊的信息素。当它们碰到一个还没有走过的路口时.就随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长,释放的激索浓度越低 .当后来的蚂蚁再次碰到这个路口的时候.选择激素浓度较高路径概率就会相对较大。这样形成一个正反馈。最优路径上的激索浓度越来越大.而其它的路径上激素浓度却会随着时间的流逝而消减。最终整个蚁群会找出最优路径。

Page 53: 算法设计与分析 第七章补充材料  蚁群算法介绍

53

2.2.2 简化的蚂蚁寻食过程 1/3

蚂蚁从 A 点出发,速度相同,食物在 D 点,可能随机选择路线ABD或 ACD 。假设初始时每条分配路线一只蚂蚁,每个时间单位行走一步,本图为经过 9 个时间单位时的情形:走 ABD 的蚂蚁到达终点,而走 ACD 的蚂蚁刚好走到 C 点,为一半路程。

Page 54: 算法设计与分析 第七章补充材料  蚁群算法介绍

54

2.2.2 简化的蚂蚁寻食过程 2/3

本图为从开始算起,经过 18个时间单位时的情形:走 ABD 的蚂蚁到达终点后得到食物又返回了起点 A ,而走 ACD 的蚂蚁刚好走到 D 点。

Page 55: 算法设计与分析 第七章补充材料  蚁群算法介绍

55

2.2.2 简化的蚂蚁寻食过程 3/3 假设蚂蚁每经过一处所留下的信息素为一个单位,则经过 36个时间单位后,所有开始一起出发的蚂蚁都经过不同路径从 D 点取得了食物,此时 ABD的路线往返了 2 趟,每一处的信息素为 4 个单位,而 ACD 的路线往返了一趟,每一处的信息素为 2 个单位,其比值为 2 : 1 。 寻找食物的过程继续进行,则按信息素的指导,蚁群在 ABD路线上增派一只蚂蚁(共 2 只),而 ACD路线上仍然为一只蚂蚁。再经过 36个时间单位后,两条线路上的信息素单位积累为 12和 4 ,比值为 3 : 1 。 若按以上规则继续,蚁群在 ABD路线上再增派一只蚂蚁(共 3 只),而

ACD路线上仍然为一只蚂蚁。再经过 36个时间单位后,两条线路上的信息素单位积累为 24和 6 ,比值为 4 : 1 。 若继续进行,则按信息素的指导,最终所有的蚂蚁会放弃 ACD路线,而都选择 ABD路线。这也就是前面所提到的正反馈效应。

Page 56: 算法设计与分析 第七章补充材料  蚁群算法介绍

56

2.2.3 自然蚁群与人工蚁群算法 基于以上蚁群寻找食物时的最优路径选择问题,可以构造人工蚁群,来解决最优化问题,如 TSP 问题。 人工蚁群中把具有简单功能的工作单元看作蚂蚁。二者的相似之处在于都是优先选择信息素浓度大的路径。较短路径的信息素浓度高,所以能够最终被所有蚂蚁选择,也就是最终的优化结果。 两者的区别在于人工蚁群有一定的记忆能力,能够记忆已经访问过的节点。同时,人工蚁群再选择下一条路径的时候是按一定算法规律有意识地寻找最短路径,而不是盲目的。例如在 TSP 问题中,可以预先知道当前城市到下一个目的地的距离。

Page 57: 算法设计与分析 第七章补充材料  蚁群算法介绍

57

2.2.4 蚁群算法与 TSP 问题 1/3TSP 问题表示为一个 N个城市的有向图 G=( N, A ),其中

城市之间距离

目标函数为 ,

其中 为城市 1,2,… n的一个排列, 。

}, |j), {(iA n}{1,2,...,N Nji

nnijd )(

n

lii ll

dwf1

1)(

),,,( 21 niiiw 11 iin

Page 58: 算法设计与分析 第七章补充材料  蚁群算法介绍

58

2.2.4 蚁群算法与 TSP 问题 2/3 TSP 问题的人工蚁群算法中,假设m只蚂蚁在图的相邻节点间移动,从而协作异步地得到问题的解。每只蚂蚁的一步转移概率由图中的每条边上的两类参数决定: 1 信息素值 也称信息素痕迹。 2 可见度,即先验值。 信息素的更新方式有 2 种,一是挥发,也就是所有路径上的信息素以一定的比率进行减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好” (有蚂蚁走过 ) 的边增加信息素。

Page 59: 算法设计与分析 第七章补充材料  蚁群算法介绍

59

2.2.4 蚁群算法与 TSP 问题 3/3 蚂蚁向下一个目标的运动是通过一个随机原则来实现的,也就是运用当前所在节点存储的信息,计算出下一步可达节点的概率,并按此概率实现一步移动,逐此往复,越来越接近最优解。 蚂蚁在寻找过程中,或者找到一个解后,会评估该解或解的一部分的优化程度,并把评价信息保存在相关连接的信息素中。

Page 60: 算法设计与分析 第七章补充材料  蚁群算法介绍

60

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 1/12初始的蚁群算法是基于图的蚁群算法, graph-based ant system,简称为 GBAS ,是由 Gutjahr W J在2000 年的 Future Generation Computing Systems 提出的,课本的参考文献 2 。算法步骤如下:STEP 0 对 n 个城市的 TSP 问题,城市间的距离矩阵为 ,给 TSP图中的每一条弧 赋信息素初值 ,假设m只蚂蚁在工作,所有蚂蚁都从同一城市 出发。当前最好解是。

}, |j), {(iA n}{1,2,...,N Nji

nnijd )(),( ji ||

1)0( Aij

0i),,2,1( nw

Page 61: 算法设计与分析 第七章补充材料  蚁群算法介绍

61

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 2/12STEP 1 (外循环)如果满足算法的停止规则,则停止计算并输出计算得到的最好解。否则使蚂蚁 s从起点 出发,用 表示蚂蚁 s行走的城市集合,初始 为空集, 。STEP 2 ( 内循环 ) 按蚂蚁 的顺序分别计算。当蚂蚁在城市 i,若 完成第 s只蚂蚁的计算。否则,若

,则以概率 ,到达 j, ;若则到达 重复 STEP 2 。

0i )(sL)(sL ms 1

1 s m ( ) { | ( , ) , ( )}L s N l i l A l L s 或

0( ) { | ( , ) , ( )} { }L s N T l i l A l L s i 且( 1)

,( 1)

ijij

ijl T

kp j T

k

0,ijp j T

( ) ( ) { }, :L s L s j i j 0( ) { | ( , ) , ( )} { }L s N T l i l A l L s i 且

0 0 0, ( ) ( ) { }, : ;i L s L s i i i

Page 62: 算法设计与分析 第七章补充材料  蚁群算法介绍

62

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 3/12STRP 3 对 ,若 ,按 中城市的顺序计算路径程度;若 ,路径长度置为一个无穷大值(即不可达)。比较m只蚂蚁中的路径长度,记走最短路径的蚂蚁为 t。若 ,则 。用如下公式对W 路径上的信息素痕迹加强,对其他路径上的信息素进行挥发。

得到新的 ,重复步骤 STEP 1 。

1 s m ( )L s N ( )L s( )L s N

( ( )) ( ( ))f L t f L W ( )W L t

( ), : 1ij k k k

11

1

( ) (1 ) ( 1) ( , )

( ) (1 ) ( 1) ( , )

kij k ij

ij k ij

k k i j WW

k k i j W

为 上的一条弧

不是 上的一条弧

Page 63: 算法设计与分析 第七章补充材料  蚁群算法介绍

63

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 4/12在 STEP 3 中,挥发因子 对于一个固定的 ,满足

并且

经过 k次挥发,非最优路径的信息素逐渐减少至消失。

k

ln1 ,ln( 1)k

k k Kk

1K

1k

k

Page 64: 算法设计与分析 第七章补充材料  蚁群算法介绍

64

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 5/12 以上算法中,在蚂蚁的搜寻过程中,以信息素的概率分布来决定从城市i到城市 j的转移。 算法中包括信息素更新的过程 1 信息素挥发( evaporation ) 信息素痕迹的挥发过程是每个连接上的信息素痕迹的浓度自动逐渐减弱的过程,由 表示,这个挥发过程主要用于避免算法过快地向局部最优区域集中,有助于搜索区域的扩展。 2 信息素增强( reinforcement )增强过程是蚁群优化算法中可选的部分,称为离线更新方式(还有在线更新方式)。这种方式可以实现由单个蚂蚁无法实现的集中行动。也就是说,增强过程体现在观察蚁群(m只蚂蚁)中每只蚂蚁所找到的路径,并选择其中最优路径上的弧进行信息素的增强,挥发过程是所有弧都进行的,不于蚂蚁数量相关。这种增强过程中进行的信息素更新称为离线的信息素更新。 在 STEP 3 中,蚁群永远记忆到目前为止的最优解。

(1 ) ( )k ij k

Page 65: 算法设计与分析 第七章补充材料  蚁群算法介绍

65

图的蚁群系统( GBAS ) 6/12可以验证,下式满足:

即 是一个随机矩阵。( )k

( , )

( ) 1, 0iji j A

k k

四个城市的非对称 TSP 问题,距离矩阵和城市图示如下:0 1 0.5 11 0 1 1

( )1.5 5 0 11 1 1 0

ijD d

Page 66: 算法设计与分析 第七章补充材料  蚁群算法介绍

66

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 7/12假设共 4 只蚂蚁,所有蚂蚁都从城市A 出发,挥发因子 。此时,观察 GBAS 的计算过程。 矩阵共有 12条弧,初始信息素记忆矩阵为:

1 , 1,2,32k k

0 1 12 1 12 1 121 12 0 1 12 1 12

(0) ( (0))1 12 1 12 0 1 121 12 1 12 1 12 0

ij

Page 67: 算法设计与分析 第七章补充材料  蚁群算法介绍

67

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 8/12执行 GBAS 算法的步骤 2 ,假设蚂蚁的行走路线分别为:

当前最优解为,这个解是截止到当前的最优解,碰巧是实际最优解

1: , ( 1) 4;2 : , ( 2) 3.5;3 : , ( 3) 8;4 : , ( 4) 4.5;

W A B C D A f WW A C D B A f WW A D C B A f WW A B D C A f W

第一只第二只第三只第四只

Page 68: 算法设计与分析 第七章补充材料  蚁群算法介绍

68

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 9/12按算法步骤 3 的信息素更新规则,得到更新矩阵

这是第一次外循环结束的状态。

0 1 24 1 6 1 241 6 0 1 24 1 24

(1) ( (1))1 24 1 12 0 1 61 24 1 6 1 24 0

ij

Page 69: 算法设计与分析 第七章补充材料  蚁群算法介绍

69

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 10/12重复外循环,由于上一次得到的 W2已经是全局最优解,因此按算法步骤 3 的信息素更新规则,无论蚂蚁如何行走,都只是对 W2路线上的城市信息素进行增强,其他的城市信息素进行挥发。得到更新矩阵

这是第一次外循环结束的状态。

0 1 48 5 24 1 485 24 0 1 48 1 48

(2) ( (2))1 48 1 48 0 5 241 48 5 24 1 48 0

ij

Page 70: 算法设计与分析 第七章补充材料  蚁群算法介绍

70

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 11/12

重复外循环,由于W2全局最优解, GBAS只记录第一个最优解,因此一但得到了全局最优解,信息素的更新将不再依赖于以群的行走路线,而只是不断增强最优路线的信息素,同时进行挥发。第三次外循环后得到的信息素矩阵为: 0 1 96 11 48 1 9611 48 0 1 96 1 96

(3) ( (3))1 96 1 96 0 11 481 96 11 48 1 96 0

ij

Page 71: 算法设计与分析 第七章补充材料  蚁群算法介绍

71

2.2.5 初始的蚁群优化算法—基于图的蚁群系统( GBAS ) 12/12 蚂蚁以一定的概率从城市 i到城市 j进行转移,信息素的更新在 STEP 3 完成,并随 K而变化。假设第 K次外循环后得到信息素矩阵 ,得到当前最优解 。第 K次循环前的信息素和最优解为 ,经过第 K次外循环后,得到 。由于蚂蚁的一步转移概率是随机的,从 到 也是随机的,是一个马尔可夫过程。

( ) ( ( ) | ( , ) )ijk k i j A ( )W k ( 1), ( 1)k W k

( ), ( )k W k ( 1), ( 1)k W k ( ), ( )k W k

Page 72: 算法设计与分析 第七章补充材料  蚁群算法介绍

72

2.2.6 一般蚁群算法的框架一般蚁群算法的框架和 GBAS 基本相同,有三个组成部分: 蚁群的活动; 信息素的挥发; 信息素的增强;主要体现在前面的算法中步骤 2 和步骤 3 中的转移概率公式和信息素更新公式。

Page 73: 算法设计与分析 第七章补充材料  蚁群算法介绍

73

2.3 蚁群优化算法—算法模型和收敛性分析2.3.0 马氏过程的收敛定义2.3.1 GBAS 算法的收敛性分析2.3.2其他算法及收敛性分析

Page 74: 算法设计与分析 第七章补充材料  蚁群算法介绍

74

2.3.0 马氏过程的收敛定义 蚁群优化算法的每步迭代对应随机变量 其中 为信息素痕迹; 为 n 城市的一个排列,最多有 个状态。第 s只蚂蚁在第 k 轮转移只由 决定,这个蚂蚁行走的路径和 一起,共同决定了 ,再通过信息素的更新原则可以进一步得到 。 的变化仅由 决定,而与先前的状态无关,这是一个典型的马尔可夫过程。 定义:若一个马尔可夫过程 ,对任意给定的 满足 则称马尔可夫过程 依概率 1 收敛到 。

( ( ), ( )), 0,1,...,kX k W k k ( )k ( )W k !n

( 1)k ( 1)W k

( )W k ( )k 1kX

kX

, 0,1,...kX k 0

*X , 0,1, 2,...kX k

*lim 1kkp X X

Page 75: 算法设计与分析 第七章补充材料  蚁群算法介绍

75

2.3.1 GBAS 算法的收敛性分析 1/8 定理 满足指定条件的马尔可夫过程 依概率 1 收敛到 , 其中 为一条最优路径 , 定义为 :

证明分析 : 蚁群算法中 ,一但达到全局最优 , 由 只记录第一个最优解 . 证明分三部分 : 证明以概率 1 达到一个最优路径 证明 (1) 上式成立 证明以概率 1 收敛到一个最优路径

( ( ), ( )), 0,1,...,kX k W k k

* * *( , )X W*W *

* *

1, ( , )

0(1)ij W i j W

为 的一条弧其他

f (L(t))<f (w)

Page 76: 算法设计与分析 第七章补充材料  蚁群算法介绍

76

2.3.1 GBAS 算法的收敛性分析 2/8证明以概率 1 到达一个最优路径 对于最优路径 ,令 为蚁群中的一个蚂蚁在第 k次外循环后第一次走到最优路径 的事件 . 表示仅第 k次外循环没有走到 的事件 , 但前 k-1 次可能走到过这条最优路径 . 永远不会被走到的事件为 , 其概率为 :

*W kF

*W kF

*W

*W

1 2F F 1 2

*

1

*

1

( )

|

{ } )

{

(2

}k

k

P F F

P k W

P k W

*i <k W第 次循环蚁群没有走到 第 次循环蚁群没有走到

前 次循环蚁群没有走到

Page 77: 算法设计与分析 第七章补充材料  蚁群算法介绍

77

2.3.1 GBAS 算法的收敛性分析 3/8

任意给定的固定弧 (i,j),在第 k次循环后 , 其信息素值的下界可以计算出 .1

1

1 1

1

1

1

1

1

( ) (1 ) (1)

ln(1 ) (1)ln( 1)

ln(1 ) (1)ln

1 (1 ) ln (1) (3)ln

i j

k

ij ll

K k

l ijl l K

K

l ijl

K

l ijl

k

ll

Kk

Kk

Page 78: 算法设计与分析 第七章补充材料  蚁群算法介绍

78

2.3.1 GBAS 算法的收敛性分析 4/8

令 , 任何一个固定节点最多有 (n-1) 后续节点 ,并且其弧上的信息素值都小于 1 或者等于 1.得 :

蚁群中的一只蚂蚁在第 次循环走到路径 W* 的概率为

一个蚁群中至少有一只蚂蚁,因此这是一个蚁群到达最优路径的一个下界 . 上式右侧与 k无关 ,

1

1

(1 ) ln (1)K

l ijl

K

,( 1) lnijp k Kn k

k(k K)

*

( , ) *

( ) ( )(

(4)1) ln

Wij

i j W

p kn k

Page 79: 算法设计与分析 第七章补充材料  蚁群算法介绍

79

2.3.1 GBAS 算法的收敛性分析 5/8

取对数有从而得到

**

( , *)

{ } 1 ( ) 1 ( )( 1) ln

wij

i j W

P k W p kn k

前 次循环蚁群没有走到

*

1

*

{ }

(1 ( ) )( 1) ln

(2)

(5)

k

w

k K

P k W

n k

前 次循环蚁群没有走到

* *ln(1 ( ) ) ( )( 1) ln ( 1) ln

w w

k K k Kn k n k

1 2( ) 1P F F

Page 80: 算法设计与分析 第七章补充材料  蚁群算法介绍

80

2.3.1 GBAS 算法的收敛性分析 6/8

证明右式成立 随机过程 以概率 1 达到一条最优路径 .当某条最优路径 Z 在第 k次循环被首次走到后 , 在第 k+1轮循环按信息素的更新原则 ,可以用归纳法证明 ,对于任意

* *

1, ( , )

0ij W i j W

为 的一条弧其他

(i,j) W*,r=1,2,....

1 11

0 1

1( ) (1 ) ( ) (1 )*

(6)K r rr

ij l ij K lll K q l

K r K K qW

Page 81: 算法设计与分析 第七章补充材料  蚁群算法介绍

81

2.3.1 GBAS 算法的收敛性分析 7/8

由于级数 是发散的 ,可知 . 因此 ,当 时 , 在第 K 轮迭代之后 , 该弧永远不再被加强 ,从而有

也既 弧上的信息素之和将趋于 0.对于信息素的更新公式 (2),可以归纳证明(6) 式的第二项与 (i,j)弧无关 ,结合 (7) 式可得 的极限存在 ,且所有的极限之和为 1. 对于所有的

l1

(1 ) 0ll

1

( ) (1 ) ( 0 7)) (K r

ij l ijl K

K r K

( , ) *i j W

( , ) *i j W

( , )

( ) 1,iji j A

k k

成立

( , ) *i j W

1lim ( ) lim ( * (8, *)*

)ij lr lK r X W

W

,即可得

Page 82: 算法设计与分析 第七章补充材料  蚁群算法介绍

82

2.3.1 GBAS 算法的收敛性分析 8/8

结合前两部分讨论 ,当 Xn 首次到达最优路径后 ,对于任何最优路径上的弧 ,(1) 式的转移概率

,即 依概率 1 收敛到 .

( ) 1ijp l { ( ( ), ( )), 0,1,...,}kX k W k k

* * *( , )X W

Page 83: 算法设计与分析 第七章补充材料  蚁群算法介绍

83

2.3.2 其他算法及收敛性分析 1/4 MAX-MIN 蚁群优化算法指定挥发系数不随时间变化 , 这是和 GBAS算法不同的一点 , 改变了信息素挥发和增强的规则 (9 式 ) ,同时给出一个下界 控制信息素的挥发 .

定理 在MAX-MIN 算法中 ,

min ( 1)k

min

max{(1 ) ( 1) , ( 1)} ( , )( )

max{(1 ) ( 1), ( 1)}

,0 1, ( 1)

ij ijij

ij ij

k W k i j Wk

k k

k

其他

其中 为实数。 9( )

min( ) , 1ln( 1)

lim 0

k

kk

ck kk

c

令:

5. 2. 1其中 ,则定理 的结论也成立。

Page 84: 算法设计与分析 第七章补充材料  蚁群算法介绍

84

2.3.2 其他算法及收敛性分析 2/4

ij

( 1)( 1)p

0

( 1) { ( 1) | ( , ) }

( 1) ( 1)

1

.

ij

ill T

i ij

ij ij

a kj T

a k

j T

A k a k i j A

k k

i i j

式蚂蚁转移概率更一般的规则由存储在每个节点的路由表数据结构

A ={a | (i , j ) A}决定,即转移概率为

T i其中, 取决于三部分因素, 是从 可以直

接到达的节点结合。第一部分为每个节点的信息素 痕迹和预见度

第二部分为每

()

个蚂蚁自 .身的记忆表中存储的历史信息.第三部分为问题的约束条件

Page 85: 算法设计与分析 第七章补充材料  蚁群算法介绍

85

2.3.2 其他算法及收敛性分析 3/4

( 1) ( 1)( 1) ( 1)( 1)

0

1( 1) , .

ij ij

il ill T

ijij

k kj T

k kk

j T

TSP k d

i j

常见的路由表信息由下式求得:

a

其中, 为残留信息的相对重要程度, 为预见值的相对重要程度。和 体现了相关信息痕迹和预见度对蚂蚁决策的相对影响。

问题中 为先验知识

Page 86: 算法设计与分析 第七章补充材料  蚁群算法介绍

86

2.3.2 其他算法及收敛性分析 4/4( 1) 1 .

,

( ) ( 1) ( )

: (1 ) ( )

, (0,1)

ij

ij ij ij

ij

k k i j

k k k

k

i j

信息素痕迹 为 时刻连接城市和的路径上的信息残留浓度

为避免过多的残留信息会淹没全局最优解需要在每只蚂蚁完成一次, , . ( i , j )循环后对残留信息进行更新 削弱旧信息 增强新信息 记 弧上的

k-1 (k-1),信息素在第 个循环的变化为 则保留的信息素为

然后进行信息素的挥发

.其中 为信息素的衰退系数

Page 87: 算法设计与分析 第七章补充材料  蚁群算法介绍

87

2.4 蚁群优化算法—技术问题4.1 解的表达形式与算法的实现4.2 每一节点的记忆信息和系数的确定4.3 蚁群的规模和停止规则4.4 信息素的更改

Page 88: 算法设计与分析 第七章补充材料  蚁群算法介绍

88

2.4.1 解的表达形式与算法的实现 1/4 ---- 解的表达形式

解的表达形式 基于 TSP 问题的蚁群优化算法,其解的形式是所有城市的一个排列(闭圈,这种情况下谁在第一并不重要),信息素痕迹按每个弧记录。而对于一般以顺序作为解的优化问题,谁在第一是很重要的。蚁群算法在解决这类问题时,只需要建立一个虚拟的始终点,就可以把 TSP 问题的解法推广,用于诸多的优化问题。 诸如车间作业及下料等问题,他们的共同特点是解以一个顺序表示。 TSP 问题寻找的是最短回路,而一般优化问题中, STEP 3 中的判断条件 需要根据实际问题进行修改。( )L s N

Page 89: 算法设计与分析 第七章补充材料  蚁群算法介绍

89

2.4.1 解的表达形式与算法的实现 2/4 ---- 算法的实现

例: 0-1 背包问题的解顺序表达形式与算法实现。设有一个容积为 b的背包, n 个尺寸分别为 ,价值分别为 的物品, 0-1 背包问题的数学模型为:

假设其解的顺序表达形式为        ,其中   为      的一个排列。

( 1,2,..., )ia i n ( 1,2,..., )ic i n

1

1

max

. .

0,1 , 1,....,

n

i ii

n

i ii

i

c x

s t a x b

x j n

1 20, , ,..., ni i i 1 2, ,..., ni i i 1,2,3,..., n

Page 90: 算法设计与分析 第七章补充材料  蚁群算法介绍

90

2.4.1 解的表达形式与算法的实现 3/4 ---- 算法的实现

建立有向图 ,其中 A 中共有 条弧。初始信息素痕迹定义为 。设第 s只蚂蚁第 k 步所走的路线为 ,表示蚂蚁从 0 点出发,顺序到达 。第 步按 TSP 算法的转移概率公式行走选择 。若 则 ,否则,此蚂蚁不再继续行走,退回起点。

( , )G V A 0,1,2,...., , {( , ) | , }V n A i j i j V ( 1)n n 1 ( 1)ij n n

1 2( ) (0, , ,...., )kL s i i i

1 2, ,...., ki i i 1k

1ki

1

1j

k

ij

a b

1 2 1( ) (0, , ,...., , )k kL s i i i i

Page 91: 算法设计与分析 第七章补充材料  蚁群算法介绍

91

2.4.1 解的表达形式与算法的实现4/4 ---- 算法的实现

对蚁群重复以上过程,比较m只蚂蚁的装包值 并记忆具有最大装包值的蚂蚁为 t。把 GBAS 算法中步骤 3 中的改为 ,若满足此条件则替换当前最好解为 ,对W 上的弧进行信息素的加强,其他弧进行信息素的挥发。 算法中记录了三个信息:信息素痕迹 ;行走路线 ;和问题的约束条件 ,以确定是否将 加入。

( )0

, 1, 2,...,ii L s

i

c s m

( ( )) ( )f L t f w

( ( )) ( )f L t f w : ( )W L t

ij

1 2 1( ) (0, , ,...., , )k kL s i i i i 1

1j

k

ij

a b

1ki

Page 92: 算法设计与分析 第七章补充材料  蚁群算法介绍

92

2.4.2 每一节点的记忆信息和系数的确定 ----需要记忆的信息 1/3算法中需要记忆的信息有三部分。第一部分信息是存在每个节点的路由表数据结构 ,由此决定的的转移概率为

其中 T可以看成节点 i的邻域。

| ( , )i ijA a i j A

( 1) { ( 1) | ( , ) }i ijA k a k i j A

( 1)( 1) ,

0

ij

ili j l T

a kj Ta kP

j T

( 1) ( 1)( 1) ( 1)( 1) ,

0

ij ij

il ilijl T

k kk ka k j T

j T

Page 93: 算法设计与分析 第七章补充材料  蚁群算法介绍

93

2.4.2 每一节点的记忆信息和系数的确定 ----需要记忆的信息 2/3 第二部分需要记忆的信息是每个蚂蚁的记忆表中存储着的自身的历史信息,这一部分主要由算法的中的 记忆,表示蚂蚁已经行走过的节点。

第三部分为问题的约束条件。在 GBAS 中, T集合表示满足约束条件的候选集,在背包问题的蚁群算法中由判别条件 , 来实现记 忆功能。

( )L s

1

1j

k

ij

a b

1 2 1( ) (0, , ,...., , )k kL s i i i i

Page 94: 算法设计与分析 第七章补充材料  蚁群算法介绍

94

2.4.2 每一节点的记忆信息和系数的确定 ---- 系数的确定 3/3 残留信息的相对重要程度 和预见值的相对重要程度 体现了相关信息痕迹和预见度对蚂蚁决策的相对影响。 Dorigo在求解 TSP 问题时,推荐参数的最佳设置为:

1, 5, 0.5

Page 95: 算法设计与分析 第七章补充材料  蚁群算法介绍

95

2.4.3 蚁群的规模和停止规则一、蚁群大小 一般情况下蚁群中蚂蚁的个数不超过 TSP图中节点的个数。二、终止条件 1 给定一个外循环的最大数目,表明已经有足够的蚂蚁工作; 2 当前最优解连续 K次相同而停止,其中 K是一个给定的整数,表示算法已经收敛,不再需要继续; 3 目标值控制规则,给定优化问题(目标最小化)的一个下界和一个误差值,当算法得到的目标值同下界之差小于给定的误差值时,算法终止。

Page 96: 算法设计与分析 第七章补充材料  蚁群算法介绍

96

2.4.4 信息素的更改 1/6 信息素的更新分为离线和在线两种方式。离线方式(同步更新方式)的主要思想是在若干只蚂蚁完成n个城市的访问后,统一对残留信息进行更新处理。 信息素的在线更新(异步更新方式)即蚂蚁每行走一步,立即回溯并且更新行走路径上的信息素。

Page 97: 算法设计与分析 第七章补充材料  蚁群算法介绍

97

2.4.4 信息素的更改 2/6 离线方式的信息素更新可以进一步分为单蚂蚁离线更新和蚁群离线更新。 蚁群离线更新方式是在蚁群中的m只蚂蚁全部完成n城市的访问(第 k-1 次蚁群循环)后,统一对残留信息进行更新处理。

其中, 为第 k-1 次循环后的的信息素的痕迹值。 单蚂蚁离线更新是在第 s只蚂蚁完成对所有n个城市的访问后,进行路径回溯,更新行走路径上的信息素,同时释放分配给它的资源。更新公式为

第 s+1只蚂蚁根据 重新计算路由表。

( ) ( 1) ( 1)ij ij ijk k k ( )ij k

( 1) ( ) ( )ij ij ijs s s ( 1)ij s

Page 98: 算法设计与分析 第七章补充材料  蚁群算法介绍

98

2.4.4 信息素的更改 3/6TSP 问题中,蚁群优化算法根据信息素痕迹更新方式不同可以分为不同的算法,采用离线方式,并且

时,其中W 为 t 循环中m只蚂蚁所行走的最佳路线或第 t只蚂蚁所行走的一条路径。 Q为一个常数,该算法名为蚁环算法( ant-cycle algotithm) ,特点是行走的路径越短对应保存的信息素的值就越大。

( 1) ( )i j i jk s 或 为

( ) , ( , )( , )0

i j

QWt i j W

i j W

Page 99: 算法设计与分析 第七章补充材料  蚁群算法介绍

99

2.4.4 信息素的更改 4/6 GBAS 算法是典型的离线信息素更新方式。该算法中,蚁群中蚂蚁的先后出行顺序没有相关性,但是每次循环需要记忆m只蚂蚁的行走路径,以进行比较选择最优路径。相对而言,单蚂蚁离线更新方式记忆信息少,只需要记忆第 s只蚂蚁的路径,并通过信息素更新后,释放该蚂蚁的所有记录信息。实际上这种方式等价于蚁群离线方式中只有一只蚂蚁。

Page 100: 算法设计与分析 第七章补充材料  蚁群算法介绍

100

2.4.4 信息素的更改 5/6 与单蚂蚁离线更新方式相比,信息量记忆更小的是信息素在线更新方式,即蚂蚁每走一步,马上回溯并且更新刚刚走过的路径上的信息素,其规则为

其中, k为蚂蚁行走的第 k 步。( 1) ( ) ( )ij ij ijk k k

Page 101: 算法设计与分析 第七章补充材料  蚁群算法介绍

101

2.4.4 信息素的更改 6/6 蚁量算法( ant-quantity algorithm )的信息素更新为 ,Q 为常量, 表示 i到 j的距离,这样信息浓度会随城市距离的减小而加大。蚁密算法( ant-density algorithm )信息素更新为 。 以上三种算法中,蚁环算法效果最好,因为他用的是全局信息,而其余两种算法用的是局部信息。蚁环离线更新方法很好地保证了残留信息不至于无限积累,非最优路径会逐渐随时间推移被忘记。

( )iji j

Qkd

ijd

( )ij k Q

Page 102: 算法设计与分析 第七章补充材料  蚁群算法介绍

102

2.5 应用 1/52.5.1 光网络的智能管理 分布式动态选路及波长分配 ( RWA , Routing and

Wavelength Assignment ) 是指在实时业务情况下光通路的路由选择和波长分配的优化问题 , 是实现自动交换光网络 (ASON ,Automatically Switched Optical Network) 的关键技术之一。研究 RWA 问题的目的是尽可能减少所需要的波长数和降低光路连接请求的阻塞率。由于 RWA 问题是 NP-C 问题 ,文献中大多将 RWA 问题拆分成路由和波长分配两个子问题分别加以解决。但是 , 由于 RWA 问题本身是一个不可分割的整体 ,把 RWA 分开考虑必然造成难以得到全局最优解的后果。

Page 103: 算法设计与分析 第七章补充材料  蚁群算法介绍

103

2.5 应用 2/5 同时 ,分布式的计算方式则克服了传统集中式算法可扩展性差的缺点 , 更适应现代频繁变化的大型光网络。因此 ,近年来国内外对RWA 并行的分布式算法表现出极大的兴趣 ,此类算法建立的基础是分层图模型 。  用蚁群算法在分层图模型的基础上求解动态 RWA 问题。基于蚂蚁“信息素表”来完成局部信息的刷新计算。以分布的形式做少量的计算来刷新全局路由选择信息。

参考文献: 基于蚁群系统的分布式 RWA 算法研究 孙海金 , 朱 娜 , 周乃富 2005 年 第 2 期 光通信研究

Page 104: 算法设计与分析 第七章补充材料  蚁群算法介绍

104

2.5应用 3/52.5.2 蚁群算法用于计算机网络路由参考文献:计算机网络中的组播路由算法 谢银祥

Page 105: 算法设计与分析 第七章补充材料  蚁群算法介绍

105

2.5 应用 4/5

Page 106: 算法设计与分析 第七章补充材料  蚁群算法介绍

106

2.5应用 5/52.5.3 蚁群算法用于聚类(蚁群蚁卵分类) 思想:把待聚类的数据随机散布在一个平面上,放置若干只虚拟蚂蚁使其在平面上随机运动。当一只蚂蚁遇到一个数据时即拾起并继续行走,在行走过程中,如果遇到附近的数据与背负的数据相似性高于设置的标准时则将数据放置在该位置,继续移动。重复以上过程即可实现数据聚类。

Page 107: 算法设计与分析 第七章补充材料  蚁群算法介绍

107

2.6 蚁群优化算法—参考书 1 智能蚁群算法及应用 吴启迪 上海科技出版社从基本结构、算法特点、改进方法、突破途径、实现模式及应用模式等方面进行了论述。主要内容有蚁群算法的由来、研究成果、应用综述、算法的具体描述及改进、算法的典型优化问题求解模式、算法的典型应用及拓展应用。

Page 108: 算法设计与分析 第七章补充材料  蚁群算法介绍

108

2.6 蚁群优化算法—参考书 2 蚁群算法及其应用 李士勇 哈工大出版社 国内首部蚁群算法的专著,系统地阐述蚁群算法的基本原理、基本蚁群算法及改进算法,蚁群算法与遗传、免疫算法的融合,自适应蚁群算法,并行蚁群算法,蚁群算法的收敛性与理论模型及其在优化问题中的应用。本书可供人工智能、计算机科学、信息科学、控制工程、管理工程、交通工程、网络工程、智能优化算法及智能自动化等领域的广大师生和科技人员学习及参考。

Page 109: 算法设计与分析 第七章补充材料  蚁群算法介绍

109

2.6 蚁群优化算法—参考文献 题目:群智能理论及应用 电子学报, 2003 年 S1期【作者】彭喜元 彭宇 戴毓丰

【关键词】群智能 微粒群算法 蚁群算法 优化算法

Page 110: 算法设计与分析 第七章补充材料  蚁群算法介绍

110

That’s all . Thanks.

Thanks