最优化理论与方法-第一章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随n的增加,比指数函数增加得还快.
44
1.3 计算复杂性的概念
实例I , 实例规模:l(I ),算法A 基本计算总次数:CA (I)
存在函数g ( x)和一个常数,使得对于该问题的任意实例I 都满足 CA(I) g(l(I )) (XX)
则二者关系表示为:CA (I ) O(g(l(I ))) g ( x)的性质决定了算法的性能。
记x的输入规模(编码长度)为l(x),则 l(x) log2 (| x | 1) 2 其中2是考虑了1个符号位和1个数据分隔位。
39
如何估算 算法的时间复杂度?
算法 = 控制结构 + 原操作
算法的执行时间 =
∑元操作(i)的执行次数×元操作(i)的执行时间
从算法中选取一种对于所研究的 问题来说是 基本操作 的原操作,以 该基本操作 在算法中重复执行的次 数 作为算法运行时间的衡量准则。
传统的评价方法 算法收敛性(从极限角度考虑) 收敛速度(线性、超线性、二次收敛等)
3
传统运筹学面临新挑战
现代问题的特点 离散性问题——主要以组合优化(针对离散问题,定义 见后)理论为基础 不确定性问题——随机性数学模型 半结构或非结构化的问题——计算机模拟、决策支持系 统 大规模问题——并行计算、大型分解理论、近似理论
15
1.1 组合优化问题
16
1.2 算法
评价算法的好坏——计算时间的多少、解的 偏离程度
先看看算法的基本概念
17
1.2 算法
1.定义. 一个有穷规则的有序集合称为一个算法。
2.算法的特征.
输 入:有零个或多个外部量作为算法的输入。 输 出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限。 可行性:执行每条指令的时间也有限。
9
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.
10
1.1 组合优化问题
, n, (1.7) 在任意城市子集中不形成回路
(1.8) 决策变量
dij:城市i与城市j之间的距离 , s :集合s中元素的个数,
1, 走城市i和城市j之间的路径,
xij
0,不走城市i和城市j之间的路径.
对称距离TSP : dij d ji , i, j
非对称距离TSP : dij d ji , i, j
计算 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年。
ຫໍສະໝຸດ Baidu
35
1.3 计算复杂性的概念
描述算法的好坏——计算复杂性—— 讨论计算时间与问题规模之间的关系
x : 最优解,如果x F, f (x) minf (x) | x F.
8
1.1 组合优化问题
例1 0-1背包问题(0-1 knapsack problem)
b :背包容积 ai : 第i件物品单位体积,i 1,, n. ci : 第i件物品单位价值,i 1,, n. 问题:如何以最大价值装包?
实例(instance):给问题的所有参数指定具体值,得 到问题的一个实例。这些具体值称为数据;这些数据 输入计算机所占的空间称为实例的长度(size).
37
1.3 计算复杂性的概念
一类最优化问题是由一些类似的具体问题(实例) 组成的,每一个具体问题可表达成二元组 (F,C).
F为可行解集合;C是费用函数,是由F到R(实数集) 的映像。
评价算法的好坏——计算时间的多少、解的 偏离程度
例 非对称距离TSP问题的算法实现:所有 路径枚举。 计算时间:n个城市,固定1个为起终点需 要(n-1)!个枚举,设计算机1秒能完成24个 城市的枚举,则城市数与计算时间的关系如 下表:
34
1.3 计算复杂性的概念
城市 24 25 26 27 28 数
数学模型:
min f (x) s.t.g(x) 0,
x D.
目标函数 约束函数 有限点集, 决策变量
7
1.1 组合优化问题
组合优化问题的三参数表示:
(D, F, f ) D :决策变量定义域
F x | x D, g(x) 0,可行域,有限点集
f :目标函数 x F :可行解(点)
12
1.1 组合优化问题
例3 装箱问题(bin packing) 尺寸为1的箱子有若干个,怎样用最少的 箱子装下n个尺寸不超过1 的物品,物品 集合为:{a1, a2,...an} 。
13
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,
问题是在F中找到一个点f*,使对F中任意的f,有 C(f*) C(f),称f*为这一具体问题的最优解(或
全局最优解 ).
38
1.3 计算复杂性的概念
算法计算量的度量: 加、减、乘、除、比较的总运算次数与实例的计 算机计算时的二进制输入数据的大小关系。
正整数x的二进制位数是:(整数到二进制的转换)
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.
其中
(1.4) 总路长 (1.5) 只从城市i出来一次 (1.6) 只走入城市j一次
1.3 计算复杂性的概念
算法计算量的度量之例——TSP枚举法
计算量的统计: 城市数n 第一城市为始终点,计算一条路径(1,i2, ,in,1)长度的基本运算 为两两城市间距离的n个数求和,共有(n 1)!条路径,
求和运算次数为:(n 1)!n n!;
枚举所有路径进行(n 1)!次比较可得最优路径,基本计算总次数为
45
1.3 计算复杂性的概念
定义 多项式算法 给定问题P,算法A,对一个实例I,存在多项式 函数g(x),使(XX )成立,称算法A对实例I是 多项式算法; 若存在多项式函数g(x),使(XX )对问题P的任 意实例I都成立,称算法A为解决该问题P的多项 式算法. 当g(x)为指数函数时,称A为P的指数时间算法。
4.高效率与低存储量需求
通常,效率指的是算法执行 时间;存储量指的是算法执行过程 中所需的最大存储空间。两者都与 问题的规模有关。
算法的描述方法.
(1)自然语言 (2)流程图 (3)程序设计语言
例. 求正整数m、n的最大公因数。 解一.
(1)求余数:用m除以n,得余数r(0≤r﹤n)。
(2) 判断余数:若余数r=0,输出n,结束。 否则,转(3)。
其中 B : 装下全部物品需要的箱子, 1, 第i物品装在第b个箱子,
xib 0,第i物品不装在第b个箱子.
14
1.1 组合优化问题
例4 约束机器排序问题(bin packing) n 个加工量为{di|i = 1, 2, ⋯, n} 的产品在
一台机器上加工,机器在第t个时段的工作 能力为ct , 求完成所有产品加工的最少时 段数。
以目前二进制计算机中的存储和计算为基础,以 理论的形式系统描述,是评估算法性能的基础。
36
1.3 计算复杂性的概念
问题(problem):要回答的一般性提问,通常含有若 干个满足一定条件的参数(或自由变量)。可以从两 方面描述: (1)对所有参数的一般性描述; (2)答案(或解)必须满足的性质。
通常以第 c 层意义的正确性作为衡 量一个算法是否合格的标准。
2. 可读性
算法主要是为了人的阅读与交流, 其次才是为计算机执行。因此算法应该易 于人的理解;另一方面,晦涩难读的程序 易于隐藏较多错误而难以调试;
3.健壮性
当输入的数据非法时,算法应当恰当 地作出反映或进行相应处理,而不是产 生莫名奇妙的输出结果。并且,处理出 错的方法不应是中断程序的执行,而应 是返回一个表示错误或错误性质的值, 以便在更高的抽象层次上进行处理。
4.有输入 作为算法加工对象的量值, 通常体现为算法中的一组变量。有些输入 量需要在算法执行过程中输入,而有的算 法表面上可以没有输入,实际上已被嵌入 算法之中;
5.有输出 它是一组与“输入”与 确 定关系的量值,是算法进行信息加 工后得到的结果,这种确定关系即 为算法的功能。
二、算法设计的原则 设计算法时,通常应考虑达到以下目标:
1.正确性 2. 可读性 3.健壮性 4.高效率与低存储量需求
1.正确性
首先,算法应当满足以特定的“规格说明”方 式给出的需求。
其次,对算法是否“正确”的理解有四个层 次: a.程序中不含语法错误;
b.程序对于几组输入数据能够得出满足要求 的结果;
c.程序对于精心选择的、典型、苛刻且 带有刁难性的几组输入数据能够得出满足 要求的结果; d.程序对于一切合法的输入数据都能得 出满足要求的结果;
最优化理论与方法
(现代优化计算方法)
1
内容
概论 递归、分治、贪心、回溯 禁忌搜索、爬山算法 模拟退火、蚁群算法 遗传算法 神经网络 元胞自动机 随机算法
2
背景
传统实际问题的特点 连续性问题——主要以微积分为基础,且问题规模较小
传统的优化方法 追求准确——精确解 理论的完美——结果漂亮 主要方法:线性与非线性规划、动态规划、多目标规划、整 数规划等;排队论、库存论、对策论、决策论等。
(3)更新被除数和除数:m←n,n←r,转(1)。
解二.
开始
输入m、n
r=m%n
是 r=0?
否 m←n,n←r
输出n
解三.
Euclid(int m, int n) { int r; while(n!=0)
{ r=m%n; m=n; n=r; }
printf(“%d”, m) }
1.3 计算复杂性的概念
Intelligence) 拉格朗日松弛算法(lagrangean relaxation)
5
1 现代优化计算方法概述
1.1 组合优化问题 1.2 算法 1.3 计算复杂性的概念 1.4 启发式算法
6
1.1 组合优化问题
组合优化(combinatorial optimization):解决离散问 题的优化问题——运筹学分支。通过数学方法的研究 去寻找离散事件的最优编排、分组、次序或筛选等。
1.有穷性 对于任意一组合法输入值, 在执行有穷步骤之后一定能结束,即: 算法中的每个步骤都能在有限时间内完成;
2.确定性 对于每种情况下所应执行的 操作,在算法中都有确切的规定,使算法 的执行者或阅读者都能明确其含义及如何 执行。并且在任何条件下,算法都只有一 条执行路径;
3.可行性 算法中的所有操作都必须足 够基本,都可以通过已经实现的基本操作 运算有限次实现之;
例2 旅行商问题(TSP,traveling salesman problem) 管梅谷教授1960年首先提出,国际上称 之为中国邮递员问题。 问题描述:一商人去n个城市销货,所有 城市走一遍再回到起点,使所走路程最 短。
11
1.1 组合优化问题
数学模型:
min dij xij i j
n
现代优化方法 追求满意——近似解 实用性强——解决实际问题
现代优化算法的评价方法 算法复杂性
4
现代优化(启发式)方法种类
禁忌搜索(tabu search) 模拟退火(simulated annealing) 遗传算法(genetic algorithms) 神经网络(neural networks) 蚁群算法(群体(群集)智能,Swarm
总计算量:n! (n 1)!
43
1.3 计算复杂性的概念
实例的输入长度:
设对i, j有dij K , 则 L n(n 1)(log( 2 K 1) 2) log( 2 n 1) 2
实例的输入长度是n的多项式函数 枚举法的基本计算量是n的阶乘函数,
44
1.3 计算复杂性的概念
实例I , 实例规模:l(I ),算法A 基本计算总次数:CA (I)
存在函数g ( x)和一个常数,使得对于该问题的任意实例I 都满足 CA(I) g(l(I )) (XX)
则二者关系表示为:CA (I ) O(g(l(I ))) g ( x)的性质决定了算法的性能。
记x的输入规模(编码长度)为l(x),则 l(x) log2 (| x | 1) 2 其中2是考虑了1个符号位和1个数据分隔位。
39
如何估算 算法的时间复杂度?
算法 = 控制结构 + 原操作
算法的执行时间 =
∑元操作(i)的执行次数×元操作(i)的执行时间
从算法中选取一种对于所研究的 问题来说是 基本操作 的原操作,以 该基本操作 在算法中重复执行的次 数 作为算法运行时间的衡量准则。
传统的评价方法 算法收敛性(从极限角度考虑) 收敛速度(线性、超线性、二次收敛等)
3
传统运筹学面临新挑战
现代问题的特点 离散性问题——主要以组合优化(针对离散问题,定义 见后)理论为基础 不确定性问题——随机性数学模型 半结构或非结构化的问题——计算机模拟、决策支持系 统 大规模问题——并行计算、大型分解理论、近似理论
15
1.1 组合优化问题
16
1.2 算法
评价算法的好坏——计算时间的多少、解的 偏离程度
先看看算法的基本概念
17
1.2 算法
1.定义. 一个有穷规则的有序集合称为一个算法。
2.算法的特征.
输 入:有零个或多个外部量作为算法的输入。 输 出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限。 可行性:执行每条指令的时间也有限。
9
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.
10
1.1 组合优化问题
, n, (1.7) 在任意城市子集中不形成回路
(1.8) 决策变量
dij:城市i与城市j之间的距离 , s :集合s中元素的个数,
1, 走城市i和城市j之间的路径,
xij
0,不走城市i和城市j之间的路径.
对称距离TSP : dij d ji , i, j
非对称距离TSP : dij d ji , i, j
计算 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年。
ຫໍສະໝຸດ Baidu
35
1.3 计算复杂性的概念
描述算法的好坏——计算复杂性—— 讨论计算时间与问题规模之间的关系
x : 最优解,如果x F, f (x) minf (x) | x F.
8
1.1 组合优化问题
例1 0-1背包问题(0-1 knapsack problem)
b :背包容积 ai : 第i件物品单位体积,i 1,, n. ci : 第i件物品单位价值,i 1,, n. 问题:如何以最大价值装包?
实例(instance):给问题的所有参数指定具体值,得 到问题的一个实例。这些具体值称为数据;这些数据 输入计算机所占的空间称为实例的长度(size).
37
1.3 计算复杂性的概念
一类最优化问题是由一些类似的具体问题(实例) 组成的,每一个具体问题可表达成二元组 (F,C).
F为可行解集合;C是费用函数,是由F到R(实数集) 的映像。
评价算法的好坏——计算时间的多少、解的 偏离程度
例 非对称距离TSP问题的算法实现:所有 路径枚举。 计算时间:n个城市,固定1个为起终点需 要(n-1)!个枚举,设计算机1秒能完成24个 城市的枚举,则城市数与计算时间的关系如 下表:
34
1.3 计算复杂性的概念
城市 24 25 26 27 28 数
数学模型:
min f (x) s.t.g(x) 0,
x D.
目标函数 约束函数 有限点集, 决策变量
7
1.1 组合优化问题
组合优化问题的三参数表示:
(D, F, f ) D :决策变量定义域
F x | x D, g(x) 0,可行域,有限点集
f :目标函数 x F :可行解(点)
12
1.1 组合优化问题
例3 装箱问题(bin packing) 尺寸为1的箱子有若干个,怎样用最少的 箱子装下n个尺寸不超过1 的物品,物品 集合为:{a1, a2,...an} 。
13
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,
问题是在F中找到一个点f*,使对F中任意的f,有 C(f*) C(f),称f*为这一具体问题的最优解(或
全局最优解 ).
38
1.3 计算复杂性的概念
算法计算量的度量: 加、减、乘、除、比较的总运算次数与实例的计 算机计算时的二进制输入数据的大小关系。
正整数x的二进制位数是:(整数到二进制的转换)
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.
其中
(1.4) 总路长 (1.5) 只从城市i出来一次 (1.6) 只走入城市j一次
1.3 计算复杂性的概念
算法计算量的度量之例——TSP枚举法
计算量的统计: 城市数n 第一城市为始终点,计算一条路径(1,i2, ,in,1)长度的基本运算 为两两城市间距离的n个数求和,共有(n 1)!条路径,
求和运算次数为:(n 1)!n n!;
枚举所有路径进行(n 1)!次比较可得最优路径,基本计算总次数为
45
1.3 计算复杂性的概念
定义 多项式算法 给定问题P,算法A,对一个实例I,存在多项式 函数g(x),使(XX )成立,称算法A对实例I是 多项式算法; 若存在多项式函数g(x),使(XX )对问题P的任 意实例I都成立,称算法A为解决该问题P的多项 式算法. 当g(x)为指数函数时,称A为P的指数时间算法。
4.高效率与低存储量需求
通常,效率指的是算法执行 时间;存储量指的是算法执行过程 中所需的最大存储空间。两者都与 问题的规模有关。
算法的描述方法.
(1)自然语言 (2)流程图 (3)程序设计语言
例. 求正整数m、n的最大公因数。 解一.
(1)求余数:用m除以n,得余数r(0≤r﹤n)。
(2) 判断余数:若余数r=0,输出n,结束。 否则,转(3)。
其中 B : 装下全部物品需要的箱子, 1, 第i物品装在第b个箱子,
xib 0,第i物品不装在第b个箱子.
14
1.1 组合优化问题
例4 约束机器排序问题(bin packing) n 个加工量为{di|i = 1, 2, ⋯, n} 的产品在
一台机器上加工,机器在第t个时段的工作 能力为ct , 求完成所有产品加工的最少时 段数。
以目前二进制计算机中的存储和计算为基础,以 理论的形式系统描述,是评估算法性能的基础。
36
1.3 计算复杂性的概念
问题(problem):要回答的一般性提问,通常含有若 干个满足一定条件的参数(或自由变量)。可以从两 方面描述: (1)对所有参数的一般性描述; (2)答案(或解)必须满足的性质。
通常以第 c 层意义的正确性作为衡 量一个算法是否合格的标准。
2. 可读性
算法主要是为了人的阅读与交流, 其次才是为计算机执行。因此算法应该易 于人的理解;另一方面,晦涩难读的程序 易于隐藏较多错误而难以调试;
3.健壮性
当输入的数据非法时,算法应当恰当 地作出反映或进行相应处理,而不是产 生莫名奇妙的输出结果。并且,处理出 错的方法不应是中断程序的执行,而应 是返回一个表示错误或错误性质的值, 以便在更高的抽象层次上进行处理。
4.有输入 作为算法加工对象的量值, 通常体现为算法中的一组变量。有些输入 量需要在算法执行过程中输入,而有的算 法表面上可以没有输入,实际上已被嵌入 算法之中;
5.有输出 它是一组与“输入”与 确 定关系的量值,是算法进行信息加 工后得到的结果,这种确定关系即 为算法的功能。
二、算法设计的原则 设计算法时,通常应考虑达到以下目标:
1.正确性 2. 可读性 3.健壮性 4.高效率与低存储量需求
1.正确性
首先,算法应当满足以特定的“规格说明”方 式给出的需求。
其次,对算法是否“正确”的理解有四个层 次: a.程序中不含语法错误;
b.程序对于几组输入数据能够得出满足要求 的结果;
c.程序对于精心选择的、典型、苛刻且 带有刁难性的几组输入数据能够得出满足 要求的结果; d.程序对于一切合法的输入数据都能得 出满足要求的结果;
最优化理论与方法
(现代优化计算方法)
1
内容
概论 递归、分治、贪心、回溯 禁忌搜索、爬山算法 模拟退火、蚁群算法 遗传算法 神经网络 元胞自动机 随机算法
2
背景
传统实际问题的特点 连续性问题——主要以微积分为基础,且问题规模较小
传统的优化方法 追求准确——精确解 理论的完美——结果漂亮 主要方法:线性与非线性规划、动态规划、多目标规划、整 数规划等;排队论、库存论、对策论、决策论等。
(3)更新被除数和除数:m←n,n←r,转(1)。
解二.
开始
输入m、n
r=m%n
是 r=0?
否 m←n,n←r
输出n
解三.
Euclid(int m, int n) { int r; while(n!=0)
{ r=m%n; m=n; n=r; }
printf(“%d”, m) }
1.3 计算复杂性的概念
Intelligence) 拉格朗日松弛算法(lagrangean relaxation)
5
1 现代优化计算方法概述
1.1 组合优化问题 1.2 算法 1.3 计算复杂性的概念 1.4 启发式算法
6
1.1 组合优化问题
组合优化(combinatorial optimization):解决离散问 题的优化问题——运筹学分支。通过数学方法的研究 去寻找离散事件的最优编排、分组、次序或筛选等。
1.有穷性 对于任意一组合法输入值, 在执行有穷步骤之后一定能结束,即: 算法中的每个步骤都能在有限时间内完成;
2.确定性 对于每种情况下所应执行的 操作,在算法中都有确切的规定,使算法 的执行者或阅读者都能明确其含义及如何 执行。并且在任何条件下,算法都只有一 条执行路径;
3.可行性 算法中的所有操作都必须足 够基本,都可以通过已经实现的基本操作 运算有限次实现之;
例2 旅行商问题(TSP,traveling salesman problem) 管梅谷教授1960年首先提出,国际上称 之为中国邮递员问题。 问题描述:一商人去n个城市销货,所有 城市走一遍再回到起点,使所走路程最 短。
11
1.1 组合优化问题
数学模型:
min dij xij i j
n
现代优化方法 追求满意——近似解 实用性强——解决实际问题
现代优化算法的评价方法 算法复杂性
4
现代优化(启发式)方法种类
禁忌搜索(tabu search) 模拟退火(simulated annealing) 遗传算法(genetic algorithms) 神经网络(neural networks) 蚁群算法(群体(群集)智能,Swarm
总计算量:n! (n 1)!
43
1.3 计算复杂性的概念
实例的输入长度:
设对i, j有dij K , 则 L n(n 1)(log( 2 K 1) 2) log( 2 n 1) 2
实例的输入长度是n的多项式函数 枚举法的基本计算量是n的阶乘函数,