NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

24
NP-completeness NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability

Transcript of NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Page 1: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

NP-completenessNP-completeness

Section 7.4

Giorgi Japaridze

Theory of Computability

Page 2: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Importance 7.4.a Giorgi Japaridze Theory of Computability

NP-complete problems form a certain important subclass of NP. The phenomenon of NP-completeness was discovered in the early 1970s by Stephen Cook and Leonid Levin.

• If a polynomial time algorithm exists for any of the NP-complete problems, all problems in NP would be polynomial time solvable.

• To prove that P=NP, it would be sufficient to take any particularNP-complete problem A and show that AP. • To prove that P≠NP, it would be sufficient to take any particularNP-complete problem A and show that AP.

• On the practical side, finding that a given problem A is NP-complete may prevent wasting time looking for a (probably nonexistent, or unlikely-to-be-found even if exists) polynomial time algorithm for A.

Page 3: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Boolean formulas 7.4.b Giorgi Japaridze Theory of Computability

Boolean variables x,y,… take one of the two values 0 (false) or 1 (true).Boolean operations: (NOT), (AND), (OR). We write A for A.Boolean formulas are constructed from variables and operations in the standard way. Once a truth assignment for variables is given, the value of a compound formula is calculated as follows: 0 = 1 0 0 = 0 0 0 = 01 = 0 0 1 = 0 0 1 = 1 1 0 = 0 1 0 = 1 1 1 = 1 1 1 = 1

If x=0 and y=1, what is the value of the following formula?

(y (x y)) (x y)

(1 (0 1)) (0 1)(1 (1 0)) (0 0)

(1 1 ) 0 1 0

1

Page 4: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

The SAT problem 7.4.c Giorgi Japaridze Theory of Computability

We say that a Boolean formula is satisfiable iff there is an assignment of 0s and 1s to its variables that makes the formula evaluate to 1. Are the following formulas satisfiable?

x(xy)x(xy)

SAT = {<> | is a satisfiable Boolean formula}

SAT P?SAT NP?

Page 5: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Polynomial time reducibility 7.4.d Giorgi Japaridze Theory of Computability

Definition 7.28 A polynomial time computable function is a function computed by some polynomial time TMO.

Definition 7.29 Let A and B be be languages over an alphabet . We say that A is polynomial time mapping reducible, or simply polynomial time reducible, to B, written APB, if a polynomial time computable function f: * * exists s.t. for every string w*, wA iff f(w)B.Such a function f is called a polynomial time reduction of A to B.

Theorem 7.31 If APB and BP, then AP.

Proof. Assume M is a polynomial time decider for B, and f is apolynomial time reduction from A to B. The following is a polynomial time algorithm deciding A: N = “On input w: 1. Compute f(w). 2. Run M on input f(w) and do (accept or reject) whatever M does.”

Page 6: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

The 3SAT problem 7.4.e Giorgi Japaridze Theory of Computability

• A literal is a Boolean variable x or a negated Boolean variable x.

• A clause is several literals connected with s, as in (x y z t).

• A Boolean formula is in conjunctive normal form, called a cnf-formula, if it comprises several clauses connected with s, as in (x y z t) (x z) (x y t)

• A cnf-formula is a 3cnf-formula if all the clauses have 3 literals, as in (x y z) (x z t) (x y t) (z y t)

• 3SAT = {<> | is a satisfiable 3cnf-formula}

3SAT P?3SAT NP?

Page 7: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Reducing 3SAT to CLIQUE (a) 7.4.f Giorgi Japaridze Theory of Computability

Theorem 7.32 3SAT is polynomial time reducible to CLIQUE.

Proof. Let be a 3cnf-formula with k clauses such as = (a1 b1 c1) (a2 b2 c2) … (ak bk ck)Our reduction f is going to generate the string <G,k>, where G is an undirected graph defined as follows.

The nodes of G are organized into k groups of three nodes each calledthe triples, t1,…,tk. Each triple corresponds to one of the clauses in, and each node in a triple corresponds to a literal in the associated clause. Label each node of G with its corresponding literal in .

The edges of G connect all but two types of pairs of nodes: (1) no edge is present between two nodes in the same triple, and (2) No edge is present between nodes with contradictory labels,as in x and x.

Page 8: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Reducing 3SAT to CLIQUE (b) 7.4.g Giorgi Japaridze Theory of Computability

= (x x z) (x z z) (x z z)For instance, if is as above, then G would be

x

z

z

zzx

z

x

x

Obviously transforming into G takes polynomial time. Next we argue that (slide 7.4.h) if 3SAT, then <G,k>CLIQUE, and that (slide 7.4.i) if <G,k>CLIQUE, then 3SAT. So, we indeed have a polynomial time reduction.

Page 9: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Reducing 3SAT to CLIQUE (c) 7.4.h Giorgi Japaridze Theory of Computability

