You are on page 1of 46

CSE 421

Algorithms
Richard Anderson
Lecture 27
NP Completeness
Algorithms vs. Lower bounds
• Algorithmic Theory
– What we can compute
• I can solve problem X with resources R
– Proofs are almost always to give an algorithm
that meets the resource bounds
• Lower bounds
– How do we show that something can’t be
done?
Theory of NP Completeness
The Universe

NP-Complete

NP

P
Polynomial Time
• P: Class of problems that can be solved in
polynomial time
– Corresponds with problems that can be
solved efficiently in practice
– Right class to work with “theoretically”
What is NP?
• Problems solvable in non-deterministic
polynomial time . . .

• Problems where “yes” instances have


polynomial time checkable certificates
Decision Problems
• Theory developed in terms of yes/no
problems
– Independent set
• Given a graph G and an integer K, does G have an
independent set of size at least K
– Vertex cover
• Given a graph G and an integer K, does the graph
have a vertex cover of size at most K.
Certificate examples
• Independent set of size K
– The Independent Set
• Satifisfiable formula
– Truth assignment to the variables
• Hamiltonian Circuit Problem
– A cycle including all of the vertices
• K-coloring a graph
– Assignment of colors to the vertices
Polynomial time reductions
• Y is Polynomial Time Reducible to X
– Solve problem Y with a polynomial number of
computation steps and a polynomial number
of calls to a black box that solves X
– Notations: Y <P X
Lemma
• Suppose Y <P X. If X can be solved in
polynomial time, then Y can be solved in
polynomial time.
Lemma
• Suppose Y <P X. If Y cannot be solved in
polynomial time, then X cannot be solved
in polynomial time.
NP-Completeness
• A problem X is NP-complete if
– X is in NP
– For every Y in NP, Y <P X

• X is a “hardest” problem in NP

• If X is NP-Complete, Z is in NP and X <P Z


– Then Z is NP-Complete
Cook’s Theorem
• The Circuit Satisfiability Problem is NP-
Complete
Garey and Johnson
History
• Jack Edmonds
– Identified NP
• Steve Cook
– Cook’s Theorem – NP-Completeness
• Dick Karp
– Identified “standard” collection of NP-Complete
Problems
• Leonid Levin
– Independent discovery of NP-Completeness in USSR
Populating the NP-Completeness
Universe
• Circuit Sat <P 3-SAT
• 3-SAT <P Independent Set
• 3-SAT <P Vertex Cover
• Independent Set <P Clique
• 3-SAT <P Hamiltonian Circuit
• Hamiltonian Circuit <P Traveling Salesman
• 3-SAT <P Integer Linear Programming
• 3-SAT <P Graph Coloring
• 3-SAT <P Subset Sum
• Subset Sum <P Scheduling with Release times and deadlines
Cook’s Theorem
• The Circuit Satisfiability Problem is NP-
Complete

• Circuit Satisfiability
– Given a boolean circuit, determine if there is
an assignment of boolean values to the input
to make the output true
AND

Circuit SAT OR
OR
Find a satisfying assignment
AND
AND AND

AND NOT
OR
NOT

OR AND NOT OR AND

AND NOT OR NOT AND

x1 x2 x3 x4 x5
Proof of Cook’s Theorem
• Reduce an arbitrary problem Y in NP to X
• Let A be a non-deterministic polynomial
time algorithm for Y
• Convert A to a circuit, so that Y is a Yes
instance iff and only if the circuit is
satisfiable
Satisfiability
• Given a boolean formula, does there exist
a truth assignment to the variables to
make the expression true
Definitions
• Boolean variable: x1, …, xn
• Term: xi or its negation !xi
• Clause: disjunction of terms
– t1 or t2 or … tj
• Problem:
– Given a collection of clauses C1, . . ., Ck, does
there exist a truth assignment that makes all
the clauses true
– (x1 or !x2), (!x1 or !x3), (x2 or !x3)
3-SAT
• Each clause has exactly 3 terms
• Variables x1, . . ., xn
• Clauses C1, . . ., Ck
– Cj = (tj1 or tj2 or tj3)

