```WSAC2010 Talk
11st, January, 2010
Cook-Levin Theorem
Proof and Illustration
Kwak, Nam-ju
Applied Algorithm Laboratory
KAIST
Applied Algorithm Lab. KAIST
1
Contents
•
•
•
•
•
•
•
•
NP
NP-complete
SAT Problem
A Characteristic of NP-complete
Cook-Levin Theorem
Proof of Cook-Levin Theorem
Illustration
Corollary: 3SAT∈NPC
Applied Algorithm Lab. KAIST
2
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.
Applied Algorithm Lab. KAIST
3
NP
• Theorem
 A language is in NP iff it is decided by
some nondeterministic polynomial time
Turing machine.
Applied Algorithm Lab. KAIST
4
NP-complete
• Definition
 A language B is NP-complete if
• B∈NP, and
• ∀A∈NP, A≤PB.
Applied Algorithm Lab. KAIST
5
NP-complete
• Examples
 SAT, 3SAT, CLIQUE, VERTEX-COVER,
HAMPATH, SUBSET-SUM, and etc.
Applied Algorithm Lab. KAIST
6
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(?)
Applied Algorithm Lab. KAIST
10
Cook-Levin Theorem
• Cook-Levin Theorem
 SAT∈NPC
• P1≤PP2≤P … ≤PPn≤PSAT
Applied Algorithm Lab. KAIST
11
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
NP
input w
Input
Boolean formula φ
Let’s construct
this Boolean
formula!!
Pick one.
A
SAT
w∈A or not?
φ∈SAT or not?
Applied Algorithm Lab. KAIST
13
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.
Applied Algorithm Lab. KAIST
14
Proof of Cook-Levin Theorem
w∈A?
A
w
NP Turing machine
given
Focus on this step.
transformation
Boolean formula φ
SAT problem
If satisfiable, w∈A; otherwise, w∉A.
Applied Algorithm Lab. KAIST
15
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.
Applied Algorithm Lab. KAIST
16
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.
Applied Algorithm Lab. KAIST
18
Proof of Cook-Levin Theorem
• Proof (cont.)
 “nk×nk-cell”tableau for N on input w
#
q0
w1
w2
…
wn
⊔
…
⊔
#
start configuration
#
#
second configuration
#
#
#
#
nk
nk
Applied Algorithm Lab. KAIST
nk th configuration
19
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.
Applied Algorithm Lab. KAIST
20
##
qxq00q1w1 w1w
q32 w…
2
w…
n
⊔wn … ⊔ ⊔
##
##
x
wn
⊔
…
⊔
#
qx1
q12
w
…
…
#
#
#
⊔ … ⊔
x
x
q
…
#
#Theorem
Proof
ofw Cook-Levin
1
n
#
⊔
⊔
⊔
…
⊔
⊔
…
⊔
#
#
⊔
⊔
⊔
…
⊔
⊔
…
⊔
#
##
⊔
• 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.
Applied Algorithm Lab. KAIST
21
Proof of Cook-Levin Theorem
• Proof (cont.)
 Produce a Boolean formula which forces
the tableau to be valid and result in the
accept state.
Applied Algorithm Lab. KAIST
22
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∧φaccept
Applied Algorithm Lab. KAIST
23
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.
Applied Algorithm Lab. KAIST
24
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.
Applied Algorithm Lab. KAIST
25
Proof of Cook-Levin Theorem
• Proof (cont.)
 φ=φcell∧φstart∧φmove∧φaccept
At least one cell is the accept
state.
Applied Algorithm Lab. KAIST
26
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.
#
#
q0
x
y
y
y
y
#
#
z
q1
y
y
y
y
#
#
#
#
#
#
…
…
#
Applied Algorithm Lab. KAIST
…
…
#
27
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
a
a
q1
#
b
a
q2 a
c
a
a
b
#
b
some examples of legal 2×3 windows
a
a
b
a
a
q1
b
b
q1
b
a
a
a
q1
a
a
q2
b
q2
some examples of illegal 2×3 windows
Applied Algorithm Lab. KAIST
28
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.
Applied Algorithm Lab. KAIST
29
Proof of Cook-Levin Theorem
• Proof (cont.)
 φ=φcell∧φstart∧φmove∧φaccept
That is, for all legal
(i, j)-windows,
which is
represented as …
a1
a2
a3
a4
a5
a6
Applied Algorithm Lab. KAIST
30
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.
Applied Algorithm Lab. KAIST
31
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≤PSAT
Applied 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?
Applied Algorithm Lab. KAIST
33
Illustration
• N can decide in n2 steps where n=|w|.
Therefore n2 is 16.
• C={q0, q1, qaccept, 0, 1, ⊔, #}
#
16×16 tableau
Applied Algorithm Lab. KAIST
q0
0
1
1
1
⊔
…
⊔
#
#
#
#
#
#
#
34
Illustration
Applied Algorithm Lab. KAIST
35
Illustration
Applied Algorithm Lab. KAIST
36
Illustration
Applied Algorithm Lab. KAIST
37
Illustration
• For φmove, find out all the legal windows.
…
…
#
q0
0
q0
0
0
q0
0
1
#
0
q1
0
q1
0
0
q1
1
0
q1
1
1
q1
1
q1
1
0
q1
1
1
0
1
q1
1
1
q1
1
q1
0
1
q1
1
1
1
q1
1
q1
⊔
q1
⊔
⊔
⊔
⊔
⊔
1
1
⊔
1
⊔
qacc
⊔
qacc ⊔
qacc ⊔
⊔
…
…
…
No more than n2k|C|6=42*246=410 legal windows exist. (finite)
Applied Algorithm Lab. KAIST
38
Illustration
Applied Algorithm Lab. KAIST
39
Illustration
• Now, we get φ=φcell∧φstart∧φmove∧φaccept.
∧
Applied Algorithm Lab. KAIST
40
Illustration
∧
Solve a SAT problem with this Boolean formula, φ.
If satisfiable, w=0111∈A={01+}. (Actually, it is right.)
Applied Algorithm Lab. KAIST
41
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.
<Important NP-complete problems>
Picture from http://www.wikipedia.org
Applied Algorithm Lab. KAIST
47
Q&A
Applied Algorithm Lab. KAIST
48
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
```