530 likes | 920 Views
WSAC2010 Talk 11st, January, 2010. Cook-Levin Theorem Proof and Illustration. Kwak, Nam-ju Applied Algorithm Laboratory KAIST. Contents. NP NP-complete SAT Problem A Characteristic of NP-complete Cook-Levin Theorem Proof of Cook-Levin Theorem Illustration Corollary: 3SAT∈NPC. NP.
E N D
WSAC2010 Talk 11st, January, 2010 Cook-Levin TheoremProof and Illustration Kwak, Nam-ju Applied Algorithm Laboratory KAIST Applied Algorithm Lab. KAIST
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
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
NP • Theorem • A language is in NP iff it is decided by some nondeterministic polynomial time Turing machine. Applied Algorithm Lab. KAIST
NP-complete • Definition • A language B is NP-complete if • B∈NP, and • ∀A∈NP, A≤PB. Applied Algorithm Lab. KAIST
NP-complete • Examples • SAT, 3SAT, CLIQUE, VERTEX-COVER, HAMPATH, SUBSET-SUM, and etc. Applied 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
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
SAT Problem • Definition (SAT Problem) • SAT = {<φ>|φ is a satisfiable Boolean formula}. • Given a Boolean formula, is it satisfiable? Applied Algorithm Lab. KAIST
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
Cook-Levin Theorem • Cook-Levin Theorem • SAT∈NPC • P1≤PP2≤P … ≤PPn≤PSAT Applied 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
Proof of Cook-Levin Theorem Input Boolean formula φ NP input w Let’s construct this Boolean formula!! Pick one. A SAT w∈A or not? φ∈SAT or not? Applied Algorithm Lab. KAIST
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
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
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
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
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
Proof of Cook-Levin Theorem • Proof (cont.) • “nk×nk-cell”tableau for N on input w start configuration second configuration nk nk th configuration nk Applied 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. Applied 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. Applied Algorithm Lab. KAIST
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
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
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
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
Proof of Cook-Levin Theorem • Proof (cont.) • φ=φcell∧φstart∧φmove∧φaccept At least one cell is the accept state. Applied 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. Applied Algorithm Lab. KAIST
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)} some examples of legal 2×3 windows some examples of illegal 2×3 windows Applied 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. Applied Algorithm Lab. KAIST
Proof of Cook-Levin Theorem • Proof (cont.) • φ=φcell∧φstart∧φmove∧φaccept That is, for all legal (i, j)-windows, which is represented as … Applied Algorithm Lab. KAIST
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
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
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
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
Illustration Applied Algorithm Lab. KAIST
Illustration Applied Algorithm Lab. KAIST
Illustration Applied Algorithm Lab. KAIST
Illustration • For φmove, find out all the legal windows. … … … … … No more than n2k|C|6=42*246=410 legal windows exist. (finite) Applied Algorithm Lab. KAIST
Illustration Applied Algorithm Lab. KAIST
Illustration • Now, we get φ=φcell∧φstart∧φmove∧φaccept. ∧ Applied Algorithm Lab. KAIST
Illustration ∧ 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
Corollary: 3SAT∈NPC • φcell, φstart, and φaccept are already in CNF. Applied Algorithm Lab. KAIST
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
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
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
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
Q&A • Please, ask questions, if any. Applied 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