第九章 計算複雜度與難解性: np theory 序論

36
第第第 第第第第第第第第第NP Theory 第第 9.1 第第第 (Intractability) 9.2 第第第第第第 9.3 第第第第第第第第第 9.3.1 第第第第第第第第第第第第第第 9.3.2 第第第第第第第第第 9.3.3 第第第第第第第 第第第第第第第 第第第第第第第第

Upload: trinh

Post on 12-Jan-2016

86 views

Category:

Documents


0 download

DESCRIPTION

第九章 計算複雜度與難解性: NP Theory 序論. 9.1 難解性 (Intractability) 9.2 再探輸入大小 9.3 三種主要的問題類別 9.3.1 已找到多項式時間演算法的問題 9.3.2 已被證明難解的問題 9.3.3 位被證明為難解,也未找到多項式 時間演算法的問題. 9.4 NP Theory 9.4.1 集合 P 與 NP 9.4.2 NP-Complete 問題 9.5 處理 NP-Hard 問題 9.5.1 解售貨員旅行問題的近似演算法 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第九章   計算複雜度與難解性: NP Theory  序論

第九章 計算複雜度與難解性: NP Theory 序論

9.1 難解性 (Intractability) 9.2 再探輸入大小 9.3 三種主要的問題類別 9.3.1 已找到多項式時間演算法的問題 9.3.2 已被證明難解的問題 9.3.3 位被證明為難解,也未找到多項式 時間演算法的問題

Page 2: 第九章   計算複雜度與難解性: NP Theory  序論

9.4 NP Theory

9.4.1 集合 P 與 NP

9.4.2 NP-Complete 問題 9.5 處理 NP-Hard 問題 9.5.1 解售貨員旅行問題的近似演算法 9.5.2 解裝箱問題的近似演算法

Page 3: 第九章   計算複雜度與難解性: NP Theory  序論

9.1 難解性 (Intractability)

問題可分三種 1. 已找到多項式時間演算法的問題 2. 已被證明為難解的問題 3. 並未被證明為難解,但也未找到 多項式時間演算法的問題

Page 4: 第九章   計算複雜度與難解性: NP Theory  序論

定義:一個稱為多項式時間演算法 (polynomial-time algorithm) 的演算法必須符合:

可找到一個該演算法輸入大小的多項式函數,作為該演算法之最差情況時間複雜度上限。也就是說,若 n 為輸入大小,則存在著一個多項式函數 p(n) 使得

Page 5: 第九章   計算複雜度與難解性: NP Theory  序論

9.2 再探輸入大小

EX: 決定一正整數 n 是否為質數

Page 6: 第九章   計算複雜度與難解性: NP Theory  序論

定義:對於一個給定的演算法,我們定義輸入大小 (input size) 為該演算法用來寫出輸入的字元數

定義:對一個給定的演算法,我們定義W(s) 為該演算法在輸入大小為 s 的情形下,執行步驟數量的最大值。 W(s) 被稱為該演算法的最差時間複雜度

Page 7: 第九章   計算複雜度與難解性: NP Theory  序論

交換排序步驟數最大值

Page 8: 第九章   計算複雜度與難解性: NP Theory  序論

令 s=nlgL 為輸入大小 則

Page 9: 第九章   計算複雜度與難解性: NP Theory  序論

9.3 三種主要的問題類別

以難解性 (intractability) 作為分類的標準 1. 已找到多項式時間演算法的問題 2. 已被證明為難解的問題 ─ 不可判定的問題 (undecidable problem)

3. 並未被證明為難解,但也未找到 多項式時間演算法的問題

Page 10: 第九章   計算複雜度與難解性: NP Theory  序論

9.4 NP Theory

Page 11: 第九章   計算複雜度與難解性: NP Theory  序論

範例 9.2 售貨員旅行問題(Traveling Salesperson Problem)

給定一個有向權重圖 (weighted, directed graph) 。又旅程的定義為:一條由某個頂點出發,結束於該頂點,並拜訪所有其他頂點各一次的路徑。售貨員旅行最最佳化問題是要去找出一個具有最小邊線權重總和的旅程。

售貨員旅行決策問題是要決定:給定正整數d ,是否存在著一個權重總和不比 d 大的旅程。

Page 12: 第九章   計算複雜度與難解性: NP Theory  序論

範例 9.3 0-1 knapsack 問題

0-1 knapsack 最佳化問題的定義為:假定每個物品都有自己的 weight 與 profit ,並給定可以放在背包 (sack) 中的最大 weight 總和為 W ,求出可被放在背包 (knapsack) 中的物品的 profit 最大值

0-1 knapsack 決策問題的定義為:給定 profit P ,是否可能將物品裝進背包,使得 weight 總和不大於 W ,而總 profit 至少要等於 P

Page 13: 第九章   計算複雜度與難解性: NP Theory  序論

