39
NP- Completenes s Michael Tsai 2013/11/28

NP-Completeness

  • Upload
    lanai

  • View
    57

  • Download
    4

Embed Size (px)

DESCRIPTION

NP-Completeness. Michael Tsai 2013/11/28. http://www.phdcomics.com/comics/archive.php?comicid=804. Complexity class co-NP. class NP is closed under complement? ( 尚未得知 ) 意思 就是說 的話 , 否 ? co-NP: all languages that satisfies. NP-Complete languages. “The hardest languages in NP” - PowerPoint PPT Presentation

Citation preview

Page 1: NP-Completeness

NP-CompletenessMichael Tsai2013/11/28

Page 2: NP-Completeness

2

http://www.phdcomics.com/comics/archive.php?comicid=804

Page 3: NP-Completeness

3

Complexity class co-NP class NP is closed under complement?

( 尚未得知 ) 意思就是說的話 , 否 ? co-NP: all languages that satisfies

Page 4: NP-Completeness

4

NP-Complete languages “The hardest languages in NP” If NP-P is nonempty, then these in NP-

Complete are in NP-P (such as HAM-CYCLE)

Reducibility 解一個破全部 , 一箭千雕

Page 5: NP-Completeness

5

Reducibility 如果 Q 可以 reduce 成 Q’, 則表示任何一個 Q

的 instance 都可以”換句話說”變成 Q’ 的一個 instance

一元一次方程式 : ax+b=0 可以視為一元二次方程式的特例 : , 解出來可以得到對應的一元一次方程式解 .

如果一個問題 Q 可以 reduce 成另外一個問題Q’, 則 Q 不會比 Q’ 難解 .

Page 6: NP-Completeness

6

Reduction is polynomial-time reducible to , ( 寫成 )

if there exists a polynomial-time computable function f: such that for all , if and only if .

f: reduction function 用來計算 f 的 polynomial-time algorithm

F: reduction algorithm

If , is not more than a polynomial factor harder than .

Page 7: NP-Completeness

7

Page 8: NP-Completeness

8

Lemma: If are languages such that , then implies .

白話解釋 : 可以轉換成 , 所以應該比較難解 . 既然那 .

Proof: We will construct a polynomial-time

algorithm which decides .

Page 9: NP-Completeness

9

NP-Completeness Definition: A language is NP-Complete if

1. , and2. for every .

NPC: the class of NP-Complete languages.

NP-hard: if a language L satisfies 2, but not necessarily 1, then we say that L is NP-hard.

Page 10: NP-Completeness

10

Theorem: 1. 如果有任何 NP-Complete 的問題是

polynomial-time solvable, 那麼 P=NP. 2. 相同地 , 如果有任何 NP 的問題不是

polynomial-time solvable, 那麼沒有任何NP-Complete 問題是 polynomial-time solvable.

Proof: 1. 假設 而且 . 則任何我們可以使用的特性 , 及

Lemma 34.3 (slide #8), 得到 , 所以 P=NP.2. 為 1. 的 contrapositive. (1 成立時 , 2 一定成

立 )

NP-Complete 的特性使它為決定 P 是否等於 NP 的關鍵 !!

Page 11: NP-Completeness

11

大多數學者覺得應該是這樣子 : ( 但未被證明 )

P 和 NPC 沒有重疊的地方

P 和 NPC 被整個包在 NP 裡面

Page 12: NP-Completeness

12

證明一個 NP-complete problem 證明一個問題是 NP-complete 然後再用 polynomial-time reducibility 證明

其他問題是 NP-complete 我們要證明的 : Circuit satisfiability

Page 13: NP-Completeness

13

Circuit Satisfiability 先來定義一些名詞 : Boolean combinational element ( 我們會

用到的 ):

Truth Table

NOT Gate AND Gate OR Gate

Page 14: NP-Completeness

14

一些定義 Boolean combinational circuit: 一個或更

多個用連接線接起來的 boolean combinational elements.

連接線可以將某 output 接到一個或更多個input( 一條連接線只能最多接一個 element 的output)

