Date post: | 03-Jan-2016 |
Category: |
Documents |
Upload: | myra-boone |
View: | 45 times |
Download: | 3 times |
Princeton University • COS 423 • Theory of Algorithms • Spring 2001 • Kevin Wayne
Polynomial-Time Reductions
Some of these lecture slides are adaptedfrom CLRS and Kleinberg-Tardos.
2
Contents
Contents. Polynomial-time reductions. Reduction from special case to general case.
– COMPOSITE reduces to FACTOR– VERTEX-COVER reduces to SET-COVER
Reduction by simple equivalence.– PRIMALITY reduces to COMPOSITE, and vice versa– VERTEX COVER reduces to CLIQUE, and vice versa
Reduction from general case to special case.– SAT reduces to 3-SAT– 3-COLOR reduces to PLANAR-3-COLOR
Reduction by encoding with gadgets.– 3-CNF-SAT reduces to CLIQUE– 3-CNF-SAT reduces to HAM-CYCLE– 3-CNF-SAT reduces to 3-COLOR
3
Polynomial-Time Reduction
Intuitively, problem X reduces to problem Y if: Any instance of X can be "rephrased" as an instance of Y.
Formally, problem X polynomial reduces to problem Y if arbitrary instances of problem X can be solved using:
Polynomial number of standard computational steps, plus Polynomial number of calls to oracle that solves problem Y.
– computational model supplemented by special piece of hardware that solves instances of Y in a single step
Remarks. We pay for time to write down instances sent to black box
instances of Y are of polynomial size. Note: Cook-Turing reducibility (not Karp or many-to-one). Notation: X P Y (or more precisely ).YX T
P
4
Polynomial-Time Reduction
Purpose. Classify problems according to relative difficulty.
Design algorithms. If X P Y and Y can be solved in polynomial-time,
then X can be solved in polynomial time.
Establish intractability. If X P Y and X cannot be solved in
polynomial-time, then X cannot be solved in polynomial time.
Anti-symmetry. If X P Y and Y P X, we use notation X P Y.
Transitivity. If X P Y and Y P Z, then X P Z.
Proof idea: compose the two algorithms. Given an oracle for Z, can solve instance of X:
– run the algorithm for X using a oracle for Y– each time oracle for Y is called, simulate it in a polynomial
number of steps by using algorithm for Y, plus oracle calls to Z
5
Polynomial-Time Reduction
Basic strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction from general case to special case. Reduction by encoding with gadgets.
6
Compositeness and Primality
COMPOSITE: Given the decimal representation of an integer x, does x have a nontrivial factor?
PRIME: Given the decimal representation of an integer x, is x prime?
Claim. COMPOSITE P PRIME.
COMPOSITE P PRIME.
PRIME P COMPOSITE.
IF (PRIME(x) = TRUE) RETURN FALSEELSE RETURN TRUE
COMPOSITE (x)
IF (COMPOSITE(x) = TRUE) RETURN FALSEELSE RETURN TRUE
PRIME (x)
7
3
6
10
7
Vertex Cover
VERTEX COVER: Given an undirected graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and if (v, w) E then either v S, w S or both.
Ex. Is there a vertex cover of size 4? 1
5
8
2
4 9
3
6
10
7YES.
8
3
6
10
7
Vertex Cover
VERTEX COVER: Given an undirected graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and if (v, w) E then either v S, w S or both.
Ex. Is there a vertex cover of size 4?
Is there a vertex cover of size 3?
1
5
8
2
4 9
YES.
NO.
9
Clique
CLIQUE: Given N people and their pairwise relationships. Is there a group of S people such that every pair in the group knows each other.
Ex. People: a, b, c, d, e, . . . , k. Friendships: (a, e), (a, f), (a, g), . . ., (h, k). Clique size: S = 4. ba c
h g
f
e
d
i
j
k
Friendship Graph
b
h
d
i
YES Instance
10
Vertex Cover and Clique
Claim. VERTEX COVER P CLIQUE.
Given an undirected graph G = (V, E), its complement is G' = (V, E'), where E' = { (v, w) : (v, w) E}.
G has a clique of size k if and only if G' has a vertex cover of size |V| - k.
u
x
v
y
z w
GClique = {u, v, x, y}
u
x
v
y
z w
G'Vertex cover = {w, z}
11
Vertex Cover and Clique
Claim. VERTEX COVER P CLIQUE.
Given an undirected graph G = (V, E), its complement is G' = (V, E'), where E' = { (v, w) : (v, w) E}.
G has a clique of size k if and only if G' has a vertex cover of size |V| - k.
Proof. Suppose G has a clique S with |S| = k. Consider S' = V – S. |S'| = |V| - k. To show S' is a cover, consider any
edge (v, w) E'.– then (v, w) E– at least one of v or w is not in S
(since S forms a clique)– at least one of v or w is in S'– hence (v, w) is covered by S'
u
x
v
y
z w
u
x
v
y
z w
12
Vertex Cover and Clique
Claim. VERTEX COVER P CLIQUE.
Given an undirected graph G = (V, E), its complement is G' = (V, E'), where E' = { (v, w) : (v, w) E}.
G has a clique of size k if and only if G' has a vertex cover of size |V| - k.
Proof. Suppose G' has a cover S' with |S'| = |V| - k. Consider S = V – S'. Clearly |S| = k. To show S is a clique, consider some
edge (v, w) E'.– if (v, w) E', then either v S', w S', or both– by contrapositive, if v S' and w S',
then (v, w) E– thus S is a clique in G
u
x
v
y
z w
u
x
v
y
z w
13
Polynomial-Time Reduction
Basic strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction from general case to special case. Reduction by encoding with gadgets.
14
Compositeness Reduces to Factoring
COMPOSITE: Given an integer x, does x have a nontrivial factor?
FACTOR: Given two integers x and y, does x have a nontrivial factor less than y?
Claim. COMPOSITE P FACTOR.
Proof. Given an oracle for FACTOR, we solve COMPOSITE. Is 350 composite? Does 350 have a nontrivial factor
less than 350?
IF (FACTOR(x, x) = TRUE) RETURN TRUEELSE RETURN FALSE
COMPOSITE (x)
15
Primality Testing and Factoring
We established: PRIME P COMPOSITE P FACTOR.
Natural question: Does FACTOR P PRIME ?
Consensus opinion = NO.
State-of-the-art. PRIME in randomized P and conjectured to be in P. FACTOR not believed to be in P.
RSA cryptosystem. Based on dichotomy between two problems. To use, must generate large primes efficiently. Can break with efficient factoring algorithm.
16
Set Cover
SET COVER: Given a set U of elements, a collection S1, S2, . . . , Sm of
subsets of U, and an integer k, does there exist a collection of at most k of these sets whose union is equal to U?
Sample application. n 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 small number of pieces of software.
Ex. U = {1, 2, 3, . . . , 12}, k = 3. S1 = {1, 2, 3, 4, 5, 6} S2 = {5, 6, 8, 9}
S3 = {1, 4, 7, 10} S4 = {2, 5, 7, 8, 11}
S5 = {3, 6, 9, 12} S6 = {10, 11}
YES: S3, S4, S5.
17
Vertex Cover Reduces to Set Cover
SET COVER: Given a set U of elements, a collection S1, S2, . . . , Sn' of
subsets of U, and an integer k, does there exist a collection of at most k of these sets whose union is equal to U?
VERTEX COVER: Given an undirected graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and if (v, w) E then either v S, w S or both.
Claim. VERTEX-COVER P SET-COVER.
Proof. Given black box that solves instances of SET-COVER.
a
d
b
e
f c
Vertex Cover
U = {1, 2, 3, 4, 5, 6, 7}k = 2Sa = {3, 7} Sb = {2, 4}Sc = {3, 4, 5, 6} Sd = {5}Se = {1} Sf= {1, 2, 6, 7}
Set Cover
G = (V, E)k = 2
e1
e2 e3
e5
e4
e6
e7
18
Vertex Cover Reduces to Set Cover
SET COVER: Given a set U of elements, a collection S1, S2, . . . , Sn' of
subsets of U, and an integer k, does there exist a collection of at most k of these sets whose union is equal to U?
VERTEX COVER: Given an undirected graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and if (v, w) E then either v S, w S or both.
Claim. VERTEX-COVER P SET-COVER.
Proof. Given black box that solves instances of SET-COVER. Let G = (V, E), k be an instance of VERTEX-COVER. Create SET-COVER instance:
– k = k, U = E, Sv = {e E : e incident to v }
Set-cover of size at most k if and only if vertex cover of size at most k.
19
Polynomial-Time Reduction
Basic strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction from general case to special case. Reduction by encoding with gadgets.
20
Factoring and Finding Factors
FACTOR: Given two integers x and y, does x have a nontrivial factor less than y?
FACTORIZE: Given an integer x, find its prime factorization.
Claim. FACTORIZE P FACTOR.
Proof: FACTOR P FACTORIZE.
Reduction from special case to general case.
S FACTORIZE(x)d smallest factor in SIF (d < y) RETURN TRUEELSE RETURN FALSE
FACTOR (x)
S = prime factorizationis of polynomial size
21
Factoring and Finding Factors
FACTOR: Given two integers x and y, does x have a nontrivial factor less than y?
FACTORIZE: Given an integer x, find its prime factorization.
Claim. FACTORIZE P FACTOR.
Proof: FACTORIZE P FACTOR.
Reduction from generalcase to special case.
IF (FACTOR(x, x) = NO) S S {x} RETURN
left = 1, right = xWHILE (right > left + 1) mid = (left + right) / 2 IF (FACTOR(x, mid) = TRUE) right = mid ELSE left = midS S {left}FACTORIZE(x / left)
FACTORIZE(x)
find smallest factor via binary search
S = global variable containing set of factors
22
Literal: A Boolean variable or its negation.
Clause: A disjunction of literals.
Conjunctive normal form: A Boolean formulathat is the conjunction of clauses.
CNF-SAT: Given propositional formula in conjunctive normal form, does it have a satisfying truth assignment?
Satisfiability
321 xxxC j
ii xx or
4321 CCCCB
32132321321 xxxxxxxxxxx
YES instancex1 = true
x1 = true
x1 = false
23
SAT Reduces to 3-SAT
3-CNF-SAT: CNF-SAT, where each clause has 3 distinct literals.
Claim. CNF-SAT P 3-CNF-SAT.
Case 3: clause Cj contains exactly 3 terms.
Case 2: clause Cj contains exactly 2 terms.
– add 1 new term, and replace Cj with 2 clauses
Case 1: clause Cj contains exactly 1 term.
– add 4 new terms, and replace Cj with 4 clauses
yxxC
yxxCxxC
j
jj
73'2
73'173
213'4
213'3
213'2
213'13
yyxC
yyxC
yyxC
yyxCxC
j
j
j
jj
24
SAT Reduces to 3-SAT
3-CNF-SAT: CNF-SAT, where each clause has 3 distinct literals.
Claim. CNF-SAT P 3-CNF-SAT.
Case 4: clause Cj contains 4 terms.
– introduce - 1 extra Boolean variables
– replace Cj with clauses
995'6
564'5
453'4
342'3
231'2
111'1965431
xxyC
yxyC
yxyC
yxyC
yxyC
yxxCxxxxxxC
j
j
j
j
j
jj
25
Case 4: clause Cj contains 4 terms.
Claim. CNF-SAT instance is satisfiableif and only if 3-CNF-SAT instance is.
Proof. Suppose SAT instance is satisfiable. If SAT assignment sets tjk = 1, 3-SAT assignment sets:
– tjk = 1
– ym = 1 for all m < k; ym = 0 for all m k
jjj
jj
jj
jj
jj
jjjjjjjj
ttyC
ytyC
ytyC
ytyC
ytyC
yttCttttC
1'
554'5
443'4
332'3
221'2
111'1321
SAT Reduces to 3-SAT
k = 4
set TRUE
26
Case 2: clause Cj contains 4 terms.
Claim. CNF-SAT instance is satisfiableif and only if 3-CNF-SAT instance is.
Proof. Suppose 3-SAT instance is satisfiable. If 3-SAT assignment sets tjk = 1, SAT assignment sets tjk = 1.
Consider clause Cj . We claim tjk = 1 for some k.
– each of - 1 new Boolean variables yj can only make one of new
clauses true
– the remaining clause must be satisfied by an original term tjk
SAT Reduces to 3-SAT
jjj
jj
jj
jj
jj
jjjjjjjj
ttyC
ytyC
ytyC
ytyC
ytyC
yttCttttC
1'
554'5
443'4
332'3
221'2
111'1321
27
Polynomial-Time Reduction
Basic strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction from general case to special case. Reduction by encoding with gadgets.
28
Clique
CLIQUE: Given N people and their pairwise relationships. Is there a group of C people such that every pair in the group knows each other.
Ex. People: a, b, c, d, e, . . . , k. Friendships: (a, e), (a, f), (a, g), . . ., (h, k). Clique size: C = 4. ba c
h g
f
e
d
i
j
k
Friendship Graph
b
h
d
i
YES Instance
29
Satisfiability Reduces to Clique
Claim. CNF-SAT P CLIQUE.
Given instance of CNF-SAT, create a person for each literal in each clause.
(x' + y + z) (x + y' + z) (y + z) (x' + y' + z')C = 4 clauses
first clause
yx' z
y z
z
y'
x
z'
y'
x'
30
Satisfiability Reduces to Clique
Claim. CNF-SAT P CLIQUE.
Given instance of CNF-SAT, create a person for each literal in each clause.
Two people know each other except if:– they come from the same clause– they represent a literal and its negation
yx' z
y z
z
y'
x
z'
y'
x'
(x' + y + z) (x + y' + z) (y + z) (x' + y' + z')C = 4 clauses
31
Satisfiability Reduces to Clique
Claim. CNF-SAT P CLIQUE.
Given instance of CNF-SAT, create a person for each literal in each clause.
Two people know each other except if:– they come from the same clause– they represent a literal and its negation
Clique of size C satisfiable assignment.– set variable in clique to true– (x, y, z) = (true, true, false) yx' z
y z
z
y'
x
z'
y'
x'
(x' + y + z) (x + y' + z) (y + z) (x' + y' + z')C = 4 clauses
32
Satisfiability Reduces to Clique
Claim. CNF-SAT P CLIQUE.
Given instance of CNF-SAT, create a person for each literal in each clause.
Two people know each other except if:– they come from the same clause– they represent a literal and its negation
Clique of size C satisfiable assignment. Satisfiable assignment clique of size C.
– (x, y, z) = (true, true, false)– choose one true literal from each
clause
yx' z
y z
z
y'
x
z'
y'
x'
(x' + y + z) (x + y' + z) (y + z) (x' + y' + z')C = 4 clauses
33
Polynomial-Time Reductions
CNF-SAT
3-CNF-SAT
3-COLOR DIR-HAM-CYCLE
HAM-CYCLE
IND-SET
CLIQUE
SUBSET-SUM
VERTEX-COVER
TSP
SET-COVER
PARTITION INTEGERPROGRAMMING
KNAPSACK
Dick Karp (1972)
PLANAR-3-COLOR
SCHEDULE
34
Problem Genres
Basic genres. Packing problems: SET-PACKING, INDEPENDENT SET. Covering problems: SET-COVER, VERTEX-COVER. Constraint satisfaction problems: SAT, 3-SAT. Sequencing problems: HAMILTONIAN-CYCLE, TSP. Partitioning problems: 3D-MATCHING, 3-COLOR. Numerical problems: SUBSET-SUM, KNAPSACK, FACTOR.
35
Hamiltonian Cycle
HAMILTONIAN-CYCLE: given an undirected graph G = (V, E), does there exists a simple cycle C that contains every vertex in V.
YES: vertices and faces of a dodecahedron.
36
Hamiltonian Cycle
HAMILTONIAN-CYCLE: given an undirected graph G = (V, E), does there exists a simple cycle C that contains every vertex in V.
1
3
5
1'
3'
2
4
2'
4'
NO: bipartite graph with odd number of nodes.
37
Finding a Hamiltonian Cycle
HAM-CYCLE: given an undirected graph G = (V, E), does there exist a simple cycle C that contains every vertex in V.
FIND-HAM-CYCLE: given an undirected graph G = (V, E), output a Hamiltonian cycle if one exists, otherwise output any cycle.
Claim. HAM-CYLCE P FIND-HAM-CYCLE.
Proof. P
C FIND-HAM-CYCLE(G) IF (C is Hamiltonian) RETURN TRUEELSE RETURN FALSE
HAM-CYCLE (G)
38
Finding a Hamiltonian Cycle
HAM-CYCLE: given an undirected graph G = (V, E), does there exist a simple cycle C that contains every vertex in V.
FIND-HAM-CYCLE: given an undirected graph G = (V, E), output a Hamiltonian cycle if one exists, otherwise output any cycle.
Claim. HAM-CYLCE P FIND-HAM-CYCLE.
Proof. P
IF (HAM-CYCLE(G) = FALSE) RETURN FALSE
A EFOR EACH e E IF (HAM-CYCLE(V, A - {e}) = TRUE) A A - {e}
RETURN unique cycle remaining in G
FIND-HAM-CYCLE (G)
39
Directed Hamiltonian Cycle
DIR-HAM-CYCLE: given a directed graph G = (V, E), does there exists a simple directed cycle C that contains every vertex in V.
Claim. DIR-HAM-CYCLE P HAM-CYCLE.
Proof. Given a directed graph G = (V, E), construct an undirected graph G'
with 3n vertices.
v
a
b
c
d
e
vin
aout
bout
cout
din
ein
GG'
v vout
40
Directed Hamiltonian Cycle
Claim. G has a Hamiltonian cycle if and only if G' does.
Proof. Suppose G has a directed Hamiltonian cycle C. Then G' has an undirected Hamiltonian cycle.
Proof. Suppose G' has an undirected Hamiltonian cycle C'. C' must visit nodes in G' using one of following two orders:
. . . , G, R, B, G, R, B, G, R, B, . . .
. . . , R, G, B, R, G, B, R, G, B, . . . Blue nodes in C' make up directed Hamiltonian cycle C in G, or
reverse of one.
41
3-SAT Reduces to Directed Hamiltonian Cycle
Claim. 3-CNF-SAT P DIR-HAM-CYCLE.
Why not reduce from some other problem? Need to find another problem that is sufficiently close.
(could reduce from VERTEX-COVER) If don't succeed, start from 3-CNF-SAT since its
combinatorial structure is very basic. Downside: reduction will require certain level of
complexity.
42
3-SAT Reduces to Directed Hamiltonian Cycle
Proof: Given 3-CNF-SAT instance with n variables xi and k clauses Cj.
Construct G to have 2n Hamiltonian cycles. Intuition: traverse path i from left to right set variable xi = 1.
s
t
n
3k + 3
43
3-SAT Reduces to Directed Hamiltonian Cycle
Proof: Given 3-CNF-SAT instance with n variables xi and k clauses Cj.
Add node and 6 edges for each clause.
s
t
3211 VV xxxC
x1
x2
x3
44
3-SAT Reduces to Directed Hamiltonian Cycle
Proof: Given 3-CNF-SAT instance with n variables xi and k clauses Cj.
Add node and 6 edges for each clause.
s
t
3212 VV xxxC
x1
x2
x3
45
3-SAT Reduces to Directed Hamiltonian Cycle
Claim. 3-CNF-SAT instance is satisfiable if and only if corresponding graph G has a Hamiltonian cycle.
Proof. Suppose 3-SAT instance has satisfying assignment x*. Then, define Hamiltonian cycle in G as follows:
– if x*i = 1, traverse path Pi from left to right
– if x*i = 0, traverse path Pi from right to left
– for each clause Cj , there will be at least one path Pi in which we
are going in "correct" direction to splice node Cj into tour
46
3-SAT Reduces to Directed Hamiltonian Cycle
Claim. 3-CNF-SAT instance is satisfiable if and only if corresponding graph G has a Hamiltonian cycle.
Proof. Suppose G has a Hamiltonian cycle C. If C 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 C' inG - {C1 , C2 , . . . , Ck}.
Set x*i = 1 if path Pi if traversed from left to right, and 0 otherwise.
Since C visits each clause node Cj , at least one of the paths is
traversed in "correct" direction, and each clause is satisfied.
47
Polynomial-Time Reductions
CNF-SAT
3-CNF-SAT
3-COLOR DIR-HAM-CYCLE
HAM-CYCLE
IND-SET
CLIQUE
SUBSET-SUM
VERTEX-COVER
TSP
SET-COVER
PARTITION INTEGERPROGRAMMING
KNAPSACK
Dick Karp (1972)
PLANAR-3-COLOR
SCHEDULE
48
Implications Reduction
Proof that a problem is as hard as CNF-SAT is usually taken as signal to abandon hope of finding an efficient algorithm.
49
Implications Reduction
Proof that a problem is as hard as CNF-SAT is usually taken as signal to abandon hope of finding an efficient algorithm.
50
Implications Reduction
Proof that a problem is as hard as CNF-SAT is usually taken as signal to abandon hope of finding an efficient algorithm.
51
Problem Genres
Basic genres. Packing problems: SET-PACKING, INDEPENDENT SET. Covering problems: SET-COVER, VERTEX-COVER. Constraint satisfaction problems: SAT, 3-SAT. Sequencing problems: HAMILTONIAN-CYCLE, TSP. Partitioning problems: 3-COLOR. Numerical problems: SUBSET-SUM, KNAPSACK, FACTOR.
52
3-Colorability
3-COLOR: Given an undirected graph does there exists a way to color the nodes R, G, and B such no adjacent nodes have the same color?
YES instance
53
3-Colorability
Claim. 3-CNF-SAT P 3-COLOR.
Proof: Given 3-SAT instance with n variables xi and k clauses Cj.
Create instance of 3-COLOR G = (V, E) as follows. Step 1:
– create triangle R (false), G (true), or B– create nodes for each literal and connect to B
Each literal colored R or G.– create nodes for each literal, and connect literal to its negation
Each literal colored opposite of its negation.
T
B
F
1x 1x 2x 2x nx nx3x 3x
Step 1
54
3-Colorability
Claim. 3-CNF-SAT P 3-COLOR.
Proof: Given 3-SAT instance with n variables xi and k clauses Cj.
Step 2:– for each clause, add "gadget" of 6 new nodes and 13 new edges
3211 VV xxxC
Step 2
T
1x 2x 3x
F
B
55
3-Colorability
Claim. 3-CNF-SAT P 3-COLOR.
Proof: Given 3-SAT instance with n variables xi and k clauses Cj.
Step 2:– for each clause, add "gadget" of 6 new nodes and 13 new edges– if 3-colorable, top row must have at least one green (true) node
Otherwise, middle row all blue. Bottom row alternates between green and red
contradiction.
3211 VV xxxC
Step 2
T
1x 2x 3x
F
1x 2x 3x
B
56
3-Colorability
Claim. 3-CNF-SAT P 3-COLOR.
Proof: Given 3-SAT instance with n variables xi and k clauses Cj.
Step 2:– for each clause, add "gadget" of 6 new nodes and 13 new edges– if top row has green (true) node, then 3-colorable
Color vertex below green node red, and one below that blue. Color remaining middle row nodes blue. Color remaining bottom nodes red or green, as forced.
3211 VV xxxC
Step 2
T
1x 2x 3x
F
x3
B
57
Planar 3-Colorability
PLANAR-3-COLOR. Given a planar map, can it be colored using 3 colors so that no
adjacent regions have the same color?
YES instance.
58
Planar 3-Colorability
PLANAR-3-COLOR. Given a planar map, can it be colored using 3 colors so that no
adjacent regions have the same color?
NO instance.
59
Planarity. A graph is planar if it can be embedded on the plane (or sphere) in such a way that no two edges graph.
Applications: VLSI circuit design, computer graphics.
Kuratowski's Theorem. An undirected graph G is non-planar if and only if it contains a subgraph homeomorphic to K5 or K3,3.
Planarity
Planar K5: non-planar K3,3: non-planar
homeomorphic to K3,3
60
Kuratowski's Theorem. An undirected graph G is non-planar if and only if it contains a subgraph homeomorphic to K5 or K3,3.
Brute force: O(n6). Step 1. Contract all nodes of degree 2. Step 2. Check all subsets of 5 nodes to see if they form a K5.
Step 3. Check all subsets of 6 nodes to see if they form a K3,3.
Cleverness: O(n). Step 1. DFS. Step 2. Tarjan.
Planarity Testing
61
Planar 3-Colorability
Claim. 3-COLOR P PLANAR-3-COLOR.
Proof sketch: Given instance of 3-COLOR, draw graph in plane, letting edges cross if necessary.
Replace each edge crossing with the following planar gadget W.– in any 3-coloring of W, opposite corners have the same color– any assignment of colors to the corners in which opposite
corners have the same color extends to a 3-coloring of W
62
Planar 4-Colorability
PLANAR-4-COLOR: Given a planar map, can it be colored using 4 colors so that no adjacent regions have the same color?
Intuition. If PLANAR-3-COLOR is hard, then so is PLANAR-4-COLOR and
PLANAR-5-COLOR. Don't always believe your intuition!
63
Planar 4-Colorability
PLANAR-2-COLOR. Solvable in linear time.
PLANAR-3-COLOR. NP-complete.
PLANAR-4-COLOR. Solvable in O(1) time.
Theorem (Appel-Haken, 1976). Every planar map is 4-colorable. Resolved century-old open problem. Used 50 days of computer time to deal with many special cases. First major theorem to be proved using computer.
64
Problem Genres
Basic genres. Packing problems: SET-PACKING, INDEPENDENT SET. Covering problems: SET-COVER, VERTEX-COVER. Constraint satisfaction problems: SAT, 3-SAT. Sequencing problems: HAMILTONIAN-CYCLE, TSP. Partitioning problems: 3D-MATCHING. Numerical problems: SUBSET-SUM, KNAPSACK, FACTOR.
65
Subset Sum
SUBSET-SUM: Given a set X of integers and a target integer t, is there a subset S X whose elements sum to exactly t.
Example: X = {1, 4, 16, 64, 256, 1040, 1041, 1093, 1284, 1344}, t = 3754. YES: S = {1, 16, 64, 256, 1040, 1093, 1284}.
Remark. With arithmetic problems, input integers are encoded in binary. Polynomial reduction must be polynomial in binary encoding.
66
Subset Sum
Claim. VERTEX-COVER P SUBSET-SUM.
Proof. Given instance G, k of VERTEX-COVER, create following instance of SUBSET-SUM.
1
4 5
2
3e4
e5e2e1e3
1 0 0 01 0
e3 e4 e5 e6e1 e2
v1
0 0 1 00 1v2
0 1 1 00 0v3
1 0 0 10 0v4
0 1 0 11 1v5
Node-arc incidence matrix
e6
1 0 0 01 0
e3 e4 e5 e6e1 e2
x1
0 0 1 00 1x2
0 1 1 00 0x3
1 0 0 10 0x4
0 1 0 11 1x5
1
1
1
1
1
0 0 0 01 0y1
0 0 0 00 1y2
1 0 0 00 0y3
0 1 0 00 0y4
0 0 1 00 0y5
0 0 0 10 0y6
0
0
0
0
0
0
5,184
decimal
4,356
4,116
4,161
5,393
1,024
256
64
16
4
1
Treat as base k+1 integer
k = 3
2 2 2 22 2t 3 15,018k
67
Subset Sum
Claim. G has vertex cover of size k if and only if there is a subset S that sums to exactly t.
Proof. Suppose G has a vertex cover C
of size k.
Let S = C { yj : |ej C| = 1 }
– most significant bits add upto k
– remaining bits add up to 2
1
4 5
2
3e4
e5e2e1e3
e6
1 0 0 01 0
e3 e4 e5 e6e1 e2
x1
0 0 1 00 1x2
0 1 1 00 0x3
1 0 0 10 0x4
0 1 0 11 1x5
0 0 0 01 0y1
0 0 0 00 1y2
1 0 0 00 0y3
0 1 0 00 0y4
0 0 1 00 0y5
0 0 0 10 0y6
1
1
1
1
1
0
0
0
0
0
0
2 2 2 22 2t 3
5,184
decimal
4,356
4,116
4,161
5,393
1,024
256
64
16
4
1
15,018k
68
Subset Sum
Claim. G has vertex cover of size k if and only if there is a subset S that sums to exactly t.
Proof. Suppose subset S sums to t.
Let C = S {x1, . . . , xn}.
– each edge has three 1's, sono carries possible
– |C| = k
– at least one xi must
contribute to sum for ej
1
4 5
2
3e4
e5e2e1e3
e6
1 0 0 01 0
e3 e4 e5 e6e1 e2
x1
0 0 1 00 1x2
0 1 1 00 0x3
1 0 0 10 0x4
0 1 0 11 1x5
0 0 0 01 0y1
0 0 0 00 1y2
1 0 0 00 0y3
0 1 0 00 0y4
0 0 1 00 0y5
0 0 0 10 0y6
1
1
1
1
1
0
0
0
0
0
0
2 2 2 22 2t 3
5,184
decimal
4,356
4,116
4,161
5,393
1,024
256
64
16
4
1
15,018k
69
Partition
SUBSET-SUM: Given a set X of integers and a target integer t, is there a subset S X whose elements sum to exactly t.
PARTITION: Given a set X of integers, is there a subset S X such that
Claim. SUBSET-SUM P PARTITION.
Proof. Let (X, t) be an instance of SUBSET-SUM. Define W to be sum of integers in X: Create instance of PARTITION: X' = X {2W - t} {W + t}. SUBSET-SUM instance is yes if and only if PARTITION instance is.
– in any partition of X' Each half of partition sums to 2W. Two new elements can't be in same partition. Discard new elements subset of X that sums to t.
.\
SXaSaaa
. Xa aW
70
Polynomial-Time Reductions
CNF-SAT
3-CNF-SAT
3-COLOR DIR-HAM-CYCLE
HAM-CYCLE
IND-SET
CLIQUE
SUBSET-SUM
VERTEX-COVER
TSP
SET-COVER
PARTITION INTEGERPROGRAMMING
KNAPSACK
Dick Karp (1972)
PLANAR-3-COLOR
LOAD-BALANCE