数学建模:组合优化问题和计算复杂性

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

的实例,可在 n 的多项式时间内求解(即计算复杂性
为 O(nα)),则称算法 A 为一个解问题 D 的多项式 时间算法。(简称多项式算法)不能这样限制时间复 杂性函数的算法称为指数时间算法。 多项式时间算法: O(n logn)、O(n 2.8)、O(n 2) 指数时间算法: O(n!)、O(3n)
最差解的结果: 贪婪解的结果: 28+5+1=34 3+10+7=20
但是以时间为代价
§1.1 组合优化问题与算法 Example 2 背包问题(KP,Knapsack Problem) 共有27种
假设有人要出发旅行,他考虑要带 7种物品(每件物品的重量与价值如 表)现在假设他最多带35 kg 物品, 问:该带哪几件物品总价值最大? 设: 1 如果带第j种物品 xj j 1~ 7 否 0 7 Max z c j x j
1 2 3 5 6 7 8 9
§1.2 计算复杂性问题
设 机器速度100万次/秒
比较交换法O(n2) ……需5.8天
n = 100万
快速算法 O(n logn) ……需20秒
设 计算机速度为 M 次/秒
问题 D
算法A……计算复杂性 n2 算法B……计算复杂性2n 算法A………可解规模
M
M = n2
§1.2 计算复杂性问题
多项式时间算法 指数时间算法 Note: 好算法 坏算法 有效算法 恶劣算法
A 算法的计算复杂性为 O(n80),A 是
好算法吗? 与O(2n) 比较
问题 D 是否有多项式时间算法是问题的固有性质.
§1.2 计算复杂性问题
三、P类、NP类、NP—完全问题、NP—难问题
复杂性分析的另一个研究方向:对组合优化问题归类 P 类问题: (Polynomial) 对组合优化问题π,如果存在一个求解该问题的 多项式时间算法,则称π是多项式时间可解问题。所 有多项式时间可解问题构成的集合,称为 P 类问题
A 3 27 1 C B 5 10 4 C 26 28 7
D
E
F
§1.1 组合优化问题与算法 婚姻问题的数学模型:
设:
1 如果第i个人嫁第j个人 xij i, j 1 ~ 3 否 0
Max z cij xij
i 1 j 1
3
3
确定性算法: 如果算法从前一步到后一步的运行是由 当时状
态唯一确定的 如:单纯形法,表上作业法。
遗传算法是随机性算法。
§1.1 组合优化问题与算法
最优算法: 对于一个极小化(极大化)优化问题π,
如果给定任意一个实例I,算法A总能找到一个可
行解σ* ∈ S(I)。 使得 f(I, σ*) ≤ f(I, σ)(f(I, σ*) ≥f(I, σ)) 启发式算法(近似算法,在§1. 3节中介绍) 组合优化总存在最优算法,但它以时间为代价
给定1秒的 机器时间
算法B………可解规模 log2 M
§1.2 计算复杂性问题
给定1秒的 机器时间 算法A…………可解规模n = M
算法B…………可解规模n = log2 M
设 机器速度100万次/秒
给定1秒的 机器时间 算法A…………可解规模 n=1000 算法B…………可解规模 n=20 Log2100 < 7
O(2p)= 2p-1 O(2) 为O(2p) 依次类推,最后将两个2p元组合并成为一个单调不减
的2p+1元组 计算量为O(2p) 综上,算法总工作量为: (p+1) *O(2p)=O(n logn) 8 1 9 6 7 5 3 2 (8 1)(9 6)(7 5)(3 2) 1 8 6 9 5 7 2 3 (1 8 6 9) (5 7 2 3) 1 6 8 9 2 3 5 7
§1.1 组合优化问题与算法
组合优化的数学模型:
Min f(x)
s.t. g(x) ≥0 x∈ D
其中x为决策变量
g(x)为约束函数
f(x)为目标函数
D为决策变量的定义域, D为有限集合。 F={x|x ∈D, g(x) ≥0}——可行域
所以,可由(D,F,f ) 定义一个组合优化问题。 组合优化的描述方法: 1°数学模型(规划模型) 2°文字语言叙述
j 1
可能
物品 1 2 3 4 5 6 7
) 重量aj (kg
3 4 3 3 15 13 16
价值c j 12 12 9 15 90 26 112
s.t.
a
j 1
7
j
x j 35
§1.1 组合优化问题与算法
Example 3 一个商人要到n 座城市去做生意, 设两个城市i 和j 之
City 1 共有 ( 旅行商问题(TSP,Travelling Salesman Problem )n-1)! 种可能 City 5
f(n) = O(n4)
问: 当n无限增大时, Ln n , nα(α> 0) , an (a >1)
趋向于无穷大的速度如何?
§1.2 计算复杂性问题
二、如何评价算法的好坏(从计算复杂性角度)
复杂性分析的一个研究方向:对算法进行评价
Example 4 整序问题: 给定n个整数x1,x2,……xn,要
记为 P。 π ∈ P
§1.2 计算复杂性问题
如果一个问题π的输出(即答案)为 Yes 判定问题: or No,则称问题π为判定问题。 Example 5 适定性问题(SATisfiability)
已知一组逻辑变量的一个布尔表达式,其中每个逻
辑变量的取值为 1 (真)或 0 (假)。问是否存在该 组逻辑变量的取值,使得布尔表达式取值为真?
第一章 组合优化问题和计算复杂性
§1.1 组合优化问题与算法
§1.2 计算复杂性问题
§1.3 启发式算法
§1.1 组合优化问题与算法
Example 1 婚姻问题
(matching problem) 共有3!=6种 可能
如何嫁娶, 使获得的礼 品最多?
得到分配矩阵:
女儿
追求者 3 D A 5 26 B 10 27 E 28 4 1 F C 7
返回
§1.2 计算复杂性问题
在广泛的意义下,执行算法的效率是用执行算法所 用的全部计算资源的多少来衡量(时间、空间),但通常 用时间作为衡量标准,这就是计算(时间)复杂性问题.
讨论TSP问题
设有n个城市(有向图)则有(n-1)!种可能方案。以计 算机1秒可以完成24个城市所有路径枚举为单位,则
城市数 计算时间
Note:条件(1),(2)表示每个城市经过一 次,但不能保证它可行,要求局部不构成 圈,条件(3)就是为了约束这一点。
为什么?
i , js
x
ij
s 1
2 s n2
s 1,2,n
若 |s|=n 则由n个点构成的一个回路是可行方案。
| S | n 1 因为 由前面两个约束条件的限制,不可能
s.t.
x
i 1
3
ij
1
j 1,2,3
.
x
j 1
3
ij
1
i 1,2,3
§1.1 组合优化问题与算法
最优解的结果: 27+4+26=57
Note:
1. 贪婪(Greedy) 解 一般不会产生最差 解; 2. 在某些模型中, 贪 婪算法能得到最优 解;
3. 可以使用穷举法,
E
F
G
A 3 27 1 C B 5 10 4 C 26 28 7
§1.2 计算复杂性问题 确定一个wj需要一次比较一次赋值,共 快速算法:
需要(2m-1)次比较,2m次赋值。
先 将两个单调不减的数列{u1,u2…um}与{v1,v2…vm} 合并为一个单调不减的数列{w1,w2…w2m}方法为u1与v1 比较,若u1≥ v1,w1 :=v1。再对u1与v2进行比较, 依次对
i, j 1 ~ n i j
min
n
d
i j
ij
ij
xij
i 1~ n
j 1~ n
2 s n2
为了减少 变量个数
s.t.
x
j 1 n
i 1
1
1
(1)
1 2 5
x
ij
(2)
s 1,2,n (3)
作用是什么
i , js
x
ijபைடு நூலகம்
s 1
§1.1 组合优化问题与算法
§1.1 组合优化问题与算法
问题: 一类实际问题的数学模型的总称,如TSP、LP etc.
实例: (一个问题中总包含了若干个参数)对问题给定一组 参数所得到的例子。 算法: 一个科学的计算过程,指一步步求解问题的通用程 序,它是解决问题的程序步骤的一个清晰描述。 Note: 算法是相对问题而言的,不单单是针对问题的某个实例。
设 机器速度提高100倍 为1亿次/秒
给定1秒的 机器时间 算法A……可解规模n=1000×10 算法B……可解规模 n=20+log2100
提供好的算法比提高机器效率更重要
§1.2 计算复杂性问题
Definition 3 若存在一个常数 C ,使得对所有 n ≥ 1, 都有︱f(n)︱≤ C ︱g(n)︱,则称函数 f(n) 是 O(g(n))。 设 A 是解某一问题 D的算法,对 D 的任一规模为 n
求将他们从小到大重新排列
比较交换法: 取出x1,x2,…xn中的最小者(需比较 n-1次)令其为b1(需n赋值次),从x1,x2,…xn中去 掉b1,在余下的n-1个数中选出最小者,令其为b2,…
直到得到b1,b2,……bn,易知其算法共做了n(n-1)/2次比
较,至多n(n+1)/2次赋值,计算复杂性为,O(n2).
的函数,用来表示算法的时间需求。对于每一个可能
的输入长度,它是该算法解此输入长度的最坏可能的 实例所需的时间(基本运算步骤)。
§1.2 计算复杂性问题
Note: 研究计算复杂性问题主要是针对n很大的情形 1° 9n2 与 2n2 —— O(n2)

f(n) = 12n4 - 8n3 + 5n2 + 2n - 80
City 4
间的距离为dij.如何
选择一条道路使得 商人每个城市走一 遍后回到起点且所 走路程最短
City 2 City 3
TSP可分为:对称(dij=dji)
和非对称(dij ≠ dji)距离两种
§1.1 组合优化问题与算法
TSP问题的数学模型:
设:
共有多少 变量? n(n-1)
i个城市到第j个城市的边 1 表示回路通过第 xij 否则 0
( x1 x2 ) ( x2 x3 ) ( x2 x3 )
§1.2 计算复杂性问题
Example 6 (TSP)已知完全图 G 上每一条边(vi,vj) 的权wij,及常数 h 。问是否存在一个 H-圈 C,使得
( vi , v j )C
由 n-1个点构成回路而留一个点在外面。
x
iS jS
ij
1
§1.1 组合优化问题与算法
共同特点:可行方案是有限的 ——组合优化问题 Definition 1 组合优化问题π是一个极小化(或极大化)
的问题,它是由以下三部分组成: (1)实例集合 ; (2)对每个实例 I,有一个有穷的可行解集合 S(I) (3) 目标函数 f,它对于每个实例I和每个可行解σ ∈ S(I), 赋以一个有理数 f (I, σ). 则实例I的最优解为这样一个可行解 σ* ∈ S(I) ,它使得对于所有σ∈S(I),都有 f (I, σ*) ≤ f (I, σ) (f (I, σ*) ≥f( I, σ))。
的二进制表示的长度的总和。可简化为决策变量的个
数n,或者顶点的个数m .)f(n)
, g(m)
etc.
§1.2 计算复杂性问题
相关因素: 2° 与实例的参数有关 , 如LP 问题:
max z=c’x s.t. Ax≤b x≥0, c ≤0 , b ≥0
Definition 2 算法的时间复杂性是关于实例输入长度
w2,w3…w2m赋值,计算量为O(m)。
将 {x1,x2,……xn}从小到大重新排列(设:n=2p+1 如果n 不是2的幂次可补充若干个很大的数字使之成为2 的幂次)。
§1.2 计算复杂性问题
2 p+1= n
将2p+1个数分成2p个单调不减的2元组,计算量为O(2p) 将2元组两两合并成2p-1个单调不减的4元组,计算量
24 25
1s 24s
26
10min
27
28
29
136.5d
30
10.8y
31
325y
4. 3h 4.9d
§1.2 计算复杂性问题
一、如何计算时间
用初等运算——算术运算、比较、转移等指令的次
数,来表示一个算法在假设的计算机上执行时所需的 时间。 相关因素: 1° 与实例的输入规模有关,是输入规模
的函数(输入规模指的是:一个问题的实例所有参数
相关文档
最新文档