Fan-out: 連接線連接的 element input 數目 Circuit input: 沒接到某 element output 的

連接線 Circuit output: 沒接到某 element input 連

接線

Page 15: NP-Completeness

15

一些定義 Circuit output 只有一個 (true or false) Boolean combinational circuit 沒有 cycle

( 轉換成 graph 的話沒有 cycle)

Truth assignment

Satisfying assignment: 某 truth assignment 使得 output 出來是 1

Satisfiable circuit: 有 satisfying assignment 的 circuit

Page 16: NP-Completeness

16

Circuit Satisfiability Problem: 給定一個由 AND, OR, NOT gates 組成的

boolean combinational circuit. 此 circuit 是否satisfiable?

( 是否有至少一組 truth assignment 使 output 為true)

Size: element (gate) 數目 +wire 數目 假設我們可以把任一 circuit C encode 成 binary string 則我們可以用 formal language 定義此問題 :

實際用途 : 尋找不是 satisfiable 的 sub-circuit, 然後把該 sub-circuit整個換掉 , 變成一條只產生 false 的連接線即可 .

Page 17: NP-Completeness

17

Circuit satisfiability 暴力法 : 檢查 k 個 input 的所有組合產生的

output 需要 非 polynomial time! 證明 : The circuit-satisfiability problem is

NP-Complete.1. The circuit-satisfiability problem belongs

to the class NP2. Any language in NP can be reduced to

the circuit-satisfiability problem in polynomial time (The circuit-satisfiability problem is NP-hard)

Page 18: NP-Completeness

18

Lemma: The circuit-satisfiability problem belongs to the class NP.

Proof: 我們可以產生一個 two-input, polynomial time

的演算法 A 來 verify CIRCUIT-SAT. Input 1 為 circuit C 本身 (encode 成 binary

string) Input 2 為一 certificate, 代表 circuit C 的所有

wires 的 boolean values 演算法 A: 檢查兩件事情 1. 所有 certificate 裡面寫的 boolean values 真

的可以依據 circuit 裡面的 gate 計算後得到 2. 整個 circuit 的 output 是 true 兩者都成立的話輸出 1, 不然就輸出 0.

Page 19: NP-Completeness

19

如果是 satisfiable 的 circuit input 給 A, 則一定可以找到一個 certificate, size 是 C 的size 的 polynomial 倍數以內 , 使得 A output true.

如果是 unsatisfiable circuit input 給 A, 則無論如何無法使 A output true.

A 可以在 polynomial time 裡面執行完畢 . 綜合以上 : CIRCUIT-SAT

Page 20: NP-Completeness

20

Lemma: The circuit-satisfiability problem is NP-hard.

Proof ( 非正式 ):

( 背景知識 ) 計算機結構相關 :

我們可以把 instruction 的執行想成把某一個memory configuration 轉換成另外一個 .

Computer Program(Series of

instructions)

Registers(Program counter)

Memory ( 廣義的 )

Configuration: 某個時間點的 memory 的整個狀態

Page 21: NP-Completeness

21

假設 L 為 NP 中任一 language(problem) 我們在此證明中將描述一個 polynomial-time

演算法 F. 此演算法可以計算 reduction function f, 把每一個 binary string x 對應到一個 circuit C=f(x), 使得和互為充要條件 .

因為 , 所以有 two-input, polynomial-time的 verification 演算法 A. F 將使用 A 來計算 f.

假設 T(n) 是 A 的 worst case 執行時間 , 且( 是某 constant) . Certificate 的長度也是 .

Page 22: NP-Completeness

22

M 是電腦硬體 , 也是combinational circuit!

最多執行 T(n) steps , 也就是轉換configuration T(n) 次

x: input y: certificate

Page 23: NP-Completeness

23

直接把上下的 wire 對接 ( 沒有中間的 configuration)

直接把上下的 wire 對接 ( 沒有中間的 configuration)

output

F 如何產生一個對應的 Circuit C: input: y

C computes C(y)=A(x,y) for any input y of length

