Np completeness
Sponsored Links
This presentation is the property of its rightful owner.
1 / 72

NP-completeness PowerPoint PPT Presentation


  • 239 Views
  • Uploaded on
  • Presentation posted in: General

NP-completeness. Class of hard problems. Outline. Introduction Problems and Languages Turing machines and algorithms P and NP Satisfiability problem Reduction Other NP-complete problems. Problems. A problem can be defined as a mapping from the instance to the answer. Examples:

Download Presentation

NP-completeness

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


NP-completeness

Class of hard problems


Outline

  • Introduction

  • Problems and Languages

    • Turing machines and algorithms

    • P and NP

  • Satisfiability problem

  • Reduction

  • Other NP-complete problems

NP-complete Problems


Problems

  • A problem can be defined as a mapping from the instance to the answer.

  • Examples:

    • Shortest path problem

      {<graph G, node u, node v>}  {a shortest path P}

    • 0/1 Knapsack problem

      {<set S of objects, capacity C>} {the maximum value}

    • Closest-pair-of-points problem

      {<set P of points>}  {<point q, point r>, which is the closest pair of points in P}.

    • Satisfiable problem

      {<boolean formula>}  {T, F}

NP-complete Problems


Abstract problems

A set of instances

A set of solutions

NP-complete Problems


Decision Problems

  • A decision problem is a problem whose answer is either “yes” or “no”.

  • Example: Satisfiable problem

    {<boolean formula>}  {T, F}

  • Any problem can be described in term of a decision problem.

NP-complete Problems


Reformulate Problems as Decision Problems

  • Shortest path problem

    • {<graph G, node u, node v, int k>}  {T, F}

    • The answer is T iff there is no path between u and v, which is shorter than k.

  • 0/1 Knapsack problem

    • {<set S of objects, capacity C, value V>} {T, F}

    • The answer is T iff there is no selection of objects fitted in the sack which yields higher value than V.

NP-complete Problems


Encoding of Decision Problems

  • An encoding of a problem is a mapping from the set of instances of the problem to a set of strings.

  • Example: shortest path

    • The encoding of <graph G, node u, node v, path p> in the Shortest path problem is a string which is used to describe G, u, v, and p.

      • G can be described by a string of its adjacency matrix.

      • u and v can be described by two strings, indicating the node labels.

      • p can be described by a sequence of node in the path.

NP-complete Problems


Abstract/ Concrete problems

A set of instances

Mapping

(encoding)

Abstract

problem

Mapping

(encoding)

A set of solutions

Concrete

problem

NP-complete Problems


Encoding of Problems

  • Is X a prime ?

    f:{X |X>0 and is a binary number}{Y,N}

    f(x) = Y if X is prime

    f(x) = N otherwise

  • Is a 3-CNF expression X satisfiable?

    f:{X | X is a 3-CNF expression}  {Y, N}

    f(x) = Y if X is satisfiable

    f(x) = N otherwise

NP-complete Problems


Why encoding is important?

  • Encoding determines the instance size.

  • Example: an integer n

    • n encoded as one number

      => instance size = 1

    • n encoded as binary number

      => instance size = log2 n

    • n encoded as unary number

      => instance size = n

NP-complete Problems


Problems and Languages


Languages and Decision Problems

  • Let  be an alphabet.

  • A language over  is a set of strings created from symbols in .

    • B={0,1}* is the set of all binary strings.

    • { is a palindrome} is a language over B.

  • A yes-instance (or no-instance) is an instance whose answer is “yes” (or “no”).

  • An instance must be either a yes- or a no-instance.

NP-complete Problems


Languages and Decision Problems

  • A decision problem can be encoded in a language {| is an encoding of a yes- instance}.

    • The shortest path problem can be encoded as {e(G, u, v, p>)| p is the shortest path between u and v in the graph G}.

NP-complete Problems


Turing Machines


Turing machines (TM)

  • A Turing machine is a machine which takes a string on its input tape, and decides whether to accept or to reject the string.

  • A Turing machine contains

    • A finite-state control with

      • A start state

      • A halt state

      • Transition function: state x symbol  state x symbol x {R,L}

    • A tape with a Read/Write headwhich can move left and right.

NP-complete Problems


Deterministic/ Nondeterministic Turing machines

  • Difference

    • A transition is deterministic or nondeterministic.

  • What is nondeterminism?

    • Given a state of a machine/program, there is more than one possible next step.

  • Examples

    • Deterministic: functions.

    • Nondeterministic: relations.

