数学文化之运筹学
-
Upload
cathleen-monroe -
Category
Documents
-
view
122 -
download
0
description
Transcript of 数学文化之运筹学
运筹学理论内容:
2
数学规划
线性规划
整数规划
内
容
组合优化
图与网络
网络优化
算法分析
算法复杂性
近似算法
非线性规划
组合优化综述组合最优化:解决离散结构上的优化问题;主要包括:
组合数学;数学规划(线性规划);算法理论与方法;图论中的优化问题;
本节内容:组合优化化问题与算法;算法复杂性;近似算法
3
算法理论算法:解决问题的步骤;
输入与输出;流程与语言;复杂性:时间、空间复杂性;准确性的衡量;
计算机与算法;算法思想:
精确算法;贪婪算法;启发式算法;近似算法;确定性算法、非确定性算法;
4
算法理论:复杂性 时间复杂性(算法可行性与扩展性):
算法运行时间的快慢; 与输入数据规模有关;
上界:函数 f(n) 和 g(n) 都是整数到正实数的函数,如果存在正整数 n0 和正常数 c ,使得对所有 n ≥ n0 ,都有 f(n) ≤ cg(n) ,就称 f(n) 的阶至多是 O(g(n)) 。
下界:函数 f(n) 和 g(n) 都是整数到正实数的函数,如果存在正整数 n0 和正常数 c ,使得对所有 n ≥ n0 ,都有 f(n) > cg(n) ,就称 f(n) 的阶至少是 Ω (g(n)) 。
准确界:函数 f(n) 和 g(n) 都是整数到正实数的函数,如果存在正整数 n0 和正常数 c1 和 c2 ( c1 ≤ c2 ) ,使得对所有 n ≥ n0 ,都有 c1 g(n) ≤ f(n) ≤ c2 g(n) ,就称 f(n) 的阶至多是 Θ (g(n)) 。
1 loglog≺ n log≺ n ≺ n1/2 ≺ n3/4 ≺n ≺ nlogn ≺ n2 ≺ 2n ≺ n! 2≺ n^2
多项式与非多项式;5
算法理论:复杂性例:排序问题:
遍历排序 : O(n2);分组排序: O(nlogn);
多项式时间与指数时间:
6
计算量 规模 n 的近似值10 100 1000
n 10 100 1000
nlogn 33 664 9966
n3 103 106 109
2n 1024 1.27*1030 1.05*10301
n ! 3628800 10158 4*102567
算法理论图灵( Alan Mathison Turing , 1912-195
4)数学家、逻辑学家、密码学家,被称为计算机科学之父、人工智能之父;
师从数学家哈代;二战中有巨大贡献;图灵机;图灵奖: 姚期智( 2000)
7
算法理论:复杂性图灵机与判定性问题:
“ ” “ ”判定性问题:用 是 和 否 回答的问题。确定性图灵机;
非确定性图灵机;(带神谕的图灵机)8
有限状态控制器
1 1 1 1 1 10 0000 0 0B B B1 …………
算法理论:复杂性 P 与 NP 问题:
P:所有可以用确定性图灵机在多项式时间内求解的判定问题。
NP:所有可以用非确定性图灵机在多项式时间内求解的判定问题。
通俗定义: P:存在多项式时间算法的判定问题。 NP:多项式时间内可以验证的判定问题。
P 属于 NP; P = ? NP
2000 “ ”年巴黎法兰西学院宣布:对七个 千僖年数学难题每一个悬赏一百万美元。 P = ? NP为第一个难题。 9
算法理论:复杂性如何比较难易? Karp归约( 1972 ):问题 A 多项式时间内转化为
问题 B 的特殊情况,则称 A 可多项式归约于 B,记为
转化时间为多项式; 对于 A 的输入 I 的回答与其对应的 B 的输入 f(I) 一致;
例: TSP 归约为整数规划
10
BA p
njnixxxts
xc
ij
n
iij
n
jij
ij
n
i
n
jij
,...,2,1,,...,2,1,0,1;1;1..
min
00
0 0
算法理论:复杂性 NPC ( NP完全)问题: NP 中最难的问题;
; 可满足问题 (Satisfiability Problem,SAT); Cook ( 1971)证明了 SAT 问题为 NPC 问题。
SAT: 布尔变量集合: 布尔式: ,形如 问是否存在 的赋值使得 f = 1;计算复杂度: O(2n);
NP-hard 问题:与 NPC一样难或者更难的问题;11
1,0,...,, 21 in uuuuU ;731 uuuci mcccf ...21
1,0,...,, 21 in uuuuU ;
pqqpp p 有,NP.2;NP.1:NPC
pqqp p 有,NP:hardNP
算法理论:复杂性 第一个 NP 完全问题( Cook 定理 1971 )
可满足问题 ( SAT )是 NP 完全问题 六个 NP 完全问题( Karp 1972)
3 可满足问题: 3SAT ; 图的点覆盖问题: VC ; 图的 k 点团存在性问题: Clique ; 图的哈密尔顿圈问题: HC ; TSP 简化版; 正整数集合的划分问题;背包问题简化版; 三维匹配问题: 3DM ;
更多的 NP 完全问题 1979 年: 300 多个; 1998 年: 2000 多个;
12
P=?NP ( P-NP问题);
如果 ,则指数灾难无法避免; P 与 NPC 之外的 NP 问题,曾经的希望:
线性规划问题;图的同构问题;素数判定问题;
NP
算法理论:复杂性
13
NPPNPCP
P=NPNP
NPC P
NPP
算法理论:复杂性 如何处理 NP 难问题?并行计算:以硬件设备换取时间
存在着很多种并行计算模型 理想模型 PRAM 可多项式时间解 NP 完全问题 实际中效果不好:处理器数目是受限的,现实的代价:
通讯,同步,等; 随机算法:
判定问题: 以较大概率得到正确输出; 输出正确,但计算时间不定;
优化问题:输出解的性能不稳定; 以较大概率得到性能好的解; 14
算法理论:复杂性 近似算法:
不要最优,只求较优; 时间复杂度较低; 结果符合某种保证;
启发式算法: 基于直观或经验构造的算法,在可接受的代价下给出待
解决问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定事先可以预计 ;
通常利用邻域进行局部优化:邻域搜索; 贪婪策略通常也属于启发式算法;
模拟退火、遗传算法、人工神经网络、蚁群算法等;15
组合最优化问题:集合覆盖问题 例:有 n 个菌株 V = v1, v2, …, vn , m 种药物每种可
以抑制菌株集合为 S1, S2, …, Sm ,成本分别为 w1, w2, …, wm , 求可以抑制所有菌株的成本最小的药物组合。
集合覆盖( Set Cover):输入:
集合 V = v1, v2, …, vn ;
子集 S1, S2, …, Sm 属于 V; 权重 w1, w2, …, wm 、或无权;
目标: 选出 1, 2, …, m 的子集 I,
需要满足 ;同时 最小化 或 |I | ; 16 Ii iw
Ii i VS
V = v1, v2, …, vn ; Sj
组合最优化问题:集合覆盖问题无权集合覆盖的 贪婪算法 1:
1. 取 I 为空集; 2. 当 V 非空的时候,任选 vi ,将所有包含 vi 的集合 Sj 的序号
并入 I ;然后将所有涉及到的 vi 从 V 中删除; 3. 如果 V 为空集,则停止,输出 I。
算法 1 为 f 近似算法( f 为 vi 所属子集的个数的最大值); f 较小时效果尚可:每个菌株被少数药物抑制;
无权集合覆盖的 贪婪算法 2: 1. 取 I 为空集; 2. 当 V 非空的时候,将包含未覆盖的 vi 最多的集合 Sj 的序号
并入 I ;然后将新覆盖到的 vi 从 V 中删除; 3. 如果 V 为空集,则停止,输出 I。 17
组合最优化问题:集合覆盖问题 利用线性规划的凑整算法( Rounding )
xj = 0, 1 代表是否选取 Sj ;
xj 松弛问题的解 ; 对 j =1, …, m 执行: 输出
凑整算法为 f 近似算法:18
;,...,1;1,0
1;..
min
:
1
nix
Vvxts
xw
i
iSvj
j
m
jjj
ji
;
;,...,1;]1,0[
;1;..
min
:
1
nix
Vvxts
xw
i
iSvj
j
m
jjj
ji
;/1,0
;/1,1*
*
fx
fxx
j
jIPj
IPjx
OPT** Zfxwffxww
jjj
jjj
Ijj
*jx
组合最优化问题:集合覆盖问题贪婪算法;线性规划取整算法;对偶规划算法;原对偶规划算法;加权集合覆盖的贪婪算法;
问题推广:抑制关系的强弱(元素与集合从属关系加权);药物拮抗性(集合选择时考虑互斥);放松要求(尽可能多的抑制细菌,不要求全部); 19
|\|min
Coveredj
jj VS
w
组合最优化问题:背包问题 背包问题( Knapsake ):
物体集合 U=u1, u2, …, un, 其体积分别为整数 s1, s2, …,
sn , 价值分别为整数 v1, v2, …, vn , 背包容量为整数 C ,求 U 的一个子集 S (装背包的方案)使得:
同为 NP-hard 问题;考虑近似算法等; 松弛为 LP 分数形式;
20
max
Su
iSu
i
ii
vCs 且
nix
Cxsts
xv
i
n
iii
n
iii
,,1,]1,0[
..
max
1
1
组合最优化问题:背包问题背包问题的贪婪算法 1:
首先将物品按单位价值 (vi /si) 降序排列,然后按这个顺序将物品装包,直到包满或所有物品已经装完。
这个算法不能得到有界近似比:
贪婪算法 2:
21
2 ,2 ,1 , , 221121 CvsvsuuU
n
n
s
v
s
v
s
v
2
2
1
1 设
.,,, 211
是最优解,则若 n
n
ii uuuCs
nkCsCsk
ii
k
ii
,其中,否则设1
11
.,,, 121 中的较优者即可与取 kk uuuu
1/2 近似算法
组合最优化问题:背包问题 贪婪算法 + 局部优化:
首先将物品按单位价值 (vi /si) 降序排列,然后按这个顺序将物品装包,直到包满或所有物品已经装完。
在上述结果基础上进行邻域优化?
22
n
n
s
v
s
v
s
v
2
2
1
1 设 .,,, 211
是最优解,则若 n
n
ii uuuCs
nkCsCsk
ii
k
ii
,其中,否则设1
11
.,,, 121 中的较优者即可与取 kk uuuu
组合最优化问题:装箱问题 装箱问题( Bin-packing ):
有 n 个大小分别为 s1, s2, …, sn 的物体 ui (其中每个 sj 都在 0 和 1 之间) , 要求将它们装入到最少数目的单位容积的箱子中(不考虑物体形状)。
划分问题( Partition): 一组正整数 (s1, s2, …, sn ),是否可以将其划分为两个集合,使得两个集合里面的数的和相等;
NPC 问题; 不存在近似度 < 3/2 的近似算法;可以直接归结为装箱问题;
装箱问题不存在近似度 < 3/2 的近似算法 23
THE END !
24