範例 9.4著色問題 (Graph-Coloring Problem)

著色最佳化問題 (Graph-Coloring optimization Problem) 的定義為:給定一個圖 (graph) ,找到最少數量的顏色對這個圖著色,使得兩個相鄰的頂點不會被圖上同一個顏色。這個最少數量被稱為該圖的色數 (chromatic number)

Page 14: 第九章   計算複雜度與難解性: NP Theory  序論

著色決策問題的定義為:對於一個正整數 m ,是否存在著一種最多使用 m 種顏色的著色方法,使得兩個相鄰的頂點不會被圖上同一個顏色。

Page 15: 第九章   計算複雜度與難解性: NP Theory  序論

9.4.1 集合 P 與 NP

定義: P 為所有可被多項式時間演算法解決的決策問題構成的集合

猜測階段 (Guessing Stage,Nondeterministic) :給定某問題的一個實例,本階段只負責產生某字串 S 。

核對階段 (Verification Stage,Deterministic) :該實例與前一個階段產生的字串 S 就是這個階段的輸入

Page 16: 第九章   計算複雜度與難解性: NP Theory  序論

定義:多項式時間非必然式演算法 (polynomial-time nondeterministic algorithm) 就是一個核對階段為多項式時間演算法的非必然式演算法

定義: NP 為所有被多項式時間非必然式演算法解決的決策問題構成的集合

Page 17: 第九章   計算複雜度與難解性: NP Theory  序論

9.4.2 NP-Complete 問題

Page 18: 第九章   計算複雜度與難解性: NP Theory  序論

定義:若存在著一種多項式時間轉換演算法,可將決策問題 A 轉為決策問題 B ,則問題 A 可在多項式時間內以多對一的方式約化約為問題 B 。 ( 通常只說問題A 化約為問題 B)

Page 19: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.1

若決策問題 B 在 P 中,且

則決策問題 A 亦在 P 中

Page 20: 第九章   計算複雜度與難解性: NP Theory  序論
Page 21: 第九章   計算複雜度與難解性: NP Theory  序論

定義:如果下列兩個條件都滿足,我們就稱某個問題 B 為 NP-Complete :

1. B 在 NP 中 2. 對於每個其他在 NP 中的問題 A

Page 22: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.2

(Cook 定理 )CNF-Satisfiability 為 NP-Complete

Page 23: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.3

如果下列兩條件為真,我們就稱某個問題 C 為 NP-complete :

1.C 在 NP 中 2. 對於另一個 NP-complete 問題 B ,

證明:由於 B 為 NP-complete ,對於任一個在 NP 中的問題 A , 。不難察覺可化約性 (reducibility) 是遞移的。因此 。由於 C 在 NP 中,因此 C 為 NP-complete

Page 24: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.4

若 ,則集合

不為空集合

Page 25: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.5

若任一個 NP-complete 問題的互補問題在 NP 中,則所有 NP 問題的互補問題都在 NP 中

Page 26: 第九章   計算複雜度與難解性: NP Theory  序論

9.4.3 NP-Hard 、 NP-Easy 與 NP-Equivalent 問題

定義:若問題 A 可在多項式時間內被一個假設的解問題 B 的多項式時間演算法解掉,則稱問題 A 多項式時間 Turing 可化約為問題 B 。

Page 27: 第九章   計算複雜度與難解性: NP Theory  序論

定義:給定問題 B ,如果對於某個 NP-complete 問題 A ,

則問題 B 被稱為 NP-hard

Page 28: 第九章   計算複雜度與難解性: NP Theory  序論

定義:給定問題 A ,如果對於某個在 NP中的問題 B 有

則問題 A 被稱為 NP-easy

定義:若某個問題既是 NP-hard 又是 NP-easy ,則該問題被稱為 NP-equivalent

Page 29: 第九章   計算複雜度與難解性: NP Theory  序論

9.5 處理 NP-Hard 問題

9.5.1

解售貨員旅行問題的近似演算法

Page 30: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.6

令 mindlist 為一條最佳旅程的總 weight ,而 minapprox 則利用書中描述的方法求得旅程總 weight 。故

Page 31: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.7

令 mindlist 為一條最佳旅程的總 weight ,而 minapprox2 為利用 minimal weight matching 方法所求得旅程的總 weight 。

Page 32: 第九章   計算複雜度與難解性: NP Theory  序論

9.5.2 解裝箱問題的近似演算法

Page 33: 第九章   計算複雜度與難解性: NP Theory  序論
Page 34: 第九章   計算複雜度與難解性: NP Theory  序論
Page 35: 第九章   計算複雜度與難解性: NP Theory  序論

定理 9.8 令 opt 為某個裝箱問題實例的最少箱子

數,並令 approx 為非遞增最先優先法所用的箱子數,則

Page 36: 第九章   計算複雜度與難解性: NP Theory  序論

證明