NP-complete Problems


Example of a DTM

s

/@,R

/,L

1/,R

p1

q1

/,R

0/,R

@/,R

0/0,L

1/1,L

0/0,R

1/1,R

p2

p4

q2

0/,L

/,L

/1,L

p3

h

NP-complete Problems


How a DTM works

s

/,L

/@,R

1/,R

p1

q1

@

1

0

0

0

1

0

0

0

/,R

0/,R

@/,R

0/0,L

1/1,L

0/0,R

1/1,R

p2

p4

q2

/1,L

/,L

0/,L

On the input 0001000,

the TM halts.

h

p3

NP-complete Problems


How a DTM works

s

/,L

/@,R

1/,R

p1

q1

@

0

0

0

0

0

0

0

/,R

0/,R

@/,R

0/0,L

1/1,L

0/0,R

1/1,R

p2

p4

q2

/1,L

On the input 0000000,

the TM hangs.

/,L

0/,L

h

p3

NP-complete Problems


Example of NTM

  • Let L={ww| w{0,1}*}

r0

@/,R

0/@,R

0/0,R

1/1,R

0/0,L

1/1,L

/,L

s

q0

t0

/@,R

0/0,L

1/1,L

0/,L

0/,L

/,R

/@,L

@/,L

v

p

u

h

/,R

/,R

1/,L

1/,L

0/0,R

1/1,R

q1

t1

0/0,L

1/1,L

/,L

@/,R

1/@,R

0/0,R

1/1,R

r1

NP-complete Problems


Accept/Decide

  • Let T be a Turing machine.

  • For a string  over ,

    • T accepts  iff T halts on  with output “1”.

    • T rejects  iff T halts on  with output “0”.

    • T hangs on  iff T dose not halts on .

  • For a language L over ,

    • T accepts L iff, for any string  in L, T accepts .

    • T decides  iff

      • for any string  in L, T accepts , and

      • for any string  inL, T rejects .

NP-complete Problems


Time complexity

  • A language L is accepted/decided in O(f(n)) by a Turing machine T if, for any length-n string  in L,  is accepted/decided in k·f(n) by a Turing machine T, for some constant k.

  • A language L is accepted/decided in polynomial time by a Turing machine T if, L is accepted/decided in O(nk) by a Turing machine T, for some constant k.

NP-complete Problems


Church-Turing Thesis

  • If there is a Turing machine deciding a problem  in O(f), then there is an algorithm solving  in O(f).

  • Turing machine  algorithm

NP-complete Problems


Complexity classes


Class of P

  • If  is a problem in P, given any instance I of ,

    • there is an algorithm which solves I in O(nk), or

    • there is a Turing machine which accepts e(I) in O(nk) steps,

      where n is the size of e(I) and k is a constant.

  • What does this mean?

    • If  is in P,  is easy because it can be solved in polynomial time.

NP-complete Problems


Class of NP

  • If  is a problem in P, given any instance I and any certificate C of ,

    • there is an algorithm which verifies, in O(nk), that C is the answer of I, for any C and I.

    • there is a Turing machine which verifies, in O(nk), that C is the answer of I, for any C and I.

    • there is a nondeterministic Turing machine which accepts e(I), in O(nk), for any I.

      where n is the size of e(I) and k is a constant.

      What does this mean?

    • If  is in NP,  is not necessarily easy because it can only be verified in polynomial time.

NP-complete Problems


Can be solved in polynomial time

Prove by showing the algorithm.

Cannot be solved in polynomial time

Prove by showing that there is no polynomial-time algorithm.

Can verify the answer in polynomial time.

Can usually be solved by an exponential-time algorithm.

Brute-force algorithm: try every possible answers.

Easy problems / Hard problems

NP-complete Problems


Class of co-NP

  • L is in co-NP ifL is in NP.

NP

co-NP

P

NP-complete Problems


Reduction

Is X more difficult than Y?


Reduction

  • Let L1 and L2 be languages over 1 and 2, respectively. L1 is (polynomial-time) reducible to L2, denoted by L1L2, if there is a TM M computing a function f: 1*2* such that wL1  f(w)L2 in polynomial time.

  • Let P1 and P2 be problems. P1 is (polynomial-time) reducible to P2, denoted by P1P2, if there is an algorithm computing a function f: 1*2* such that w is a yes-instance of P1  f(w) is a yes-instance of P2 in polynomial time.