• Fact: Every instance of SAT can be


converted in polynomial time to an
equivalent instance of 3-SAT
Find a satisfying truth assignment

(x || y || z) && (!x || !y || !z) && (!x || y) && (x || !y) && (y || !z) && (!y || z)
Theorem: CircuitSat <P 3-SAT
Theorem: 3-SAT <P IndSet
Sample Problems
• Independent Set
– Graph G = (V, E), a subset S of the vertices is
independent if there are no edges between
vertices in S

1 2

3 4 5

6 7
Vertex Cover
• Vertex Cover
– Graph G = (V, E), a subset S of the vertices is
a vertex cover if every edge in E has at least
one endpoint in S

1 2

3 4 5

6 7
IS <P VC
• Lemma: A set S is independent iff V-S is a
vertex cover

• To reduce IS to VC, we show that we can


determine if a graph has an independent
set of size K by testing for a Vertex cover
of size n - K
IS <P VC

Find a maximum independent Show that V-S is a vertex


set S cover

1 2 1 2

3 4 5 3 4 5

6 7 6 7
Clique
• Clique
– Graph G = (V, E), a subset S of the vertices is
a clique if there is an edge between every pair
of vertices in S

1 2

3 4 5

6 7
Complement of a Graph
• Defn: G’=(V,E’) is the complement of
G=(V,E) if (u,v) is in E’ iff (u,v) is not in E

1 2 1 2

3 4 5 3 4 5

6 7 6 7

Construct the complement


IS <P Clique
• Lemma: S is Independent in G iff S is a
Clique in the complement of G

• To reduce IS to Clique, we compute the


complement of the graph. The
complement has a clique of size K iff the
original graph has an independent set of
size K
Hamiltonian Circuit Problem
• Hamiltonian Circuit – a simple cycle
including all the vertices of the graph
Thm: Hamiltonian Circuit is NP
Complete
• Reduction from 3-SAT
Traveling Salesman Problem
• Given a complete graph with edge weights,
determine the shortest tour that includes all of
the vertices (visit each vertex exactly once, and
get back to the starting point)

3
7
7
2
2
5
1 4
1

4
Find the minimum cost tour
NP-Completeness Reductions
• If X is NP-Complete, Y is in NP, and
X <P Y, then Y is NP-Complete
Hamiltonian Circuit,
Hamiltonian Path

How do you show that Hamiltonian Path is NP-Complete?


Local Modification
• Convert G to G’
• Pick a vertex v
– Replace v by v’ and v’’
– If (u,v) is an edge, include edges (u, v’), (u, v’’)
• G’ has a Hamiltonian Path from v’ to v’’ iff G has
a Hamiltonian Circuit
HamPath <P DirHamPath

How do you show that Directed Hamiltonian Path is NP-Complete?


Problem definition
• Given a graph G, does G have an
independent set?

• Given a graph G, does G have an


independent set of size 7?

• Given a graph G, and an integer K, does


G have an independent set of size K?
Graph Coloring
• NP-Complete • Polynomial
– Graph K-coloring – Graph 2-Coloring
– Graph 3-coloring
Number Problems
• Subset sum problem
– Given natural numbers w1,. . ., wn and a target
number W, is there a subset that adds up to
exactly W?

• Subset sum problem is NP-Complete


• Subset Sum problem can be solved in
O(nW) time
Subset sum problem
• The reduction to show Subset Sum is NP-
complete involves numbers with n digits
• In that case, the O(nW) algorithm is an
exponential time and space algorithm
What is NP?
• Problems where ‘yes’ instances can be
efficiently verified
– Hamiltonian Circuit
– 3-Coloring
– 3-SAT

• Succinct certificate property


What about ‘negative instances’
• How do you show that a graph does not
have a Hamiltonian Circuit
• How do you show that a formula is not
satisfiable?
What we don’t know
• P vs. NP

NP-Complete
NP = P
NP

You might also like