Page 24: NP-Completeness

24

剩下兩件事情要證明 : 1. F 計算出來的轉換是正確的 ( 正向 ) 假設有一個 certificate y 長度為並使

得 A(x,y)=1. 則我們將 y 當作 C 的 input 的時候 , 會使得 C 的 output 為 true. 因此當certificate 存在的時候 , C 亦為 satisfiable.

( 反向 ) 假設 C 為 satisfiable, 則一定可以找到一 y 使得 C(y)=1, 也就是 A(x,y)=1.

1. 得證 .

Page 25: NP-Completeness

25

2. F 只需要花 polynomial time

首先 : configuration 的大小 is polynomial in n. program A 大小為 constant length of x is n length of y is working storage: polynomial in n ( 不然執行時間不

會是 polynomial time) M 的大小 is polynomial in configuration 大小 :

所以也是 polynomial in n. C 最多有 t 個 M (t=), 所以總共整個 C 的大小也是

polynomial in n. 最後 , F 應該可以在 polynomial time 內把 x 轉成

C, 因為每個步驟都只需要花 polynomial time.

Page 26: NP-Completeness

26

用腳撐住門 用腳撐住門 : 有了第一個 NP-complete 問題

以後 , 其他只需要用 reduction 即可以證明某問題為 NP-complete.

Lemma: 如果 L 是某 language, 某 , 且 , 則L 為 NP-hard. 如果除此之外 , 還具有的性質 , 則 L 為 NP-complete.

因此越來越容易證明某問題 L 是 NP-complete: 只要證明某個 NP-complete 問題可以 reduce 成 L 即可 .

Page 27: NP-Completeness

27

Lemma: 如果 L 是某 language, 某 , 且 , 則L 為 NP-hard. 如果除此之外 , 還具有的性質 , 則 L 為 NP-complete.

Proof: L’ is NP-Complete, 所以對於任何 , . 使用遞

移律 (transitivity), 則可得 , 因此 L 為 NP-hard. 如果額外有 , 則 L 為 NP-complete.

L’ : NPC

L≤ 𝑃

≤𝑃

NP

Page 28: NP-Completeness

28

證明某問題是 NP-Complete/NP-Hard

(1-4 證明 NP-Hard, 1-5 證明 NP-Complete)1. 選定某已知 NP-complete 的 language L’2. 描述一個演算法可以算出 function f, f 將每個

L’ 的 instance 轉換成一個 L 的 instance f(x)3. 證明此 function f 使得對於所有及互為充要條

件4. 證明計算出 function f 的演算法只需花

polynomial time5. 證明

Page 29: NP-Completeness

29

Formula Satisfiability Problem

The first problem ever shown to be NP-complete. 使用 language SAT 來表示 formula satisfiability problem. 一個

SAT 的 instance 為一 boolean formula , 包含了 :1. n boolean 變數 :;2. m boolean connectives: 任何具一個或兩個 input 及一個 output

的 boolean function, 如 and3. 括號 .

Truth assignment, satisfying assignment, 及 satisfiable 之定義類似於之前在 circuit satisfiability problem 下的定義 .

Encode the formula: 長度可為 polynomial in n+m . (Formula) satisfiability 問題 : 某一 boolean formula 是否為

satisfiable. . 例 :

Page 30: NP-Completeness

30

Theorem: Satisfiability of boolean formulas is NP-complete.

Proof: 1. 證明 . 要證明 , 我們須證明有 certificate ( 也就是可

以使得 formula 產生 true output 的 truth assignment) 的狀況下某 input formula 可在 polynomial time底下被 verify.

此工作可以很容易地在 polynomial time 內做完 , 只要一步一步把 assignment帶入式子即可 .

Page 31: NP-Completeness

31

2. 證明 SAT 是 NP-hard. 也就是證明 CIRCUIT-SATSAT. ( 已知

CIRCUIT-SATNPC.) 在 polynomial time我們可以把 circuit C 轉成 formula

用 polynomial time 轉換很直觀 !

