330 likes | 517 Views
Fall 2008. The Chinese University of Hong Kong. CSC 3130: Automata theory and formal languages. NP-complete problems. Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130. Polynomial-time reductions.
E N D
Fall 2008 The Chinese University of Hong Kong CSC 3130: Automata theory and formal languages NP-complete problems Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130
Polynomial-time reductions • Language Lpolynomial-time reduces to L’ if there exists a polynomial-time computable map R that takes an instance x of L into instance y of L’ s.t. x ∈ L if and only if y ∈ L’ L (IS) L’ (CLIQUE) R (G, k) x y (G’, k’) x ∈ L y ∈ L’ (G has IS of size k) (G’ has clique of size k’)
The Cook-Levin Theorem Every L∈NP reduces to SAT SAT = {f: f is a satisfiable Boolean formula} (x1∨x2 ) ∧ (x2∨x3∨x4) ∧ (x1) (x1∨x2 ) ∧ (x1) ∧ (x2) f = f = is satisfiable is not satisfiable x1 = T x2 = Fx3 = T x4 = T
NP-hardness • Language L is NP-hard if every L’in NP reduces to L • Intuitively, NP-hard means “harder than all of NP” • The Cook-Levin Theorem says SAT NP SAT is NP-hard P
NP-complete • L is NP-complete if L is NP-hard and L∈ NP • Intuitively, NP-complete means “hardest in NP” • Recall that SAT ∈ NP, so SAT is NP-complete SAT NP If SAT∈P, then P = NP P
Proof of Cook-Levin Theorem • To prove it, we have to describe a reduction R: Every L∈NP reduces to SAT R w Boolean formula f f is satisfiable w ∈ L
Proof of Cook-Levin Theorem • All we know about L: It has a poly-time NTM M • Let’s look at computation tableau of M on input w S w M q0 w1 w2 S-th configuration symbol at time T T Since M is nondeterministic, there may be many possible tableaus … qacc
Proof of Cook-Levin Theorem S q0 n = length of input w w1 w2 height of tableau is p(n) for some polynomial p T u width is at most p(n) k possible tableau symbols … qacc true, if the (T, S) cell of tableau contains u 1 ≤ S ≤ p(n) xT, S, u = 1 ≤ T ≤ p(n) false, if not 1 ≤ u ≤ k
Proof of Cook-Levin Theorem • We will design a formula f such that: R w Boolean formula f f is satisfiable w ∈ L variables of f : xT, S, u assignment to xT, S, u way to fill up the tableau accepting computation tableau satisfying assignment f is satisfiable M accepts w
Proof of Cook-Levin Theorem • We want to construct (in time poly(n)) a formula f : true, if the (T, S) cell of tableau contains u 1 ≤ S ≤ p(n) xT, S, u = 1 ≤ T ≤ p(n) false, if not 1 ≤ u ≤ k true, if the xs represent a valid accepting tableau f(x1, 1, 1, ..., xp(n), p(n), k) = false, if not
Proof of Cook-Levin Theorem S f = fcell ∧ f0 ∧ fmove ∧ facc q0 w1 w2 T fcell: “Every cell contains exactly one symbol” u f0: “The first row is q0w1w2...wk☐...☐” … qacc fmove: “The moves between rows follow the transitions of M” facc: “qacc appears somewhere in the last row”
Proof of Cook-Levin Theorem • Desired meaning • Implementation: fcell: “Every cell contains exactly one symbol” or: “Exactly one of xS, T, 1 ∨ ... ∨ xS, T, k is true” fcell = fcell1, 1 ∧ ... ∧ fcellp(n), p(n) where fcellT, S = (xT, S, 1 ∨ ... ∨ xT, S, k) ∧ (xT, S, 1 ∨ xT, S, 2) ∧ (xT, S, 1 ∨ xT, S, 3) ∧ ... ∧ (xT, S, k-1 ∨ xT, S, k) at least one symbol no two symbols
Proof of Cook-Levin Theorem • Desired meaning • Implementation: f0: “The first row is q0w1w2...wk☐...☐” facc: “qacc appears somewhere in the last row” f0 = x1, 1, q0 ∧ x1, 1, w1 ∧ x1, 1, w2 ∧ ... ∧ x1, p(n),☐ facc = xp(n), 1, qacc ∨ xp(n), 2, qacc ∨ ... ∨ xp(n), p(n), qacc
Valid and invalid windows … 6q3t0u0 … … 0k6t0q0 …0 … 6t3t0u0 … … 0t6t0u0…0 invalid window valid window … 6c3a0t0 … … 0c6a0p0…0 … 6t3q3u0 … … 0t6a0q7 …0 invalid window valid if d(q3, u) = (q7, a, R) … 6t3t0u0 … … 0t6t0q3 …0 … 6c3a0t0 … … 0b6a0t0…0 valid window valid window
Proof of Cook-Levin Theorem • Desired meaning • Implementation: q0 b a a q3 b a b fmove: “The moves between rows follow transitions of M” c q7 b b fmove2, 2 … qacc fmove = fmove1, 1 ∧ ... ∧ fmovep(n)-3, p(n)-3 ∨ fmoveT, S = (xT, S, a1 ∧ xT, S+1, a2 ∧ xT, S+2, a3 ∧ xT+1, S, a4 ∧ xT+1, S+1, a5 ∧ xT+2, S+1, a6) over all valid windows a1 a2 a3 a4 a5 a6
Other NP-complete problems CLIQUE = {(G, k): G is a graph with a clique of k vertices} IS = {(G, k): G is a graph with an independent set of k vertices} VC = {(G, k): G is a graph with a vertex cover of k vertices} CLIQUE, IS and VC are NP-complete CLIQUE IS VC SAT NP
Proving NP-hardness • To show L is NP-hard, it is enough to reduce from some L’ we already know is NP-hard • For now we can take L’= SAT • To show L is NP-complete, we also need to argue that L is in NP • This is usually the easy part roadmap: CLIQUE VC IS 3SAT SAT
3SAT SAT = {f: f is a satisfiable Boolean formula} 3SAT = {f: f is a satisfiable Boolean formula in conjunctive normal form with at most 3 distinct literals per clause} (x2∨(x1∧x2 ))∧(x1∧(x1∨x2 )) literal: xi or xi gates CNF: AND of ORs of literals (x1∨x2 ) ∧ (x2∨x3∨x4) ∧ (x1) (conjunctive normal form) clause literals 3CNF: CNF with ≤3 lit/clause
NP-hardness of 3SAT • Theorem • Proof: We describe a reduction R from SAT 3SAT is NP-hard R Boolean formula f 3CNF formula f’ f’ is satisfiable f is satisfiable
Reducing SAT to 3SAT • Example: f = (x2∨(x1∧x2 ))∧(x1∧(x1∨x2 )) x4x5 x7 x7 = x4 ∧ x5 x10 T T T TT T F FT F T FT F F TF T T FF T F TF F T FF F F T AND (x4∨x5∨x7) x8 x9 (x4∨x5∨x7) OR NOT x6 x7 (x4∨x5∨x7) AND AND (x4∨x5∨x7) x4 x5 x3 NOT NOT OR (x4∨x5∨x7) ∧(x4∨x5∨x7) x2 x1 x2 x1 x1 x2 ∧(x4∨x5∨x7) ∧(x4∨x5∨x7) We give extra variables to every gate (“wire”)
Reducing SAT to 3SAT • Step 1: Add variable xn+j for each gate Gj in f • Step 2: Write 3CNF fj for each gate Gj, j = {1, ..., t} • Step 3: Output R Boolean formula f 3CNF formula f’ requires thatoutput of f is true f’ = fn+1 ∧ fn+2 ∧ ... ∧ ft ∧ xn+t
Reducing SAT to 3SAT • Every satisfying assignment of f extends uniquely to a satisfying assignment of f’ • Conversely, every satisfying assignment of f’ must contain a satisfying assignment of f R Boolean formula f 3CNF formula f’ f’ is satisfiable f is satisfiable
Independent set • Theorem IS = {(G, k): G is a graph with an independent set of k vertices} IS is NP-hard CLIQUE VC An independent set is a subset of vertices so that no pair is connected 2 1 IS 3SAT {1, 2}, {1, 3}, {4} are independent sets ✓ SAT 4 3
Reducing 3SAT to IS • Proof: We describe a reduction from 3SAT to IS 3SAT = {f: f is a satisfiable Boolean formula in 3CNF} IS = {(G, k): G is a graph with an independent set of k vertices} R 3CNF formula f (G, k) G has an independentset of size k f is satisfiable
Reducing 3SAT to IS • Example: f = (x1∨x2 ) ∧ (x2∨x3∨x4) ∧ (x1) x2x3x4 x1x2 TTT all interconnected TTF TT x1 TFT T TF TFF FTT F FT etc. FTF FF FFT FFF Put an edge for every inconsistency
Reducing 3SAT to IS • Example: f = (x1∨x2 ) ∧ (x2∨x3∨x4) ∧ (x1) x2x3x4 satisfying assignment of f x1x2 TTT TTF TT IS of size 3 in G TFT x1 TF TFF T x1 = T x2 = Fx3 = T x4 = T FTT any IS of size 3 in G FF FFT G FFF satisfying assignment of f edges = inconsistencies
Reducing 3SAT to IS • G has a vertex for every clause Ci of f and every satisfying assignment of Ci • G has an edge between any two vertices that represent inconsistent assignments • k is the number of clauses in f R 3CNF formula f (G, k)
Reducing 3SAT to IS • Every satisfying assignment of f gives an independent set of size k in G • Conversely, from every IS of size k in G we can “extract” a consistent and satisfying assignment of f R 3CNF formula f (G, k) f is satisfiable G has an IS of size k
Vertex cover • Theorem VC = {(G, k): G is a graph with a vertex cover of size k} VC is NP-hard CLIQUE VC A vertex cover is a set of vertices that touches (covers) all edges ✓ 2 1 IS ✓ 3SAT ✓ {2, 4}, {3, 4}, {1, 2, 3} are vertex covers SAT 4 3
Reducing IS to VC • Proof: We describe a reduction from IS to VC • Example R (G, k) (G’, k’) G has an IS of size k G’ has a VC of size k’ 2 1 vertex covers independent sets {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}, {1, 2, 3, 4} ∅, {1}, {2}, {3}, {4}, {1, 3}, {2, 3} 4 3
Reducing IS to VC • Claim • Proof S is an independent set of G if and only if S is a vertex cover of G S is an independent set of G no edge has both endpoints in S every edge has an endpoint in S S is a vertex cover of G
Reducing IS to VC • Set G’ = G, k’ = n – k (n = number of vertices)by previous Claim. R (G, k) (G’, k’) G has an IS of size k G’ has a VC of size k’
The ubiquity of NP-complete problems • We saw a few examples of NP-complete problems, but there are many more • A surprising fact of life is that most CS problems are either in P or NP-complete • A 1979 book by Garey and Johnsonlists 100+ NP-complete problems