第五章蚁群算法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x : 最优解,如果x F, f (x) minf (x) | x F.
8
10/11/201
1.1 组合优化问题 ₪ 例1 0-1背包问题(0-1 knapsack problem)
b :背包容积 ai : 第i件物品单位体积,i 1,, n. ci : 第i件物品单位价值,i 1,, n. 问题:如何以最大价值装包?
15
10/11/201
1.2 计算复杂性的概念
城市 24 25 26 27 28 数
计算 1 24 10 4.3 4.9 时间 sec sec min hour day
29 30 31
136.5 10.8 325 day year year
随城市增多,计算时间增加很快。 到31个城市时,要计算325年。
蚁群算法
Yuehui Chen School of Inform. Sci. and Eng. University of Jinan, 2009
10/11/2019
1
内容
一、启发式方法概述 二、蚁群优化算法
2
10/11/201
背景
₪ 传统实际问题的特点 连续性问题——主要以微积分为基础,且问题规模较小
9
10/11/201
1.1 组合优化问题
数学模型:
n
max ci xi i 1
(1.1)总价值
n
s.t. ai xi b, i 1
xi 0,1, i 1,, n.
(1.2)包容量限制 (1.3)决策变量
其中xi
1,装第i物品 0,不装第i物品
D 0,1n.
求和运算次数为:(n 1)!n n!;
枚举所有路径进行(n 1)!次比较可得最优路径,基本计算总次数为
总计算量:n! (n 1)!
20
10/11/201
1.2 计算复杂性的概念 ₪ 实例的输入长度:
设对i, j有dij K , 则 L n(n 1)(log( 2 K 1) 2) log( 2 n 1) 2
数学模型:
min f (x) s.t.g(x) 0,
x D.
目标函数 约束函数 有限点集, 决策变量
7
10/11/201
1.1 组合优化问题
组合优化问题的三参数表示:
(D, F, f ) D :决策变量定义域
F x | x D, g(x) 0,可行域,有限点集
f :目标函数 x F :可行解(点)
xib 0,第i物品不装在第b个箱子.
14
10/11/201
1.2 计算复杂性的概念
₪ 评价算法的好坏——计算时间的多少、解的偏离 程度
₪ 例 非对称距离TSP问题的算法实现:所有路径枚 举。 计算时间:n个城市,固定1个为起终点需要(n-1)! 个枚举,设计算机1秒能完成24个城市的枚举,则 城市数与计算时间的关系如下表:
对称距离TSP : dij d ji , i, j
非对称距离TSP : dij d ji , i, j
12
10/11/201
1.1 组合优化问题
例3 装箱问题(bin packing)
尺寸为1的箱子有若干个,怎样用最少的箱子
装下n个尺寸不超过1 的物品,物品集合
为:
。
{a1, a2 ,...an}
记x的输入规模(编码长度)为l(x),则 l(x) log2 (| x | 1) 2 其中2是考虑了1个符号位和1个数据分隔位。
19
10/11/201
1.2 计算复杂性的概念
₪ 算法计算量的度量之例——TSP枚举法
计算量的统计: 城市数n 第一城市为始终点,计算一条路径(1,i2, ,in,1)长度的基本运算 为两两城市间距离的n个数求和,共有(n 1)!条路径,
Swarm Intelligence) (6)其他算法:
多种启发式算法的集成.
30
10/11/201
1.3 启发式算法_性能分析
(1)最坏情形分析(worst case analysis) 利用最坏实例分析计算复杂性、解的效果。
(2)概率分析 (probabi最坏实例影响总体评价. 在实例数据服从一定概率分布情形下,研究算法复杂性和解的效果.
(1)对所有参数的一般性描述; (2)答案(或解)必须满足的性质。 ₪ 实例(instance):给问题的所有参数指定具体值,得到问题
的一个实例。这些具体值称为数据;这些数据输入计算机所 占的空间称为实例的长度(size).
17
10/11/201
1.2 计算复杂性的概念 一类最优化问题是由一些类似的具体问题(实例) 组成的,每一个具体问题可表达成二元组 (F,C).F为可行解集合;C是费用函数,是由F 到R(实数集)的映像。问题是在F中找到一个
10
10/11/201
1.1 组合优化问题 ₪ 例2 旅行商问题(TSP,traveling salesman
problem) 管梅谷教授1960年首先提出,国际上称之为中 国邮递员问题。 问题描述:一商人去n个城市销货,所有城市 走一遍再回到起点,使所走路程最短。
11
10/11/201
1.1 组合优化问题
5
10/11/201
1 现代优化计算方法概述
₪ 1.1 组合优化问题 ₪ 1.2 计算复杂性的概念 ₪ 1.3 启发式算法
6
10/11/201
1.1 组合优化问题
组合优化(combinatorial optimization): 解决离散问题的优化问题——运筹学分支。通过数学方法的研究 去寻找离散事件的最优编排、分组、次序或筛选等,可以涉及信 息技术、经济管理、工业工程、交通运输和通信网络等许多方面。
描述算法的好坏——计算复杂性——讨论计算时间与问题规 模之间的关系。以目前二进制计算机中的存储和计算为基础, 以理论的形式系统描述,是评估算法性能的基础。
16
10/11/201
1.2 计算复杂性的概念
₪ 问题(problem):要回答的一般性提问,通常含有若干个 满足一定条件的参数(或自由变量)。可以从两方面描述:
则二者关系表示为:CA (I ) O(g(l(I ))) g ( x)的性质决定了算法的性能。
22
10/11/201
1.2 计算复杂性的概念
定义 多项式算法 给定问题P,算法A,对一个实例I,存在多项式 函数g(x),使(XX )成立,称算法A对实例I是 多项式算法; 若存在多项式函数g(x),使(XX )对问题P的任 意实例I都成立,称算法A为解决该问题P的多项 式算法. 当g(x)为指数函数时,称A为P的指数时间算法。
缺乏规律性; (4)不同算法之间难以比较。
28
10/11/201
1.3 启发式算法_分类
(1)一步算法 (2)改进算法(迭代算法) (3)数学规划算法 (4)解空间松弛法
29
10/11/201
1.3 启发式算法_分类
(5)现代优化算法: 80年代初兴起
₪ 禁忌搜索(tabu search) ₪ 模拟退火(simulated annealing) ₪ 遗传算法(genetic algorithms) ₪ 神经网络(neural networks) ₪ 蚂蚁算法(Ant Algorithm,群体(群集)智能,
₪ 传统的优化方法 追求准确——精确解 理论的完美——结果漂亮 主要方法:线性与非线性规划、动态规划、多目标规划、整数规划等; 排队论、库存论、对策论、决策论等。
₪ 传统的评价方法 算法收敛性(从极限角度考虑) 收敛速度(线性、超线性、二次收敛等)
3
10/11/201
传统运筹学面临新挑战
₪ 现代问题的特点 离散性问题——主要以组合优化理论为基础 不确定性问题——随机性数学模型 半结构或非结构化的问题——计算机模拟、决 策支持系统 大规模问题——并行计算、大型分解理论、近似理论
空间)下,给出待解组合优化问题的每个实例的一个可行解, 该可行解与最优解偏差事先不一定可以预计. ₪ 定义2. 启发式算法是一种技术,在可接受的计算费用内寻找 最好解,但不保证该解的可行性与最优性,无法描述该解与 最优解的近似程度。 ₪ 特点(与传统优化方法不同):凭直观和经验给出算法;不 考虑所得解与最优解的偏离程度.
26
10/11/201
1.3 启发式算法_优点
优点: (1)有可能比简化数学模型解的误差小; (2)对有些难题,计算时间可接受; (3)可用于某些最优化算法(如分支定界算
法)之中的估界; (4)直观易行; (5)速度较快; (6)程序简单,易修改。
27
10/11/201
1.3 启发式算法_不足
不足: (1)不能保证求得全局最优解; (2)解的精度不稳定,有时好有时坏; (3)算法设计与问题、设计者经验、技术 有关,
其中
(1.4) 总路长 (1.5) 只从城市i出来一次 (1.6) 只走入城市j一次
, n, (1.7) 在任意城市子集中不形成回路
(1.8) 决策变量
dij:城市i与城市j之间的距离 , s :集合s中元素的个数,
1, 走城市i和城市j之间的路径,
xij
0,不走城市i和城市j之间的路径.
数学模型:
min dij xij i j
n
s.t. xij 1.i 1, 2, , n, j 1
n
xij 1. j 1, 2, , n,
i 1
xij s 1, 2 s n 1, s 1, 2,
i, js
xij 0,1, i, j 1, 2, , n, i j.
23
10/11/201
1.2 计算复杂性的概念 ₪ 利用复杂性分析对组合优化问题归类。 ₪ 定义多项式问题
给定一个组合优化问题,若存在一个多项式算法, 称该问题为多项式时间可解问题,或简称多项式 问题(或P问题). 所有多项式问题的集合记为P. ₪ 例:线性规划是否为多项式问题?
24
10/11/201
₪ 现代优化方法 追求满意——近似解 实用性强——解决实际问题
₪ 现代优化算法的评价方法 算法复杂性
4
10/11/201
现代优化(启发式)方法种类 ₪ 禁忌搜索(tabu search) ₪ 模拟退火(simulated annealing) ₪ 遗传算法(genetic algorithms) ₪ 神经网络(neural networks) ₪ 蚁群算法(群体智能,Swarm Intelligence) ₪ 拉格朗日松弛算法(lagrangean relaxation)
1.2 计算复杂性参考书
₪ 计算复杂性, 作者:Christos,Papadimitriou 清华大学出版社,2004年9月第1版
₪ 计算复杂性导论,作者:堵丁柱等, 高等教育出版社,2002年8月第1版
25
10/11/201
1.3 启发式算法_定义
₪ 启发式算法(heuristic algorithm) ₪ 定义1. 基于直观或经验构造的算法,在可接受的花费(时间、
13
10/11/201
1.1 组合优化问题
数学模型:
min B
B
s.t. xib 1, i 1, 2, , n, b 1 n ai xib 1, b 1, 2, , B, i 1 xib 0,1, i 1, 2, , n; b 1, 2, , B,
其中 B : 装下全部物品需要的箱子, 1, 第i物品装在第b个箱子,
实例的输入长度是n的多项式函数 枚举法的基本计算量是n的阶乘函数,
随n的增加,比指数函数增加得还快.
21
10/11/201
1.2 计算复杂性的概念
实例I , 实例规模:l(I ),算法A 基本计算总次数:CA (I)
存在函数g ( x)和一个常数,使得对于该问题的任意实例I 都满足 CA(I) g(l(I )) (XX)
点f*,使对F中任意的f,有C(f*) C(f),称f*为这
一具体问题的最优解(或全局最优解).
18
10/11/201
1.2 计算复杂性的概念
₪ 算法计算量的度量: 加、减、乘、除、比较的总运算次数与实例的计算机计 算时的二进制输入数据的大小关系。
₪ 正整数x的二进制位数是:(整数到二进制的转换)
(3)大规模计算分析
通过大量实例计算,评价算法效果. ₪ 注意数据的随机性和代表性.
8
10/11/201
1.1 组合优化问题 ₪ 例1 0-1背包问题(0-1 knapsack problem)
b :背包容积 ai : 第i件物品单位体积,i 1,, n. ci : 第i件物品单位价值,i 1,, n. 问题:如何以最大价值装包?
15
10/11/201
1.2 计算复杂性的概念
城市 24 25 26 27 28 数
计算 1 24 10 4.3 4.9 时间 sec sec min hour day
29 30 31
136.5 10.8 325 day year year
随城市增多,计算时间增加很快。 到31个城市时,要计算325年。
蚁群算法
Yuehui Chen School of Inform. Sci. and Eng. University of Jinan, 2009
10/11/2019
1
内容
一、启发式方法概述 二、蚁群优化算法
2
10/11/201
背景
₪ 传统实际问题的特点 连续性问题——主要以微积分为基础,且问题规模较小
9
10/11/201
1.1 组合优化问题
数学模型:
n
max ci xi i 1
(1.1)总价值
n
s.t. ai xi b, i 1
xi 0,1, i 1,, n.
(1.2)包容量限制 (1.3)决策变量
其中xi
1,装第i物品 0,不装第i物品
D 0,1n.
求和运算次数为:(n 1)!n n!;
枚举所有路径进行(n 1)!次比较可得最优路径,基本计算总次数为
总计算量:n! (n 1)!
20
10/11/201
1.2 计算复杂性的概念 ₪ 实例的输入长度:
设对i, j有dij K , 则 L n(n 1)(log( 2 K 1) 2) log( 2 n 1) 2
数学模型:
min f (x) s.t.g(x) 0,
x D.
目标函数 约束函数 有限点集, 决策变量
7
10/11/201
1.1 组合优化问题
组合优化问题的三参数表示:
(D, F, f ) D :决策变量定义域
F x | x D, g(x) 0,可行域,有限点集
f :目标函数 x F :可行解(点)
xib 0,第i物品不装在第b个箱子.
14
10/11/201
1.2 计算复杂性的概念
₪ 评价算法的好坏——计算时间的多少、解的偏离 程度
₪ 例 非对称距离TSP问题的算法实现:所有路径枚 举。 计算时间:n个城市,固定1个为起终点需要(n-1)! 个枚举,设计算机1秒能完成24个城市的枚举,则 城市数与计算时间的关系如下表:
对称距离TSP : dij d ji , i, j
非对称距离TSP : dij d ji , i, j
12
10/11/201
1.1 组合优化问题
例3 装箱问题(bin packing)
尺寸为1的箱子有若干个,怎样用最少的箱子
装下n个尺寸不超过1 的物品,物品集合
为:
。
{a1, a2 ,...an}
记x的输入规模(编码长度)为l(x),则 l(x) log2 (| x | 1) 2 其中2是考虑了1个符号位和1个数据分隔位。
19
10/11/201
1.2 计算复杂性的概念
₪ 算法计算量的度量之例——TSP枚举法
计算量的统计: 城市数n 第一城市为始终点,计算一条路径(1,i2, ,in,1)长度的基本运算 为两两城市间距离的n个数求和,共有(n 1)!条路径,
Swarm Intelligence) (6)其他算法:
多种启发式算法的集成.
30
10/11/201
1.3 启发式算法_性能分析
(1)最坏情形分析(worst case analysis) 利用最坏实例分析计算复杂性、解的效果。
(2)概率分析 (probabi最坏实例影响总体评价. 在实例数据服从一定概率分布情形下,研究算法复杂性和解的效果.
(1)对所有参数的一般性描述; (2)答案(或解)必须满足的性质。 ₪ 实例(instance):给问题的所有参数指定具体值,得到问题
的一个实例。这些具体值称为数据;这些数据输入计算机所 占的空间称为实例的长度(size).
17
10/11/201
1.2 计算复杂性的概念 一类最优化问题是由一些类似的具体问题(实例) 组成的,每一个具体问题可表达成二元组 (F,C).F为可行解集合;C是费用函数,是由F 到R(实数集)的映像。问题是在F中找到一个
10
10/11/201
1.1 组合优化问题 ₪ 例2 旅行商问题(TSP,traveling salesman
problem) 管梅谷教授1960年首先提出,国际上称之为中 国邮递员问题。 问题描述:一商人去n个城市销货,所有城市 走一遍再回到起点,使所走路程最短。
11
10/11/201
1.1 组合优化问题
5
10/11/201
1 现代优化计算方法概述
₪ 1.1 组合优化问题 ₪ 1.2 计算复杂性的概念 ₪ 1.3 启发式算法
6
10/11/201
1.1 组合优化问题
组合优化(combinatorial optimization): 解决离散问题的优化问题——运筹学分支。通过数学方法的研究 去寻找离散事件的最优编排、分组、次序或筛选等,可以涉及信 息技术、经济管理、工业工程、交通运输和通信网络等许多方面。
描述算法的好坏——计算复杂性——讨论计算时间与问题规 模之间的关系。以目前二进制计算机中的存储和计算为基础, 以理论的形式系统描述,是评估算法性能的基础。
16
10/11/201
1.2 计算复杂性的概念
₪ 问题(problem):要回答的一般性提问,通常含有若干个 满足一定条件的参数(或自由变量)。可以从两方面描述:
则二者关系表示为:CA (I ) O(g(l(I ))) g ( x)的性质决定了算法的性能。
22
10/11/201
1.2 计算复杂性的概念
定义 多项式算法 给定问题P,算法A,对一个实例I,存在多项式 函数g(x),使(XX )成立,称算法A对实例I是 多项式算法; 若存在多项式函数g(x),使(XX )对问题P的任 意实例I都成立,称算法A为解决该问题P的多项 式算法. 当g(x)为指数函数时,称A为P的指数时间算法。
缺乏规律性; (4)不同算法之间难以比较。
28
10/11/201
1.3 启发式算法_分类
(1)一步算法 (2)改进算法(迭代算法) (3)数学规划算法 (4)解空间松弛法
29
10/11/201
1.3 启发式算法_分类
(5)现代优化算法: 80年代初兴起
₪ 禁忌搜索(tabu search) ₪ 模拟退火(simulated annealing) ₪ 遗传算法(genetic algorithms) ₪ 神经网络(neural networks) ₪ 蚂蚁算法(Ant Algorithm,群体(群集)智能,
₪ 传统的优化方法 追求准确——精确解 理论的完美——结果漂亮 主要方法:线性与非线性规划、动态规划、多目标规划、整数规划等; 排队论、库存论、对策论、决策论等。
₪ 传统的评价方法 算法收敛性(从极限角度考虑) 收敛速度(线性、超线性、二次收敛等)
3
10/11/201
传统运筹学面临新挑战
₪ 现代问题的特点 离散性问题——主要以组合优化理论为基础 不确定性问题——随机性数学模型 半结构或非结构化的问题——计算机模拟、决 策支持系统 大规模问题——并行计算、大型分解理论、近似理论
空间)下,给出待解组合优化问题的每个实例的一个可行解, 该可行解与最优解偏差事先不一定可以预计. ₪ 定义2. 启发式算法是一种技术,在可接受的计算费用内寻找 最好解,但不保证该解的可行性与最优性,无法描述该解与 最优解的近似程度。 ₪ 特点(与传统优化方法不同):凭直观和经验给出算法;不 考虑所得解与最优解的偏离程度.
26
10/11/201
1.3 启发式算法_优点
优点: (1)有可能比简化数学模型解的误差小; (2)对有些难题,计算时间可接受; (3)可用于某些最优化算法(如分支定界算
法)之中的估界; (4)直观易行; (5)速度较快; (6)程序简单,易修改。
27
10/11/201
1.3 启发式算法_不足
不足: (1)不能保证求得全局最优解; (2)解的精度不稳定,有时好有时坏; (3)算法设计与问题、设计者经验、技术 有关,
其中
(1.4) 总路长 (1.5) 只从城市i出来一次 (1.6) 只走入城市j一次
, n, (1.7) 在任意城市子集中不形成回路
(1.8) 决策变量
dij:城市i与城市j之间的距离 , s :集合s中元素的个数,
1, 走城市i和城市j之间的路径,
xij
0,不走城市i和城市j之间的路径.
数学模型:
min dij xij i j
n
s.t. xij 1.i 1, 2, , n, j 1
n
xij 1. j 1, 2, , n,
i 1
xij s 1, 2 s n 1, s 1, 2,
i, js
xij 0,1, i, j 1, 2, , n, i j.
23
10/11/201
1.2 计算复杂性的概念 ₪ 利用复杂性分析对组合优化问题归类。 ₪ 定义多项式问题
给定一个组合优化问题,若存在一个多项式算法, 称该问题为多项式时间可解问题,或简称多项式 问题(或P问题). 所有多项式问题的集合记为P. ₪ 例:线性规划是否为多项式问题?
24
10/11/201
₪ 现代优化方法 追求满意——近似解 实用性强——解决实际问题
₪ 现代优化算法的评价方法 算法复杂性
4
10/11/201
现代优化(启发式)方法种类 ₪ 禁忌搜索(tabu search) ₪ 模拟退火(simulated annealing) ₪ 遗传算法(genetic algorithms) ₪ 神经网络(neural networks) ₪ 蚁群算法(群体智能,Swarm Intelligence) ₪ 拉格朗日松弛算法(lagrangean relaxation)
1.2 计算复杂性参考书
₪ 计算复杂性, 作者:Christos,Papadimitriou 清华大学出版社,2004年9月第1版
₪ 计算复杂性导论,作者:堵丁柱等, 高等教育出版社,2002年8月第1版
25
10/11/201
1.3 启发式算法_定义
₪ 启发式算法(heuristic algorithm) ₪ 定义1. 基于直观或经验构造的算法,在可接受的花费(时间、
13
10/11/201
1.1 组合优化问题
数学模型:
min B
B
s.t. xib 1, i 1, 2, , n, b 1 n ai xib 1, b 1, 2, , B, i 1 xib 0,1, i 1, 2, , n; b 1, 2, , B,
其中 B : 装下全部物品需要的箱子, 1, 第i物品装在第b个箱子,
实例的输入长度是n的多项式函数 枚举法的基本计算量是n的阶乘函数,
随n的增加,比指数函数增加得还快.
21
10/11/201
1.2 计算复杂性的概念
实例I , 实例规模:l(I ),算法A 基本计算总次数:CA (I)
存在函数g ( x)和一个常数,使得对于该问题的任意实例I 都满足 CA(I) g(l(I )) (XX)
点f*,使对F中任意的f,有C(f*) C(f),称f*为这
一具体问题的最优解(或全局最优解).
18
10/11/201
1.2 计算复杂性的概念
₪ 算法计算量的度量: 加、减、乘、除、比较的总运算次数与实例的计算机计 算时的二进制输入数据的大小关系。
₪ 正整数x的二进制位数是:(整数到二进制的转换)
(3)大规模计算分析
通过大量实例计算,评价算法效果. ₪ 注意数据的随机性和代表性.