每一個小括號裡面 , 是在確認每一個 gate 的 input & output 都保持正確的關係 , 同時最後的 output 要是 true. 因此 C 是 satisfiable 和為 satisfiable 互為充要條件 .

Page 32: NP-Completeness

32

3-CNF satisfiability 一個比較狹隘定義的 boolean formula ( 某種特例 )

的 satisfiability 是否還是 NP-complete 問題呢 ?原因 : 很多 NP-complete 問題都可以從 boolean

formula satisfiability 轉換過去 . 但是這樣有點困難 : boolean formula satisfiability太多 case 要考慮了 .

因此我們通常想要限制一些條件 , 減少一些 case, 使得要從”限制版” satisfiability 轉換到別的問題的時候比較簡單 .

( 不要限制太多使整個問題變成 polynomial-time solvable 了 )

Page 33: NP-Completeness

33

3-CNF satisfiability Literal: 變數或變數 negation(not 變數 ) Conjunctive normal form (CNF): AND of

clauses ( 用 AND 連接的括號們 ), each of which is the OR of one or more literals (括號裡面是用 OR 連接的 literal 們 )

3-CNF:括號裡面正好有三個 distinct literals. 例 : 3-CNF-SAT: the 3-CNF satisfiability

problem.

Page 34: NP-Completeness

34

Theorem: Satisfiability of boolean formulas in 3-conjunctive normal form is NP-complete.

Proof: 1. 3-CNF-SATNP 可以使用 SAT NP 的證明 .2. 我們要證明 3-CNF-SAT.

Page 35: NP-Completeness

35

𝜙=( (𝑥1→𝑥2 )∨¬ ( (¬𝑥1↔ 𝑥3 )∨𝑥4 ))∧¬𝑥2

步驟 1.1: 從原本的 formula 轉成 parse tree, 用結合律把不完整的括號補上使得每個 node 都是只有一個或兩個children

Page 36: NP-Completeness

36

步驟 1.2: 從 parse tree 轉成用 AND 連接的括號們 , 每個小括號表示 node 的 operation

注意到每個小括號裡面最多只有三個literal

Page 37: NP-Completeness

37

步驟 2: 將每一個小括號變成 CNF.

步驟 2.1: 建立的 truth table

步驟 2.2: 寫出 formula (disjunctive normal form):

步驟 2.3: 再用 DeMorgan’s law 把 變回

( 𝑦1∧ 𝑦2∧𝑥2)∨ (𝑦1∧¬ 𝑦2∧𝑥2 )∨ (𝑦1∧¬ 𝑦2∧¬𝑥2)∨(¬ 𝑦1∧ 𝑦2∧¬𝑥2)

𝜙1′ ′=(¬𝑦1∨¬ 𝑦2∨¬𝑥2 )∧ (¬ 𝑦1∨ 𝑦2∨¬𝑥2 )∧ (¬ 𝑦1∨ 𝑦2∨𝑥2 )∧(𝑦1∨¬ 𝑦 2∨𝑥2)

Page 38: NP-Completeness

38

已經為 CNF, 且每個小括號內最多三個 literal 的第 i 個小括號 . 我們使用輔助用的變數 p 和 q 對每個 :1. 如果有三個 literals, 那麼直接將放入2. 如果有兩個 literals, 也就是 , 那麼把它改成

後放入3. 如果只有一個 literal, 也就是 , 那麼將它改

成 後放入

步驟 3: 將轉成 3-CNF 的 .

Page 39: NP-Completeness

39

轉換完畢以後 , 我們會發現 3-CNF formula is satisfiable 和 is satisfiable 是互為充要條件的 .

最後我們必須證明此轉換可以在 polynomial time 裡面完成 .

1. 從轉換成的時候每個 connective 產生最多一個變數和一個小括號 .

2. 從轉換成的時候 , 每個小括號最多產生八個小括號

3. 從轉換成的時候 , 每個小括號最多產生四個小括號

4. 因此最後產生的的大小 is polynomial in 的大小

5. 每個轉換都只需要 polynomial time, 因此整體來說也只需要 polynomial time.