NP-complete Problems


Meaning of Reduction

P1 is reducible to P2

if  DTM computing, in polynomial time, a function f: 1*2* such that w is a yes-instance of P1  f(w) is a yes-instance of P2.

  • If you can map yes-instances of problem A to yes-instances of problem B, then

    • we can solve A in polynomial time if we can solve B in polynomial time.

    • it doesn’t mean we can solve B in polynomial time if we can solve A in polynomial time.

NP-complete Problems


Example of Reductuion


Satisfiability problem (SAT)

  • Given a Boolean expression , is  satisfiable?

  • (A~BC)(~A~C)B~C is not satisfiable.

NP-complete Problems


3CNF-SAT Problem

  • Given an expression  in 3CNF, is  satisfiable?

  • Given an expression  in 3CNF, is there a truth assignment of propositions in  which makes  true?

  • Example:

    • =(PQR)(PQR)(PSR)(PSR)

    •  is satisfiable when

      • P=t, Q=f, R=f, S=t or

      • P=f, Q=f, R=f, S=t

NP-complete Problems


Clique or Complete Subgraph

  • A graph G=(V,E) has a clique if there is W V such that for all nodes a and b in W, there is an edge between a and b.

C

B

F

A

E

D

NP-complete Problems


Clique Problem

  • Given a graphG=(V,E) and an integer k, is there a clique of size k in G?

  • Example: Is there a clique of size 3, 4, or 5, in the graph below?

C

B

F

A

E

D

NP-complete Problems


3CNF-SAT  Clique

Proof:

To prove that 3CNF-SAT  Clique,

  • Find a function f such that

    • a 3CNF expression  is satisfiable 

      a graph G has a clique of size k, where <G,k>=f() and

    • there is a TM computing f in polynomial time.

      f can be defined as follows:

      Let = (111213)(212223)…(n1n2n3)

      f() = <G,n>, where G=(V, E),

    • V={ij|0<i<n+1, 0<j<4}, and

    • E={(ij, km)| i≠k and ij≠~km}

NP-complete Problems


Building a graph from a 3CNF exp.

(PQR)(PSR)(PSR)

~Q

P

R

~P

P

~S

S

~R

~R

NP-complete Problems


3CNF-SAT  Clique (cont’d)

  • Show  is satisfiableG has clique of size n

  • Let G has a clique of size n.

  • From the definition of G, there is no edge between vertices

    • in the same disjunctive clause, and

    • representing a literal and its negation.

  • A link between two nodes means that the two literals can be true at the same time, and they are in different disjunctive clauses.

NP-complete Problems


Satisfiability and Clique

(PQR)(PSR)(PSR)

~Q

P

R

~P

P

~S

S

~R

~R

NP-complete Problems


Satisfiability and Clique

(PQR)(PQR)(PQR)(PQR)

Q

P

R

~P

P

Q

Q

R

~R

~P

~R

Q

NP-complete Problems


Satisfiability and Clique

(PQR)(PQR)(PQR)(PQR)

Q

P

R

~P

P

Q

Q

R

~R

~P

~R

Q

NP-complete Problems


3CNF-SAT  Clique (cont’d)

  • There is a TM computing f in polynomial time.

NP-complete Problems


Properties of Reductions


Reflexivity of reduction

Theorem:

Let L be a language over . L  L.

Proof:

Let L be a language over .

Let f be an identity function from **.

Then, there is a TM computing f.

Because f is an identity function, wL  f(w)=wL.

By the definition, L  L.

NP-complete Problems


Property of reduction

Theorem:

Let L1 and L2 be languages over .

If L1L2, thenL1L2.

Proof:

Let L1 and L2 be languages over .

Because L1L2, there are a function f such that wL1  f(w)L2, and a TM T computing f in polynomial time.

wL1  f(w)L2.

By the definition,L1L2.

NP-complete Problems


Transitivity of reduction

Theorem:Let L1, L2 and L3 be languages over .

If L1  L2 and L2  L3, then L1  L3.

Proof: Let L1, L2 and L3 be languages over .

There is a function f such that wL1  f(w)L2, and a TM T1 computing f in polynomial time because L1 L2.

There is a function g such that wL2  g(w)L3, and a TM T2 computing g in polynomial time because L2  L3.

wL1  f(w)L2  g(f(w))L3, and T1T2 computes g(f(w)) in polynomial time .

By the definition, L1  L3.

NP-complete Problems


Using reduction to prove P/NP

