49
Cook-Levin Theorem Proof and Illustration Kwak, Nam-ju Applied Algorithm Laboratory KAIST 1 Applied Algorithm Lab. KAIST WSAC2010 Talk 11st, January, 2010

Cook-Levin Theorem Proof and Illustration Kwak, Nam-ju Applied Algorithm Laboratory KAIST 1 Applied Algorithm Lab. KAIST WSAC2010 Talk 11st, January, 2010

Embed Size (px)

Citation preview

Cook-Levin TheoremProof and Illustration

Kwak, Nam-juApplied Algorithm Laboratory

KAIST

1Applied Algorithm Lab. KAIST

WSAC2010 Talk11st, January, 2010

Contents

• NP• NP-complete• SAT Problem• A Characteristic of NP-complete• Cook-Levin Theorem• Proof of Cook-Levin Theorem• Illustration• Corollary: 3SAT∈NPC

2Applied Algorithm Lab. KAIST

NP

• Definition NP is the class of languages that have

polynomial time verifiers.

• Definition (informal) A verifier V for a language A is an algorithm

which accepts a given input w to A if a corresponding certificate or a proof c exists.

3Applied Algorithm Lab. KAIST

NP

• Theorem A language is in NP iff it is decided by

some nondeterministic polynomial time Turing machine.

4Applied Algorithm Lab. KAIST

NP-complete

• Definition A language B is NP-complete if

• B∈NP, and

• ∀A∈NP, A≤PB.

5Applied Algorithm Lab. KAIST

NP-complete

• Examples SAT, 3SAT, CLIQUE, VERTEX-COVER,

HAMPATH, SUBSET-SUM, and etc.

6Applied Algorithm Lab. KAIST

SAT Problem

• Definition Boolean variables: variables that can

take on the values TRUE and FALSE Boolean operations: AND, OR, and NOT Boolean formula: an expression

involving Boolean variable and operations

Applied Algorithm Lab. KAIST 7

SAT Problem

• Definition satisfiable: if some assignment of 0s and

1s to the variables make the formula evaluate to 1

• Example of a satisfiable Boolean formula φ=(¬x∧y)∨(x∧¬z) x=0, y=1, and z=0

Applied Algorithm Lab. KAIST 8

SAT Problem

• Definition (SAT Problem) SAT = {<φ>|φ is a satisfiable Boolean

formula}.

• Given a Boolean formula, is it satisfiable?

Applied Algorithm Lab. KAIST 9

A Characteristic of NP-complete

• Theorem If B∈NPC and B≤PC for C∈NP, then

C∈NPC.

• Is there a fundamental problem for the chain of polynomial time reducibility? P1≤PP2≤P … ≤PPn≤P(?)

10Applied Algorithm Lab. KAIST

Cook-Levin Theorem

• Cook-Levin Theorem SAT∈NPC

• P1≤PP2≤P … ≤PPn≤PSAT

11Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• What to prove is … SAT∈NP (very clear, not treated here) ∀A∈NP, A≤PSAT

• We would show that for each language A∈NP with a given input w to it, it is possible to produce a Boolean formula which is satisfiable if w∈A.

• Definition A≤PB if ∃f such that w ∈A⇔ f(w)∈B and f is

polynomial time computable.

Applied Algorithm Lab. KAIST 12

Proof of Cook-Levin Theorem

Applied Algorithm Lab. KAIST 13

NP

APick one.

input w

SAT

InputBoolean formula φ

φ∈SAT or not?w ∈A or not?

Let’s construct this Boolean

formula!!

Proof of Cook-Levin Theorem

• Proof idea For each language A in NP, with a given

input w for A, produce a Boolean formula φ that simulates the deciding NP Turing machine for A on input w.

Check if the Boolean formula is satisfiable.

14Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

w∈A?

w

A

NP Turing machine

Boolean formula φ

If satisfiable, w∈A; otherwise, w∉A.

given

transformation

SAT problem

Focus on this step.

15Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof idea (cont.) If w∈A, there exists a series of

configurations that results in the accept state, given w as the input of the Turing machine.

We would construct a Boolean formula which is satisfiable if the Turing machine accepts with the input w.

16Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• FYI: Turing machine notation example δ(q0,0)={(q1,x,R)}, δ(q1,1)={(q1,y,R)}, δ(q1, ⊔)={(qaccept,

⊔,L)} This Turing machine accepts {01+}