x

z

z

zzx

z

x

x

= (x x z) (x z z) (x z z)Suppose has a satisfying assignment. Then at least one literal should be true in each clause. Select one such literal in each clause, and select the corresponding nodes in the graph. Those nodes form a k-clique! Because there are k such nodes, and each pairis connected by an edge because they are in different triples and non-contradictory.

Page 10: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Reducing 3SAT to CLIQUE (d) 7.4.i Giorgi Japaridze Theory of Computability

x

z

z

zzx

z

x

x

= (x x z) (x z z) (x z z)Now suppose G has a k-clique. Each of its nodes should be in different triples as thereare no edges within triples. So, each triple has exactly one node of the clique. Selectthe corresponding literals in , and select an assignment that makes each such literal

true. This is possible (why?). Then the same assignment makes true.

x =z =

01

Page 11: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Definition of NP-completeness 7.4.j Giorgi Japaridze Theory of Computability

Definition 7.34 A language B is NP-complete if it satisfies two conditions: 1. B is in NP, and 2. every language in NP is polynomial time reducible to B.

Theorem 7.35 If a language B is NP-complete and BP, then P=NP.

Proof. Immediately from the above clause 2 and Theorem 7.31.

Theorem 7.36 If CNP, B is NP-complete and BPC, then C is NP-complete.

Proof. We already know that CNP, so we only need to show that APC for every ANP. Consider any ANP. We must have APB, because B is NP-complete. Letf be a polynomial time reduction from A to B. Next, we know that BPC, so let gbe a polynomial time reduction from B to C. Let now h be the composition of f and g, that is, h(w) = g(f(w)). It is easy to see that h is a polynomial time reduction from A to C.

So, indeed A PC.

Page 12: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Getting started 7.4.k Giorgi Japaridze Theory of Computability

Theorem 7.37 (Cook-Levin Theorem) SAT is NP-complete.

Proof. That SATNP is obvious (why?).

So we only need to show that every language A from NP is polynomial time reducible to SAT.

Pick an arbitrary ANP, and N be NTM deciding A. We assume that the running time of N is nk (to be more accurate, nk-3).

We are going to show how to turn a string w into a Boolean formula that “simulates” N on input w in the sense that is satisfiable iff N accepts w.

Page 13: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Tableaus 7.4.l Giorgi Japaridze Theory of Computability

A tableau for N on w is an nknk table whose rows are the configurations of a(ny) computation branch of N on input w=w1…wn. The 1st and last columns contain #s.

1st (start) configuration#

#

#

#

#

#

#

#

q0 w1 w2 … wn - - …2nd configuration

nkth configuration

windownk

nk

We say that a tableau is accepting if any of its rows is an accepting configuration. Every accepting tableau for N on w corresponds to an accepting computation branchof N on input w. Thus the problem of determining whether N accepts w is equivalentto determining whether there is an accepting tableau for N on w.

3rd configuration

-

Page 14: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: 7.4.m Giorgi Japaridze Theory of Computability

#

#

#

#

#

#

q0 w1 w2 … wn - - …-wn

wn

--

--

……

……

- -

q7 w2w1

w1 $q5

w3

w3

w3