Theorem: If L2 is in P/NP, and L1L2, then L1 is also P/NP.

Proof:

Let L1 and L2 be languages over , L1L2, and L2 be in P/NP.

Because L2 is in P/NP, there is a DTM/NTM T2 accepting L2 in polynomial time.

Because L1L2, there is a DTM T1 computing a function f such that wL1  f(w)L2 in polynomial time.

Construct a DTM/NTM T=T1T2. We show that T accepts L1in polynomial time.

  • If wL1, T1 in T computes f(w)L2 and T2 in T accepts f(w), in polynomial time.

  • If wL1, T1 in T computes f(w) L2 and T2 in T does not accept f(w) in polynomial time.

    Thus, L1 is also in P/NP.

NP-complete Problems


Using reduction to prove co-NP.

Theorem:

If L2 is in co-NP, and L1L2, then L1 is also in co-NP.

Proof:

Let L1 and L2 be languages over , L1L2, and L2 be in co-NP.

Because L2 is in co-NP,L2 is in NP.

Because L1L2,L1L2. Then,L1 is in NP.

Thus, L1 is co-NP.

NP-complete Problems


NP-completeness


NP-completeness

  • A language (or problem) L is NP-hard if, for any language L' in NP, L' ≤ L.

  • A language (or problem) L is NP-complete if it is in NP and is NP-hard.

NP-complete Problems


Why interested in NP-complete problem

  • Implication on the problem “is P=NP ?”

  • If an NP-complete problem is in P, then P=NP.

  • Why?

    • If L is NP-complete, any language in NP is reducible to L.

    • Since L is in P, any language in NP is reducible to a language in P.

    • Then, any language in NP is in P.

NP-complete Problems


Lemma

If L is a language such that L’ ≤ L for some L’ ∈ NPC, then L is NP-hard.

Moreover, if L ∈ NP, then L ∈ NPC.

Proof

Since L’ is NP-complete, for all L’’ ∈ NP, we have L’’ ≤ L’ .

BecauseL’ ≤ L, L’’ ≤ L by transitivity.

Then,L is NP-hard.

If L ∈ NP, we also have L ∈ NPC.

NP-complete Problems


Ground Reduction

SAT is NP-complete


SAT is NP-complete

  • To prove that SAT is NP-complete:

    • Prove SAT is in NP

    • Prove any language in NP is reducible to SAT.

  • SAT is in NP: Informal proof

    • Given a certificate which is a truth assignment of propositions which makes the expression true, there is an algorithm that can verify the answer in polynomial time.

NP-complete Problems


SAT is NP-complete (cont’d)

Prove any language in NP is reducible to SAT.

Proof:

Let L be any language in NP.

Then, there is an NTM T which accepts L in polynomial time p(n), where n is the input size.

To show that L ≤ SAT, we find a function f such that x L  f(x)  SAT.

That is, to find a function f such that x L  f(x) is satisfiable.

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

That is, to find a function f such that T accepts x  f (x) is satisfiable.

Let f (x)=g1(x)g2(x)g3(x)g4(x)g5(x)g6(x)g7(x).

f (x) describes the sequence of configuration changes which leads to the halt state of T.

f(x) contains propositions Qi,j, Hi,k, and Si,k,j .

Qi,j: T is in state qj after i moves.

Hi,k: T’s tape head is on square k after i moves.

Si,k,j: Symbol jis on square k after i moves.

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g1(x): the initial configuration of T at the beginning.

g2(x): accepting configuration of T after N steps.

g3(x): possible transitions of T.

g4(x): hanging configuration.

g5(x): describe that T is in exactly one state at a time.

g6(x): describe that each square of the tape contains exactly one symbol.

g7(x): describe that change can only made on the tape square on which the tape head is located.

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g1(x): describe the initial configuration of T at the beginning.

n N

Q0,0  H0,0  S0,0,0   S0,k, ik   S0,k, 0

k=1k=n+1

∆ 0 1 1 0 1 ∆ ∆ ∆ ∆ ∆ ∆ ∆ ∆ ∆ ∆ ∆

q0

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g2(x): describe accepting configuration of T after N steps.

QN,a

ha

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g3(x): describe possible transitions of T.

For each transition

δ(qj, l)= (qt1, z1, D1), δ(qj, l)= (qt2, z2, D2)

(Qi,j Hi,k Si,k,l)((Qi+1,t1  Hi+1,d1(k)  Si+1,k,z1)

V (Qi+1,t2  Hi+1,d2(k)  Si+1,k,z2))

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g4(x): describe hanging configuration.