With 0111 as an input,• q00111⊔

• xq1111⊔

• xyq111⊔

• xyyq11⊔

• xyyyq1⊔

• xyyyqa⊔

Applied Algorithm Lab. KAIST 17

Proof of Cook-Levin Theorem

• Proof w: input A: language N: NP Turing machine that decides A

• Assume that N decides whether w∈A in nk steps, for some constant k.

18Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) “nk×nk-cell”tableau for N on input w

# q0 w1 w2 … wn ⊔ … ⊔ #

# #

# #

# #

nk

nk

start configurationsecond configuration

nk th configuration

19Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) A variable could be represented as xi,j,s.

xi,j,s: true if cell[i,j] is s; otherwise, false. cell[i,j]: the cell located on the ith row

and the jth column.

20Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) The tableau, without any restriction, can

contain many invalid series of configurations.

e.g. cells containing multiple symbols, not starting with the input w and start state q0, neighbor configurations not corresponding the transition rules, not resulting in the accept state, and etc.

21Applied Algorithm Lab. KAIST

# x w1 q3 … wn ⊔ … ⊔ #

# #

# #

# #

# q0 w1 w2 … wn ⊔ … ⊔ #

# x x q1 … wn ⊔ … ⊔ #

# #

# #

# q0 w1 w2 … wn ⊔ … ⊔ #

# x q1 w2 … wn ⊔ … ⊔ #

# x x q1 … wn ⊔ … ⊔ #

# ⊔ ⊔ ⊔ … ⊔ ⊔ … ⊔ #

# ⊔ ⊔ ⊔ … ⊔ ⊔ … ⊔ #

# q0q1 w1 w2 … wn ⊔ … ⊔ #

# #

# #

# #

Proof of Cook-Levin Theorem

• Proof (cont.) Produce a Boolean formula which forces

the tableau to be valid and result in the accept state.

22Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) One cell can contain exactly one symbol

among a state, a tape alphabet, and a #. (φcell) The first configuration should be corresponding

to input w and the start state q0. (φstart) A configuration is derivable from the

immediately previous configuration according to the transition rule of the Turing machine. (φmove)

There should exist a cell containing the accept state. (φaccept)

φ=φcell∧φstart∧φmove∧φaccept23Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

Each cell contain at least one

symbol.

Each cell contain no more than one different symbol.

