当前位置:文档之家› 第一讲:计算复杂性理论

第一讲:计算复杂性理论


大多数研究者认可 的包容关系
L m
计算复杂度的影响因素
简化模型:模型2
计算复杂度的影响因素
简化模型:模型3。
计算复杂度的影响因素
建模假设 例:高空抛球的运动轨迹。 ----抛物线模型 假设1.没有空气阻力; 假设2.地面是平面。 ----椭圆模型
计算复杂度的影响因素
探索空间1 探索空间1---解的近似度、满意度
例:0—10之间的整数解:1-9共9个可行解(一维) 0—10之间的实数解:精确到小数点后6位 共有107个可行解(一维); 107n个可行解(n维)
n! 10141世紀 → 10120世紀 102551世紀 → 102530世紀
问题与算法
每个問題都可能有多个算法存在. 每个算法的计算量(速度)都不同。 例: 赝品金币問題: 问题:9個外观完全一样的金币.,有一个是假的 (重量轻). 提问:用天秤来鉴别真伪,天秤需要使用几次?
贋品金币問題算法 問題算法
优化技术与方法
計算量(1) 計算量
+,-,×,÷ 比較:≠,≤,≥,<,> 5种基本演算都是用1step 可以实现. 実際上,×比+多占用時間. 「四舍五入」不算基本演算.
計算量(2) 計算量
{a1, a2,..., an}:n個整数 Q1. 求和(1): a1+a2+・・・+an. 1 + +a n-1 steps → O(n)算法. Q2. 求和(2): (1) 2×a1+・・・+ 2×an , 2n-1 steps→ O(n)算法. (2) 2×(a1+・・・+an) , n steps→ O(n)算法.
尚未确信能否用多項式時間算法求解的问题的 集合称为NP (non-deterministic polynomial)问题 某一个问题不属于NP问题的証明 如能够找到一个多項式時間算法 (簡単) 某一个问题属于NP问题的証明 可以归结为某一类既知的NP类问题(现阶段7类))
优化问题的分类( )(根据算法) )(根据算法 优化问题的分类(3)(根据算法) NP-complete problem:
计算量的膨胀(1) 计算量的膨胀
10行×10列棋盘上米粒的数量 (第1格内放1粒米,以后每格顺次增加1倍……)
格序号 米粒数 重量 (kg)
1 9 18 27 36 45 54 63 72 81
1 256 131072 67108864 34359738368 17592186044416 9007199254740992 4611686018427387904 2361183241434822606848 1208925819614629174706176 2.4×108亿吨
n n n2 n3 2n n!
10 100 1,000 10,000 10-5秒 10-4秒 10-3秒 0.01秒 10-4秒 0.01秒 1秒 100秒 0.001秒 1秒 16.6分 277時間 0.001秒 1014世紀 10284世紀 0.036秒 10141世紀 102551世紀 宇龄: 宇宙的年齢 1.5×108 世紀 (150億年)
2.68時間
23.8 日
3.86世紀
3.05時間
204 日
893年
130 日
26798 宙齢
0.015宙齢
2.68×108宙齢 1.09×1022宙齢
1宙齢=150億年
旅行商问题的计算量( ) 旅行商问题的计算量(1)
n個都市訪問的可能的巡回路线:
(n −1)×(n − 2)×L×3×2×1= (n −1)!
计算机速度增加的效果( ) 计算机速度增加的效果(1)
10秒間的計算量? 100MIPS 10倍 100倍 1000倍 n 107 108 109 1010 n2 3千 1万 3万 10万 n3 215 462 1千 2千 2n 23 27 30 33 n! 10 11 12 13 1000倍⇒ 1step 用 10-9秒 ⇒ 10-9秒 光可以行进30cm
計算量(3) 計算量
Q3. 計算:a1b1+・・・+anbn. 2n-1 steps. Q4. 2个n×n阶矩阵相乘. n2(2n-1) steps( n2(n+n-1)).
計算量(4) 計算量
Q5. {a1, a2,..., an}:n個整数 求其和为最大的部分集合. 所有的部分集合的和进行比較 2n (n-1) +(2n-1) → O(n2n)算法.
能用多項式時間算法求解的问题的 集合称为P (polynomial)问题 某一个问题属于P问题的証明 如能够找到一个多項式時間算法 (簡単) 某一个问题不属于P问题的証明 不存在?没找到?(困难)
优化问题的分类( )(根据算法) )(根据算法 优化问题的分类(2)(根据算法) NP class problem:
使用2次天秤,就可以鉴别出假币.
1 2 3
4 7 8 9
5
6
右边軽
左边軽
平衡
1 2 3 中有偽币 1
左边軽
7 2 3
平衡 右边軽
8
9
4
5
6
中有偽币
中有偽币

3
2
7
8
9
4
5
6
计算量的表示法: 计算量的表示法 上界值表示法
O記号:(Big O Notation)
•定義: O(f(n)) 读作order f(n), 或阶 f(n) 即: g(n)=O(f(n)) –表示对于任意定数c 和 m,以及对所有 n>m,
第一讲: 计算复杂性理论 (Complexity Theory) 计算量的概念 计算量的表示 算法与计算量 计算复杂性 影响计算复杂性的因素
优化问题及其计算的复杂性 例:
1 2 3 4 5 3 4 5 6 7 9 3
0 1 2
组合优化问题: 組合数虽然有限,但因其数量太多,寻找最优解很难。 背包问题(knapsack problem): n个物品, 2n实行可能解。 旅行商问题(traveling salesperson problem): 都市n个, (n‐1)!实行可能解。 用有限時間可以求解,但计算时间太长,成本太高
时间复杂度: 计算量:计算各基本操作的实行回数 (time complexity) 空间复杂度 各计算时点内存中保持数据个数的最大值 (space complexity)
两者的总称: 两者的总称:
计算的复杂度
计算复杂度的影响因素
简化模型 例:
R T 1/2 r
3
计算复杂度的影响因素
简化模型:模型1.
有下式成立:
g(n)< cf(n)
计算量的表示法——例 例 计算量的表示法
n2+1000n→O(n2) log n+n3+1000n2 →O(n3) 判断: n! → O(nn)? 10n2 → O(n3)? log n → O(n)? 思考: n是奇数时 1,
g ( n) = 2 n , n是偶数时
n!的Stirling近似公式
n n!= 2πn e

n
1 1 139 1 1+ 12n + 288n2 − 51840n3 + O n4
n
n 2πn e
Big Oh 記法
4 関数1/ n 的定数倍的大小可以忽略
旅行商问题的计算量( ) 旅行商问题的计算量(2)
探索空间2 探索空间2---解空间大小 例:桌子上有6根火柴,要求构建出4个三角形。
计算复杂度的影响因素
探索策略的选取
计算复杂度的影响因素
问题本身 P问题 NP问题(NP-hard,NP困难问题) NP完全问题
优化问题的分类( )(根据算法) )(根据算法 优化问题的分类(1)(根据算法) P class problem:
集合NP中的問題=NP問題 如果某个NP問題能够求解,则因 所有NP問題都可以经过归结,转 化为该问题,从而可以求解所有 NP問題。 这样的NP問題=NP完全問題 ——集合NP中的最难的问题= NP完全问题
P、 NP、 NP完全的包容关系 、 、 完全的包容关系
NP NP完全
旅行商問題 背包問題 。。。
2.82×10−6 秒 2.5×10−5秒 1.25×10−3秒 6.64×10−6 秒 1×10−4秒 9.97×10−5秒 1×10−2秒
1.33×10−3秒
3.13秒 1.67分
0.01秒 10秒
115 日
31世紀
1秒
2.78時間
指数时间算法的计算时间
100MIPS(million instructions per second) 计算机的情形
计算机速度增加的效果( ) 计算机速度增加的效果(2)
计算速度
1 2 10 100 1000 10000
100000 1000000
O(2n) 100 101 103 107 110 113 117 120
1秒可以求解问题的规模 O(n) O(n2) O(n5) 100 100 100 200 141 115 1000 316 158 10000 1000 251 100000 3162 398 1000000 10000 631 10000000 31623 1000 100000000 100000 1585
1×10−4秒
−5
3.32×10−7 秒 1×10−6秒 8.64×10−7 秒 4×10−6 秒 1.47×10−6 秒 2.13×10−6秒 9×10−6 秒 1.6×10−5秒
n
2
1×10−5秒 8×10−5秒 2.7×10−4 秒
n
3
n
相关主题