For each transitionδ(qj, l)= ø

(Qi,j  Hi,k  Si,k,l)  (Qi+1,j  Hi+1,k  Si+1,k,l)

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g5(x): T is in exactly one state at a time.

For each time i and states qj0, qj1, qj2, …, qj0≠ qj1 ≠ qj2 ≠ … :

(Qi,j0 v Qi,j1 v Qi,j2 v …)

  • At least one state

    (~Qi,j0v~Qi,j1)(~Qi,j1v~Qi,j2)(~Qi,j0v~Qi,j2)…

  • Never two state at the same time

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g6(x): state that each square of the tape contains exactly one symbol.

For each time i,square k,and symbols 0, 1, 2, …, 0≠ 1 ≠ 2 ≠ … :

(Si,k,0 v Si,k,1 v Si,k,2 v …)

  • At least one symbol in a cell

    (~Si,k,0v~Si,k,1)  (~Si,k,1v~Si,k,2)  (~Si,k,0v~Si,k,2) …

  • Never two symbols in a cell at the same time

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

g7(x): state that change can only made on the tape square on which the tape head is located.

For each i, k, and l :

(~Hi,kSi,k,l)  (Si+1,k,l)

Hi,k v ~Si,k,l v Si+1,k,l

NP-complete Problems


SAT is NP-complete (cont’d)

Proof (cont’d):

From the definition of f, f(x) is true iff T accepts x.

f(x) can be computed in polynomial time.

Thus, SAT is NP-complete.

NP-complete Problems


3CNF-SAT is NP-complete

First, show 3CNF-SAT is in NP.

Let  be a 3CNF expression,and

truth assignments C be a certificate for .

There is an algorithm to verify that  is true under the assignments C, by substituting the value of each literal and evaluating the expression.

This algorithm takes polynomial time of the length of .

NP-complete Problems


3CNF-SAT is NP-complete

Second, show SAT ≤ 3CNF-SAT.

Let  be a Boolean expression.

We will construct a 3CNF expression f() such that f() is satisfiable iff  is satisfiable.

To createf():

(A) Create an abstract syntax tree of  so that internal nodes are logical operators ,v, ~, ,or  , and leaf nodes are literals (x or ~x).

Then, create , from the abstract syntax tree which is satisfiable iff  is satisfiable.

NP-complete Problems


3CNF-SAT is NP-complete

:y1

:y2

v:y3

:y4

p

q

~s

v:y5

:y6

~s

r

q

~r

 = ((p  q)  (((~s v r)  (q  ~r)) v ~s)

= y1  (y1  (y2  y3))

 (y2  (p  q ))

 (y3  (y4 v~s))

 (y4  (y5  y6))

 (y5  (~s vr ))

 (y6  (q  ~r))

 is satisfiable iff  is satisfiable.

NP-complete Problems


3CNF-SAT is NP-complete

(B) Convert  into CNF.

P  Q is transformed to (P  Q)  (Q  P).

P  Q is transformed to ~P v Q.

~(P v Q) is transformed to ~P  ~Q.

~(P  Q) is transformed to ~P v ~Q.

 = (y1  (y2  y3)) =(y1  (y2  y3))  ((y2  y3)  y1)

=(~y1 v (y2  y3))  (~y2 v ~y3 v y1)

= (~y1 v y2) (~y1 v y3) (y1 v ~y2 v ~y3)

= (~y1 v y2 v y3)  (~y1 v y2 v ~y3) (~y1 v y2 v y3)

 (~y1 v ~y2 v y3) (y1 v ~y2 v ~y3)

  

NP-complete Problems


3CNF-SAT is NP-complete

f() = , and f() is satisfiable iff  is satisfiable.

Next, we need to show that f is computable in polynomial time.

In step (A):

the abstract syntax tree can be created in polynomial time of the length of ,

the expression  can be created also in polynomial time of the number of node in the tree and the length of , which is also a polynomial time of the length of .

In step (B):

 can be created, using Boolean logic identities, in polynomial time of the length of  , which is also a polynomial time of the length of .

That is, SAT ≤ 3CNF-SAT.

NP-complete Problems


CLIQUE is NP-complete

Proof:

3CNF-SAT is NP-complete.

3CNF-SAT ≤ CLIQUE.

CLIQUEis NP-complete.

NP-complete Problems


  • Login