We denote by C the set Q{#}, where Q is the set of states of N and is the tape alphabet. C is thus the set of all possible contents of the cells of the tableau.

The cell in row i and column j is called cell[i,j]. For each such cell and each sC, we create a Boolean variable xi,j,s. Its meaning is going to be “cell[i,j] contains symbol s”.

Our formula is going to be built from those variables, and we have

= cell start move accept

cell asserts that each cell contains exactly one symbol

start asserts that the first row is the start configuration on input w

move asserts that rows are related to each other in accordance with the transition function

accept asserts that one of the cells contains the accept state

thus asserts that the tableau is for an accepting computation branch, i.e. that wA.

Page 15: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: cell 7.4.n Giorgi Japaridze Theory of Computability

cell asserts that each cell contains exactly one symbol

“cell[i,j] contains symbol s” = xi,j,s

“cell[i,j] contains at least one symbol” = ( xi,j,s) sC

“cell[i,j] does not contain both s and t” = (xi,j,s xi,j,t)

“cell[i,j] contains at most one symbol” = ( (xi,j,s xi,j,t)) s,tC s≠t

“cell[i,j] contains exactly one symbol”

[ (xi,j,s ) sC ( (xi,j,s xi,j,t) )] s,tC

s≠t

“each cell

1i,jnk

cell

Page 16: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: start 7.4.o Giorgi Japaridze Theory of Computability

start asserts that the first row is the start configuration on input w

“cell[1,1] contains #” = x1,1,#

1st (start) configuration# #q0 w1 w2 … wn - - …-

“cell[1,2] contains q0” = x1,2,q0

start =

x1,1,# x1,2,q0

x1,3,w1 x1,4,w2

… x1,n+2,wn

x1,n+3,- … x1,nk-1,- x1,nk,#

Page 17: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: accept 7.4.p Giorgi Japaridze Theory of Computability

accept asserts that one of the cells contains the accept state

“cell[i,j] contains qaccept” = xi,j,qaccept

accept = xi,j,qaccept1i,jnk

Page 18: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Windows 7.4.q Giorgi Japaridze Theory of Computability

1 2 3 … j …

the (i,j) window

1

2

3

i

...

a1 a2 a3

a4 a5 a6

...

We say that (the content of) a window is legal if it(s content) could appear in some (legal) tableau for N.

Page 19: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Examples of legal and illegal windows

7.4.r Giorgi Japaridze Theory of Computability

Where is the transition function of N, assume we have (q1,a) = {(q1,b,R)} and (q1,b) = {(q2,c,L),(q2,a,R)}. Are the following windows legal or illegal?

q1

q2

a b

a c

q1

a

a b

a q2

a

a

a q1

a b

b

#

# a

b a

b

a

a a

b q2

b

c

b b

b b

b

a

a a

a a

q1

q1

a b

a a

q1

q2

b b

b q2

Page 20: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Claim about windows 7.4.s Giorgi Japaridze Theory of Computability

Claim 7.41 If the top row of the tableau is the start configuration and every window in the tableau is legal, then each row in the tableau is a configuration that legally follows the preceding one.

Proof. Consider any two adjacent rows (configurations). In the upper configuration, every cell that isn’t adjacent to a state symbol and doesn’t contain the boundary symbol #, is the center top cell in a window whose top row contains no states. Therefore that symbol, in a legal window, must appear unchanged in the center bottom of the window. Hence it appears (as it should) in the same position in the bottom configuration.

b

?

x y

b ?

The window containing the state symbol in the center top cell guaranteesthat the corresponding three positions are updated consistently with the transition function. Therefore, if the upper configuration is a legalconfiguration, so is the lower configuration, and the lower one followsthe upper one according to N’s rules.

q1

Page 21: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: move 7.4.t Giorgi Japaridze Theory of Computability

move asserts that rows are related to each other in accordance with the transition function

Let us say that a 6-tuple (a1,a2,a3,a4,a5,a6) of symbols from C is legal

if the window on the right is legal. Notice that the number of legal 6-tuples is fixed and it does not depend on w. BTW, at most how many legal 6-tuples could exist?

a2a1 a3

a4 a5 a6

|C|6

“the content of cell[i,j] is (a1,…,a6)”

(xi,j-1,a1 xi,j,a2

xi,j+1,a3 xi+1,j-1,a4

xi+1,j,a5 xi+1,j+1,a6

)

“the (i,j) window is legal”

(a1,…,a6) is legal

move = 1 i nk-12 j nk-1

(the (i,j) window is legal)

Page 22: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: The complexity of the reduction

7.4.u Giorgi Japaridze Theory of Computability

Our reduction does nothing but builds , so its time complexity is asymptotically

the same as the size of . We want to see this size is polynomial in n. For this, in turn, it would be sufficient to verify the polynomiality (in n) of the four conjuncts of .

What is the size of start?

What is the size of accept?

What is the size of cell?

What is the size of move?

The complexity of our reduction is thus O(n2k), i.e. polynomial.

Page 23: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

Cook-Levin theorem: Wrapping it up 7.4.v Giorgi Japaridze Theory of Computability

It remains to understand why our reduction is indeed a reduction, i.e., why it is the case that wA iff is satisfiable.

() Assume wA. Then N accepts w, i.e. there is an accepting computation branch of N on input w. Construct a tableau that describes such a branch. Then declare each variable xi,j,s to be true iff, in that tableau, cell[i,j] contains symbol s. Obviously this truth assignment satisfies .

() Assume is satisfiable, i.e. there is an assignment that makes true. Fix it. Construct a tableau by putting symbol s in cell[i,j] iff xi,j,s is true (the truth of cell

guarantees that such a construction is possible and unique). Obviously such a tableau describes a certain accepting computation branch of N on input w. Thus, N accepts w,meaning that wA.

Page 24: NP-completeness Section 7.4 Giorgi Japaridze Theory of Computability.

The NP-completeness of 3SAT 7.4.w Giorgi Japaridze Theory of Computability

Corollary 7.42 3SAT is NP-complete.

Proof. From logic, a polynomial-time-computable function f: {<> | is a(ny) Boolean formula} {<> | is a 3cnf-formula}

is known such that, for any Boolean formula , we have

is satisfiable iff f() is satisfiable.

Thus, f is a polynomial time reduction from SAT to 3SAT. Hence, in view of the already known NP-completeness of SAT together with Theorem 7.36, we find that 3SAT is NP-complete.

The book gives a slightly different and full proof of this result.