Lecture12 IO BLG336E 2
Lecture12 IO BLG336E 2
Analysis of Algorithms II
Lecture 12:
Polynomial Time, Reductions
Independent Sets, Vertex Cover, Set Cover
Satisfiability, Hamiltonian Cycles
1
Recap
• Today we talked about s-t cuts and s-t flows.
• The Min-Cut Max-Flow Theorem says that minimizing
the cost of cuts is the same as maximizing the value of
flows.
• The Ford-Fulkerson algorithm does this!
• Find an augmenting path
• Increase the flow along that path
• Repeat until you can’t find any more paths and then you’re
done!
• An important algorithmic primitive!
• eg, assignment problems.
Polynomial-Time Reductions
Classify Problems According to Computational Requirements
A working definition. [von Neumann 1953, Godel 1956, Cobham 1964, Edmonds 1965, Rabin
1966]
Yes Probably no
Shortest path Longest path
Matching 3D-matching
Min cut Max cut
2-SAT 3-SAT
Planar 4-color Planar 3-color
Bipartite vertex cover Vertex cover
4
Classify Problems
Today and Next week. Show that these fundamental problems are
"computationally equivalent" and appear to be different manifestations
of one really hard problem.
5
Polynomial-Time Reduction
Notation. X P Y.
Remarks.
We pay for time to write down instances sent to black box
instances of Y must be of polynomial size.
Note: Cook reducibility (vs. Karp reducibility)
6
Polynomial-Time Reduction
7
Reduction By Simple Equivalence
independent set
9
Vertex Cover
vertex cover
10
Vertex Cover and Independent Set
independent set
vertex cover
11
Reduction from Special Case to General Case
Sample application.
m available pieces of software.
Set U of n capabilities that we would like our system to have.
The ith piece of software provides the set Si U of capabilities.
Goal: achieve all n capabilities using fewest pieces of software.
Ex:
U = { 1, 2, 3, 4, 5, 6, 7 }
k=2
S1 = {3, 7} S4 = {2, 4}
S2 = {3, 4, 5, 6} S5 = {5}
S3 = {1} S6 = {1, 2, 6, 7}
13
Vertex Cover Reduces to Set Cover
Construction.
Create SET-COVER instance:
– k = k, U = E, Sv = {e E : e incident to v }
Set-cover of size k iff vertex cover of size k. ▪
e7 U = { 1, 2, 3, 4, 5, 6, 7 }
e2 e3 e4
k=2
Sa = {3, 7} Sb = {2, 4}
f e6 c
Sc = {3, 4, 5, 6} Sd = {5}
e1 e5 Se = {1} Sf= {1, 2, 6, 7}
k=2
e d
14
Polynomial-Time Reduction
Basic strategies.
Reduction by simple equivalence.
Reduction from special case to general case.
Reduction by encoding with gadgets.
15
8.2 Reductions via "Gadgets"
Ex: x1 x2 x 3 x1 x2 x 3 x2 x3 x1 x2 x 3
Yes: x1 = true, x2 = true x3 = false.
17
3 Satisfiability Reduces to Independent Set
Construction.
G contains 3 vertices for each clause, one for each literal.
Connect 3 literals in a clause in a triangle.
Connect literal to each of its negations.
x1 x2 x1
x2 x3 x1 x3 x2 x4
k=3 x1 x2 x3 x1 x2 x3 x1 x2 x4
18
3 Satisfiability Reduces to Independent Set
x1 x2 x1
x2 x3 x1 x3 x2 x4
k=3 x1 x2 x3 x1 x2 x3 x1 x2 x4
19
Review
20
Hamiltonian Cycle
1 1'
2 2'
3 3'
4 4'
Pf. Given a directed graph G = (V, E), construct an undirected graph G'
with 3n nodes.
aout
a din
d
b v
bout vin v vout
e
c
ein
cout
G G'
22
Directed Hamiltonian Cycle
Pf.
Suppose G has a directed Hamiltonian cycle .
Then G' has an undirected Hamiltonian cycle (same order).
Pf.
Suppose G' has an undirected Hamiltonian cycle '.
' must visit nodes in G' using one of following two orders:
…, B, G, R, B, G, R, B, G, R, B, …
…, B, R, G, B, R, G, B, R, G, B, …
Blue nodes in ' make up directed Hamiltonian cycle in G, or
reverse of one. ▪
23
3-SAT Reduces to Directed Hamiltonian Cycle
24
3-SAT Reduces to Directed Hamiltonian Cycle
x1
x2
x3
3k + 3 25
3-SAT Reduces to Directed Hamiltonian Cycle
C 1 x1 V x 2 V x 3 C 2 x1 V x2 V x3
clause node clause nod
e
s
x1
x2
x3
26
3-SAT Reduces to Directed Hamiltonian Cycle
Pf.
Suppose 3-SAT instance has satisfying assignment x*.
Then, define Hamiltonian cycle in G as follows:
– if x*i = 1, traverse row i from left to right
– if x*i = 0, traverse row i from right to left
– for each clause Cj , there will be at least one row i in which we are
going in "correct" direction to splice node Cj into tour
27
3-SAT Reduces to Directed Hamiltonian Cycle
Pf.
Suppose G has a Hamiltonian cycle .
If enters clause node Cj , it must depart on mate edge.
– thus, nodes immediately before and after Cj are connected by an
edge e in G
– removing Cj from cycle, and replacing it with edge e yields
Hamiltonian cycle on G - { Cj }
Continuing in this way, we are left with Hamiltonian cycle ' in
G - { C1 , C2 , . . . , Ck }.
Set x*i = 1 iff ' traverses row i left to right.
Since visits each clause node Cj , at least one of the paths is
traversed in "correct" direction, and each clause is satisfied. ▪
28
Longest Path
29
Traveling Salesperson Problem
TSP. Given a set of n cities and a pairwise distance function d(u, v), is
there a tour of length D?
30
Traveling Salesperson Problem
TSP. Given a set of n cities and a pairwise distance function d(u, v), is
there a tour of length D?
31
Traveling Salesperson Problem
TSP. Given a set of n cities and a pairwise distance function d(u, v), is
there a tour of length D?
32
Traveling Salesperson Problem
TSP. Given a set of n cities and a pairwise distance function d(u, v), is
there a tour of length D?
33
Traveling Salesperson Problem
TSP. Given a set of n cities and a pairwise distance function d(u, v), is
there a tour of length D?
HAM-CYCLE: given a graph G = (V, E), does there exists a simple cycle
that contains every node in V?
34
NP and Computational Intractability
P is a subset of NP
• Since it takes polynomial time to run the
program, just run the program and get a
solution
• But is NP a subset of P?
• No one knows if P = NP or not
• Solve for a million dollars!
– http://www.claymath.org/millennium-problems
– The Poincare conjecture is solved today
Review
3
Hamiltonian Cycle
1 1'
2 2'
3 3'
4 4'
Pf. Given a directed graph G = (V, E), construct an undirected graph G'
with 3n nodes.
aout
a din
d
b v
bout vin v vout
e
c
ein
cout
G G'
3
Directed Hamiltonian Cycle
Pf.
Suppose G has a directed Hamiltonian cycle .
Then G' has an undirected Hamiltonian cycle (same order).
Pf.
Suppose G' has an undirected Hamiltonian cycle '.
' must visit nodes in G' using one of following two orders:
…, B, G, R, B, G, R, B, G, R, B, …
…, B, R, G, B, R, G, B, R, G, B, …
Blue nodes in ' make up directed Hamiltonian cycle in G, or
reverse of one. ▪
4
3-SAT Reduces to Directed Hamiltonian Cycle
41
3-SAT Reduces to Directed Hamiltonian Cycle
x1
x2
x3
3k + 3 7
3-SAT Reduces to Directed Hamiltonian Cycle
C 1 x1 V x 2 V x 3 C 2 x1 V x2 V x3
clause node clause nod
e
s
x1
x2
x3
4
Polynomial-Time Reductions
Dick Karp
(1972)
1985 Turing
Award
INDEPENDENT SET DIR-HAM-CYCLE GRAPH 3-COLOR SUBSET-SUM
4
Definition of NP
The reducibility ‘tree’
• Richard Karp proved 21 problems to be NP
complete in a seminal 1971 paper
• Not that hard to read actually!
• Definitely not hard to read it to the point of
knowing what these problems are.
• karp's paper
Amusing/tragic NP story
• Breaking up over NP
Decision Problems
Decision problem.
X is a set of strings.
Instance: string s.
Algorithm A solves problem X: A(s) = yes iff s X.
48
Definition of P
Grade school
MULTIPLE Is x a multiple of y? 51, 17 51, 16
division
RELPRIME Are x and y relatively prime? Euclid (300 BCE) 34, 39 34, 51
0 1 1 4 1 0 0 1
Is there a vector x that Gauss-Edmonds 2 4 2 , 2 1 1 1 , 1
LSOLVE
satisfies Ax = b? elimination
0 3 15 36
0 1 1
1
49
NP
Def. Algorithm C(s, t) is a certifier for problem X if for every string s, s X iff there
exists a string t such that C(s, t) = yes.
"certificate" or "witness"
50
Certifiers and Certificates: Composite
Instance. s = 437,669.
Certificate. t = 541 or 809. 437,669 = 541 809
51
Certifiers and Certificates: 3-Satisfiability
Certifier. Check that each clause in has at least one true literal.
Ex.
x1 x2 x3 x1 x2 x3 x1 x2 x4 x1 x3 x4
instance s
x1 1, x2 1, x3 0, x4 1
certificate t
52
Certifiers and Certificates: Hamiltonian Cycle
instance s certificate t
53
P, NP, EXP
Claim. P NP.
Pf. Consider any problem X in P.
By definition, there exists a poly-time algorithm A(s) that solves X.
Certificate: t = , certifier C(s, t) = A(s). ▪
Claim. NP EXP.
Pf. Consider any problem X in NP.
By definition, there exists a poly-time certifier C(s, t) for X.
To solve input s, run C(s, t) on all strings t with |t| p(|s|).
Return yes, if C(s, t) returns yes for any of these. ▪
54
The Main Question: P Versus NP
EXP NP EXP
P P = NP
If P NP If P = NP
55
NP-Completeness
NP-Complete
57
NP-Completeness
by definition of NP-completeness
CIRCUIT-SAT
3-SAT
58
NEXT LECTURE
NP-Completeness
Review
59