Here, C=Q∪Γ∪{#} where Q and Γ are the state set and tape alphabet of the Turing machine N.

24Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

Each cell of the first row has a symbol corresponding to the start configuration where the

input is w.

25Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

At least one cell is the accept state.

26Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

φmove checks whether every 2×3 window is legal according to the transition rule of the Turing machine.

27

# … #

# #

# #

… …

# … #Applied Algorithm Lab. KAIST

# q0 x y y y y #

# z q1 y y y y #

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

For example,• δ(q1,a)={(q1,b,R)}, δ(q1,b)={(q2,c,L),

(q2,a,R)}a q1 b

q2 a c

a a q1

a a b

# b a

# b a

some examples of legal 2×3 windows a b a

a a a

a q1 b

q1 a a

b q1 b

q2 b q2

some examples of illegal 2×3 windows

28Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

When Si,j is the set of legal (i, j)-windows and Ui,j is the set of all the (i, j)-windows,

Si,j⊆Ui,j, |Ui,j|=|C|6 → |Si,j|≤|C|6

|S|=|ΣSi,j|≤n2k|C|6

That is, the set of legal windows is finite.

29Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• Proof (cont.) φ=φcell∧φstart∧φmove∧φaccept

30Applied Algorithm Lab. KAIST

That is, for all legal (i, j)-

windows, which is represented as …

a1 a2 a3

a4 a5 a6

Proof of Cook-Levin Theorem

• Proof (cont.)• φ=φcell∧φstart∧φmove∧φaccept

• Now, we get φ as we wished.• If φ is satisfiable, w∈A. That is, to see

if w∈A, we just need to check whether φ is satisfiable or not.

• It is just a SAT problem.

31Applied Algorithm Lab. KAIST

Proof of Cook-Levin Theorem

• What to prove is … (restated) SAT∈NP (very clear, not treated here) ∀A∈NP, A≤PSAT

• Definition (restated) A≤PB if ∃f such that w∈A⇔ f(w)∈B and f is

polynomial time computable.

• What we’ve shown is … w, A, and w∈A f(w)=φ, B=SAT, and φ=f(w)∈B=SAT w ∈A⇔ φ∈SAT ∴A≤PSATApplied Algorithm Lab. KAIST 32

Illustration

• N=(Q, Σ, Γ, δ, q0, qaccept) Q={q0, q1, qaccept} Σ={0, 1}, Γ={0, 1, ⊔} δ(q0,0)={(q1,0,R)} δ(q1,1)={(q1,1,R)} δ(q1, ⊔)={(qaccept, ⊔,L)}

• A=L(N)={01+}={01, 011, 0111, 01111, …}

• w=0111• Then, w∈A?

33Applied Algorithm Lab. KAIST

Illustration

• N can decide in n2 steps where n=|w|. Therefore n2 is 16.

• C={q0, q1, qaccept, 0, 1, ⊔, #}# q0 0 1 1 1 ⊔ … ⊔ #

# #

# #

# #34

16×16 tableau

Applied Algorithm Lab. KAIST

Illustration

35Applied Algorithm Lab. KAIST

Illustration

36Applied Algorithm Lab. KAIST

Illustration

37Applied Algorithm Lab. KAIST

Illustration

• For φmove, find out all the legal windows.

38

# q0 0

# 0 q1

q0 0 0

0 q1 0

q0 0 1

0 q1 1…

0 q1 1

0 1 q1

1 q1 1

1 1 q1

q1 1 0

1 q1 0…

1 1 q1

1 1 ⊔

1 q1 ⊔

1 ⊔ qacc

q1 ⊔ ⊔

⊔ qacc ⊔

q1 1 1

1 q1 1

…⊔ ⊔ ⊔

qacc ⊔ ⊔…

No more than n2k|C|6=42*246=410 legal windows exist. (finite)

Applied Algorithm Lab. KAIST

Illustration

39Applied Algorithm Lab. KAIST

Illustration

• Now, we get φ=φcell∧φstart∧φmove∧φaccept.

40Applied Algorithm Lab. KAIST

Illustration

41

Solve a SAT problem with this Boolean formula, φ.

If satisfiable, w=0111∈A={01+}. (Actually, it is right.)

Applied Algorithm Lab. KAIST

Corollary: 3SAT∈NPC

• CNFs can be converted into CNFs with three literals per clause (as explained soon).

• At first, convert φcell, φstart, φmove, and φaccept into CNF.

Applied Algorithm Lab. KAIST 42

Corollary: 3SAT∈NPC

• φcell, φstart, and φaccept are already in CNF.

Applied Algorithm Lab. KAIST 43

Corollary: 3SAT∈NPC

• φmove is converted into CNF using the distributive laws.

• To CNFs have 3 literals per clause For each clause with less than 3 literals,

do literal replication. For each clause with more than 3

literals, split it with new variables.

Applied Algorithm Lab. KAIST 44

Corollary: 3SAT∈NPC

• Examples (a1∨a2)≡(a1∨a2∨a2)

(a1∨a2∨a3∨a4)≡(a1∨a2∨z)∧(¬z∨a3∨a4)

(a1∨a2∨a3∨a4∨a5)≡(a1∨a2∨z1)∧(¬z1∨a3∨z2)∧(¬z2∨a4∨a5 )

Applied Algorithm Lab. KAIST 45

Corollary: 3SAT∈NPC

• Hence, a SAT problem is able to converted into a equivalent 3SAT problem (in polynomial time).

• That is, SAT≤P3SAT.

• Since SAT∈NPC, considering the definition of NPC, 3SAT∈NPC, too.

Applied Algorithm Lab. KAIST 46

Conclusion

• Theorem (restated) SAT∈NPC 3SAT∈NPC

• All the NP problems are polynomial time reducible into SAT.

47Applied Algorithm Lab. KAIST

<Important NP-complete problems>Picture from http://www.wikipedia.org

Q&A

• Please, ask questions, if any.

48Applied Algorithm Lab. KAIST

Thank you!• Contents covered are based on Introduction to the Theory of Computation, 2nd ed.

written by Michael Sipser.

• The slide theme and the background image are from http://www.m62.net/.

Applied Algorithm Lab. KAIST 49