This action might not be possible to undo. Are you sure you want to continue?

# 473 Algorithms - Exercises

Version 1.0

Sariel Har-Peled February 23, 2006

2

Contents

1 Exercises - Prerequisite 1.1 Graph Problems . . . . . . . . . . . 1.2 Recurrences . . . . . . . . . . . . . 1.3 Counting . . . . . . . . . . . . . . 1.4 O notation and friends . . . . . . . 1.5 Probability . . . . . . . . . . . . . . 1.6 Basic data-structures and algorithms 1.7 General proof thingies. . . . . . . . 1.8 Miscellaneous . . . . . . . . . . . . 5 5 7 9 9 11 13 15 16 17 17 17 18 18 18 18 19 19 19 19 19 20 20 20 20 21 21 21 22 22 22 23 24 24 25 25

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

2

Exercises - NP Completeness 2.1 Equivlance of optimization and decision problems . . . . . . . . . . . . 2.1.1 Beware of Greeks bearing gifts . . . . . . . . . . . . . . . . . . 2.1.2 Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Showing problems are NP-C . . . . . . . . . . . . . . . . . . . 2.2.1 Graph Isomorphisms . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 NP Completeness collection . . . . . . . . . . . . . . . . . . . 2.2.3 LONGEST-PATH . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 EXACT-COVER-BY-4-SETS . . . . . . . . . . . . . . . . . . 2.3 Solving special subcases of NP-C problems in polynomial time 2.3.1 Subset Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 2SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 2-CNF-SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.4 Hamiltonian Cycle Revisited . . . . . . . . . . . . . . . . . . . 2.3.5 Partition revisited . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.6 Why Mike can not get it. . . . . . . . . . . . . . . . . . . . . . 2.3.7 NP-Completeness Collection . . . . . . . . . . . . . . . . . . . 2.3.8 Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.9 Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.10 Minimum Set Cover . . . . . . . . . . . . . . . . . . . . . . . 2.3.11 Bin Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.12 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.13 Vertex Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.14 Bin Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.15 Minimum Set Cover . . . . . . . . . . . . . . . . . . . . . . . 2.3.16 k-Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.17 MAX 3SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

Network Flow 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . 3. . . . . . . . . . . 3. . . . . .9 Fast Friends . . . . . 4 . . . . . . . . . . . . . . . .12 Unique Cut . . . . . . . . . .3. . . . . . .6 Follow the stars . . . . . . . . . . . . . . . . . . 3. . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . 3.3. . . .20 2. .1. . . .1 The good. . . . . 3. .1. . . . . .21 2. . . . . . . . . . . . . . . . . .1. .23 2. 3. . . . 3.1. . . . . . . . . . . . . . . . .1. . . .19 Minimum Cut Festival . . . . . . . .11 Matrices . . . . . . . . . . . . the bad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 3 Complexity .20 Independence Matrix . . . . . . . . . . . . . . .1. . . . .3. . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . 3. . . . 26 26 26 26 27 27 27 27 28 29 29 29 29 30 30 31 31 32 32 32 33 33 33 33 34 34 34 35 36 36 36 36 36 37 Exercises . . . . . . . . . . . . . .3. . 3. . . . yeh. . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . .22 Go to school! . . . . . . . . . . . . . . .1 Network Flow . . . . . . .2 Ad hoc networks . . . . . .5 Cellphones and services. . . . . Polynomially equivalent. . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Transitivity . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . 3.2. . . . . . . . . . . . . 3. . . . . . . . .1. 3. . . . . . . . . 3.21 Scalar Flow Product . . . . . .18 2. . . . .1. . . . .1. . . . . . . . . . . .19 2. . . . . . . . .8 Capacitation. . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . .7 Flooding . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . GRAPH-ISOMORPHISM . .1. .22 2. . . . . . . . . . . . . . . . .25 2. . yeh . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3SUM . . . . . . . . . . . . . . . . . . . 3. . . .17 Perfect Matching . . . . . . . Poly time subroutines can lead to exponential algorithms Polynomial time Hmiltonian path . . . . . . . . . . . . . . . Primality and Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . .4 Prove infeasibility. 3. . . . . . . . . . . . . .18 Number of augmneting paths . . . . . . . . . . . . . . . . . . . . PLANAR-3-COLOR . . . . . . . . . . . . . . . .24 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Even More Capacitation . . . . . . . .23 The Hopcroft-Karp Bipartite Matching Algorithm . . . . . . . .3.1. . . . . . . . . . . . . . . . . .14 Census Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Maximum Flow By Scaling . . . . . . . . . . . . . .1. . .1. . . . . .3 Minimum Flow . . . . . . . and the middle. yeh. . . . . . . . . . . . . .3. 3. 3. . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . .1. . .3. . . . . . . .15 Edge Connectivity . . . . . 3. . . . . . . . . . . . . . . . . . .1. DEGREE-4-PLANAR-3-COLOR . . . . . . . . . . . . .

Prove that every tournament contains at least one Hamiltonian path. where each edge points from the winner to the loser. A .Algorithms . 2. (a) [5 Points] Prove or disprove that if in a graph G the maximum degree is k. G! G! [20 Points] A coloring of a graph G by α colors is an assignment to each vertex of G a color which is an integer between 1 and α.Exercises Sariel Har-Peled February 23. then the vertices of the graph can be colored using k + 1 colors.) A Hamiltonian path is a sequence of directed edges. Their main purpose is to check whether you are read to take the 473 algorithms class. joined end to end. [20 Points] A tournament is a directed graph with exactly one edge between every pair of vertices.Prerequisite 473G . 2 ¢ ¡ 3 1 6 5 A six-vertex tournament containing the Hamiltonian path 6 → 4 → 5 → 2 → 3 → 1. (Think of the nodes as players in a round-robin tournament. If you do not have the prerequisites it is your responsibility to ﬁll in the missing gaps in your education.1 Graph Problems 1.0 This chapter include problems that are prequisite. that visits every vertex exactly once. such that no two vertices that are connected by an edge have the same color. 5 £ ¤ ¥ 4 .Chapter 1 Exercises . 1. 2006 Version: 1.

as a n × n grid. s ∈ S and t. • [15 Points] Prove that if m ≤ n − 1 then (always) not all the farms are conaminated..) (c) [5 Points] A directed graph G = (V. in which ei has endpoints vi−1 and vi . ek . (d) [5 Points] A cut (S . neither S nor T are empty) are mixed then the graph is not a neat graph. A farm in the middle of the grid has four neighboring farms (two horizontally next to it. t ∈ T such that (s → t) ∈ E and (t → s ) ∈ E. 5. organized.. where k is the maximum degree in G. 3. v2 . . 4. [10 Points] Consider a 2n ×2n chessboard with one (arbitrarily chosen) square removed. C . v2 . . and two verticality next to it). naturally.e. We are interested in how the disease spread if we wait enough time. contains a path between u and v.. (Note. What is the running time of your algorithm if the graph is given with an adjacency matrix. if the graph is provided using adjacency lists. u. v1 .e. .. A cut is mixed if there exists s. every walk between a pair of vertices. E) is a neat graph if there exist an ordering of the vertices of the graph V(G) = v1 . Prove (by induction) that a DAG (i. Once one cow in a farm has Mad Cow disease then all the cows in this farm get the disease. if two or more of its neighboring farms have the disease than the cows in the farm would get the disease. The epidemic started when m contaminated cows were dlivered to (some) of the farms. • [5 Points] Show that if m = n then there is a scenario such that all the farms in the n × n grid get contaminated. The cow farms were. Canada). .e. vn such that if the edge vi → v j is in E(G) then i < j. (b) Prove that a graph is connected if and only if for every partition of its vertices into two nonempty sets. What is the running time of you algorithm. e1 . E) is a partition of V into two disjoint sets S and T . that your algorithm should be as fast as possible. [10 Points] (a) Use induction to prove that in a simple graph. there exists an edge that has endpoints in both sets. . M C D [20 Points] In a land far far away (i. a mad cow decease was spreading among cow farms. T ) in a directed graph G = (V. e2 . Prove that if all the non-trivial cuts (i..(b) [5 Points] Provide an eﬃcient coloring algorithm for a graph G with n vertices and m edges that uses at most k + 1 colors. vk . as in the following picture (for n = 3): 6 . For a farm.. Recall that a walk is a list of the form v0 . directed acyclic graph) is a neat graph. v.

Prove that any such chessboard can be tiled without gaps or overlaps by L-shapes consisting of 3 squares each. You do not need to turn in proofs (in fact. R II [20 Points] Solve the following recurrences. whose nodes are labeled by letters of the alphabet. but you should do them anyway just for practice. 1. Assume reasonable but nontrivial base cases if none are supplied. Assume reasonable but nontrivial base cases if none are supplied. Prove that the graph G = T 1 ∪ T 2 ∪ T 3 is colorable using six colors (e is an edge of G if and only if it is an edge in one of trees T 1 . More exact solutions are better. T 2 and T 3 be three trees deﬁned over the set of vertices {v1 . 6. What is the running time of your algorithm? 7. State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n). T 2 and T 3 ). More exact solutions are better. The preorder and postorder sequences of nodes are as follows: preorder: M N H C R S K W T G D X I Y A J P O E Z V B U L Q F postorder: C W T K S G R H D N A O E P J Y Z I B Q L F U V X M Draw Professor O’Jungle’s binary tree. State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n). but you should do them anyway just for practice. . and give the inorder sequence of nodes. C [10 Points] (a) [5 Points] Let T 1 . vn }. . (b) [5 Points] Describe an eﬃcient algorithm for computing this coloring. √ (a) [2 Points] A(n) = A n/3 + log n + n (b) [2 Points] B(n) = min 3 + B(k) + B(n − k) . .2 Recurrences 1. 7 . 0<k<n (c) [2 Points] C(n) = 3C( n/2 − 5) + n/ log n (d) [2 Points] D(n) = − 1) + 1 √ (e) [2 Points] E(n) = E( 3n/4 ) + n n n−3 D(n (f) [2 Points] F(n) = F( log n ) + log n √ √ (g) [2 Points] G(n) = n + n · G( n ) (h) [2 Points] H(n) = log(H(n − 1)) + 1 √ (i) [2 Points] I(n) = 5I n +1 (j) [2 Points] J(n) = 3J(n/4) + 1 2. You do not need to turn in proofs (in fact. please don’t turn in proofs). please don’t turn in proofs). . R [20 Points] Solve the following recurrences. Professor George O’Jungle has a favorite 26-node binary tree.

n i i (a) [2 Points] i=1 j=1 k= j n i i 1 i 1 j 1 k 8 (b) [2 Points] i=1 j=1 k= j n i i (c) [2 Points] i=1 j=1 k= j . [10 Points] Evaluate the following summations. simplify your answers as much as possible.] (i) I(n) = (n − 1)(I(n − 1) + I(n − 2)). please don’t turn in proofs). 0<k<n (c) [1 Points] C(n) = 3C( n/2 − 5) + n/ log n (d) [1 Points] D(n) = − 1) + 1 √ (e) [1 Points] E(n) = E( 3n/4 ) + 1/ n n n−5 D(n (f) [1 Points] F(n) = F( log2 n ) + log n √ √ (g) [1 Points] G(n) = n + 7 n · G( n ) (h) [1 Points] H(n) = log2 (H(n − 1)) + 1 (i) [1 Points] I(n) = I n1/4 + 1 (j) [1 Points] J(n) = J n − n/ log n + 1 3. Assume reasonable but nontrivial base cases if none are supplied. but you should do them anyway just for practice. R III [20 Points] Solve the following recurrences. [Hint: 1 2 (g) G(n) = G(n/2) + G(n/4) + G(n/6) + G(n/12) + n √ √ (h) H(n) = n + n · H( n) (j) J(n) = 8J(n − 1) − 15J(n − 2) + 1 + 1 4 + 1 6 + 1 12 = 1. Signiﬁcant partial credit will be given for answers in the form Θ( f (n)) for some recognizable function f (n). You do not need to turn in proofs (in fact.(a) [1 Points] A(n) = A n/3 + 5 + log n + n log log n (b) [1 Points] B(n) = min 3 + B(k) + B(n − k) . where F(0) = F(1) = 1 4. State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n). where F(1) = 1 and F(2) = 2. (a) A(n) = A(n/2) + n (b) B(n) = 2B(n/2) + n (c) C(n) = n + (d) D(n) = (f) F(n) = 1 2 C(n − 1) + C(3n/4) D(k) + D(n − k) + n n/3<k<2n/3 max (e) E(n) = 2E(n/2) + n/ lg n F(n−1) F(n−2) .

and δn = (δn−2 δn−1 ) for all n ≥ 2. S [20 Points] Sort the following 25 functions from asymptotically smallest to asymptotically largest. You do not need to turn in proofs (in fact. but it must be a proof. Counting (a) A domino is a 2 × 1 or 1 × 2 rectangle. 2 × 1 × 2. and βn = (βn−2 ⇔ βn−1 ) for all n ≥ 2. Simplify αn as much as possible. This problem asks you to simplify some recursively deﬁned boolean formulas as much as possible. (a) Suppose α0 = p.3 1. 1. prove that your answer is correct.n i j (d) [2 Points] i=1 j=1 k=1 n i j 1 k 1 j·k (e) [2 Points] i=1 j=1 k=1 5. and γn = (γn−2 ⇒ γn−1 ) for all n ≥ 2. α1 = q. or 2 × 2 × 1. Each proof can be just a few sentences long. [Hint: What is α5 ?] (b) Suppose β0 = p. but you should 9 . and a 2 × 2 × 10 box ﬁlled with ten slabs. and αn = (αn−2 ∧ αn−1 ) for all n ≥ 2. (b) A slab is a three-dimensional box with dimensions 1 × 2 × 2. Simplify βn as much as possible.4 O notation and friends 1. indicating ties if there are any. In each case.] 1. [Hint: There is only one such function. How many diﬀerent ways are there to completely ﬁll a 2 × n rectangle with n dominos? Set up a recurrence relation and give an exact closed-form solution. where is some boolean function with two arguments. δ1 = q. β1 = q. How many diﬀerent ways are there to ﬁll a 2 × 2 × n box with n slabs? Set up a recurrence relation and give an exact closed-form solution. γ1 = q. Simplify γn as much as possible. A 2 × 10 rectangle ﬁlled with ten dominos. [Hint: What is β5 ?] (c) Suppose γ0 = p. Find a boolean function such that δn = δm if and only if n − m is a multiple of 4. please don’t turn in proofs). [Hint: What is γ5 ?] (d) Suppose δ0 = p.

lg n lg lg n (b) Prove or disprove: 2 (c) Prove or disprove: 22 =Θ2 lg n .5 cos n + 2 lg∗ 22 2n n lg(lg∗ n) 2lg n n3/(2 lg n) nlg lg n n2. 10 = Θ 22 lg lg n . (b) If f1 (n) = O(g1 (n)) and f2 (n) = O(g2 (n)). Let g(n) = n i=1 fi (n). [Hint: When considering two functions f (·) and g(·) it is sometime useful to 2 ≡ n consider the functions ln f (·) and ln g(·). n. such that for every i. n4. S II [20 Points] Sort the following 25 functions from asymptotically smallest to asymptotically largest. . n . n3 could be sorted either as n n2 ≡ n n3 or as 2 2 n 2 n n3 . (a) Prove that 2 lg n + lg n = Θ(n2 ).5 − (n − 1)4. O . please don’t turn in proofs). Prove or disprove: • f1 (n) + f2 (n) = O(g1 (n) + g2 (n)) • f1 (n) ∗ f2 (n) = O(g1 (n) ∗ g2 (n)) • f1 (n) f2 (n) = O(g1 (n)g2 (n) ) 4. the functions n2 . n5. 3. You do not need to turn in proofs (in fact. n .do them anyway just for practice.1 (lg n)! √ e n 12 + lg lg(n) lg(201) n lg∗ (n/8) (lg∗ n)lg n n i=1 i 1 + lg lg lg n n5 n 2 i=1 i 1 15n 1 + 154 n(lg n)4 n7/(2n) n1/ lg lg n (lg(2 + n))lg n n1/125 To simplify notation. S . write f (n) g(n) to mean f (n) = o(g(n)) and f (n) ≡ g(n) to mean f (n) = Θ(g(n)).] 2. but you should do them anyway just for practice.2 lg(n!) √ n n lg∗ (n/7) (lg ∗ 1 + lg lg n n4 n 1 i=1 i2 1 154n 1 + 154 n(lg n)3 ∗ n)lg n e n 1 i=1 i n3/(2n) n1/ lg lg n n3/(2 lg n) nlg lg n lg lg(n!) lg(200) n (lg(7 + n))lg n n1/1234 To simplify notation. indicating ties if there are any. fi (n) = o( n) (namely. the functions n2 . n. write f (n) g(n) to mean f (n) = o(g(n)) and f (n) ≡ g(n) to mean f (n) = n3 or as n2 ≡ n Θ(g(n)). For example.5 − (n − 1)5.5 cos n + 2 lg∗ 22 n n lg(lg n) 2lg ∗ n2. n3 could be sorted either as n 2 2 n n 2 ≡ n2 n3 . fi (n) √ n = Prove or disprove: g(n) = o(n3/2 ). limn→∞ 0). [10 Points] √ (a) Let fi (n) be a sequence of functions. For example.

[Hint: use geometric random variable. The algorithm magically stop once the array is sorted. [Hint: Use linearity of expectation. and in the i-th stage. . (e) Prove or disprove: If f (n) = O(g(n)). randomly selecting one of the neighbors of vi−1 and setting vi to be this vertex. If the number written on a ball is the same as the number written on the box containing the ball. n}. A walk v0 . generated by starting from a vertex v0 = v ∈ V(G). . j)] > A[max(i. (f) Prove that logk n = o(n1/k ) for any positive integer k. [20 Points] There are n balls (numbered from 1 to n) and n boxes (numbered from 1 to n). for i > 0. (a) [5 Points] Prove that after (at most) n! swaps performed by the algorithm. then the expected number of iterations till the next swap is ≤ n2 /2. it picks randomly (and uniformly) two indices i. v1 . (a) [4 Points] A box may contain more than one ball. the array A is sorted. then 2 f (n) = O(2g(n) ). .5 Probability 1. than the probability for a swap in the next iteration is at least ≥ 2/n2 . . then log( f (n)) = O(log(g(n))). [10 Points] A random walk is a walk on a graph G. vm is of length m. (There might be an easy solution. if A[min(i. . .) (c) [8 Points] We put the balls into the boxes in such a way that there is exactly one ball in each box. 1.) (c) [5 Points] Prove that if A is not sorted. I S [20 Points] There is an array A with n unsorted distinct numbers in it. (d) [5 Points] Prove that if A is not sorted. In each iteration. j in the ranges {1. . the array A is sorted. What is the expected number of matches? (d) [4 Points] What is the probability that there are exactly k matches? (1 ≤ k < n) [Hint: If you have to appeal to “intuition” or “common sense”. 11 . What is the expectation of X? (b) [4 Points] What is the expected number of bins that have exactly one ball in them? (Hint: Compute the probability of a speciﬁc bin to contain exactly one ball and then use some properties of expectation. Suppose X is the number on the box that has the smallest number among all nonempty boxes. . We put each ball in a randomly selected box. (b) [5 Points] Prove that after at most (say) 6n3 swaps performed by the algorithm. Next.] (e) [5 Points] Prove that the expected number of iterations performed by the algorithm is O(n5 ). your answers are probably wrong!] 2. we say there is a match.] 3.(d) Prove or disprove: If f (n) = O(g(n)). IS(A) sorts the array using an iterative algorithm. j)] it swaps A[i] and A[ j]. but I don’t see it.

Compute the expected number of coin ﬂips your algorithm uses. We put each ball in a randomly selected box. you decide that you want to choose the ith tea with probability pi (of course. 9. . your answers are probably wrong! 12 . . You have a coin. since if you ﬂip coins too many times in the shop. . the toss sequence HHHTTHTH has 5 runs. . There n diﬀerent types of green tea that you are considering: T 1 .) (b) [8 Points] We put the balls into the boxes in such a way that there is exactly one ball in each box. visits v (i. what is the smallest-numbered card that Penn gives Teller? (c) On average. . n pi = 1). What is the expected number of matches? (c) [4 Points] What is the probability that there are exactly k matches? (1 ≤ k < n) [Hint: If you have to appeal to “intuition” or “common sense”. 6.) 5. R? [10 Points] We toss a fair coin n times. . . (a) [8 Points] A box may contain more than one ball. v) be the probability that a random walk of length m. He then takes cards one at a time from the top of the deck and gives them to Teller. For example. v ∈ V(G). v) > 0. and you decide to randomly choose one of them using random coin ﬂips. (a) On average. you might be arrested. . 7. R E [10 Points] You are in a shop trying to buy green tea.) Penn shuﬄes the deck until each each of the 52! possible orderings of the cards is equally likely. we have limm→∞ Pu (m.] In each case. using only coin ﬂips. 11. (b) Prove that a graph G with n vertices is connected if and only if for any pair of vertices u. 3. for any two vertices u. what is the largest-numbered card that Penn gives Teller? [Hint: Solve for an n-card deck and then set n = 52. give exact answers and prove that they are correct. 7. [20 Points] There are n balls (numbered from 1 to n) and n boxes (numbered from 1 to n). (They’re big cards. 52 of clubs. your answers are probably wrong!] 6. vi = v for some i). we have Pu (n − 1.. 4. Because of the diﬀerent prices of the diﬀerent teas. 12. i=1 Describe an algorithm that chooses a tea according to this distribution. 2. stopping as soon as he gives Teller the ﬁve of clubs. 5. let Pu (m.(a) For a vertex u ∈ V(G). 10. If the number written on a ball is the same as the number written on the box containing the ball. 8. Suppose X is the number on the box that has the smallest number among all nonempty boxes. starting from u. Penn and Teller have a special deck of ﬁfty-two cards. if and only if. T n . What is the expectation of X? (It’s OK to just give a big expression. What is the expected number of “runs”? Runs are consecutive tosses with the same result. Prove that a graph G with n vertices is connected. If you have to appeal to “intuition” or “common sense”. how many cards does Penn give Teller? (b) On average. with no face cards and nothing but clubs—the ace. we say there is a match. (Your algorithm should minimize the number of coin ﬂips it uses.e. 4. v) = 1. v ∈ V(G).

Bob then repeatedly throws his die until he rolls a number at least as big as the number Alice rolled. that under the modiﬁed version of the binary search tree. b]. then a 1. and the algorithms for answering those queries.. (d) [3 Points] Given a query [a. Each time Bob rolls. [10 Points] Prove that for any nonnegative parameters a and b.) (a) [2 Points] Find the smallest element stored in T in O(h) time. the following algorithms terminate and produce identical output.) Exactly how much money does Alice expect to win at this game? Prove that your answer is correct. Can you imagine any reason why WE would be preferable to FE? 13 . the game ends and Alice gets $4. your answer is probably wrong! 1. [10 Points] Suppose we have a binary search tree. and the maximum depth of the tree during those operations is at most h. b]. (c) [3 Points] Given a query [a. provide bounds on the running times of those algorithms. If Alice rolls a 1. If you have to appeal to ‘intuition’ or ‘common sense’. b]. and Alice will get $1. Each operation should take time O(log n). For example. Each temperature is a real number between −100 and 150. The operations on the data structure are as follows: Insert(t.8. etc).6 Basic data-structures and algorithms Describe a data structure that supports storing temperatures. describe separately the changes made in detail. 1. in O(h + u) time. ”1/20/03”). You perform a long sequence of operations on the binary tree (insertion. Average(d1 . insert(22. then a 5. Modify the binary search tree T so that it supports the following operations. in O(h) time. 3. (b) [2 Points] Given a query k. printout) all the elements stored in T in the range [a. insertion and deletion should still take O(h) time. ﬁnd the number of elements stored in T with their values being in the range [a. For each of the following. (Note. Alice and Bob each have a fair n-sided die. and the way insertions/deletions are being handled in the tree. where n is the number of dates stored in the data structure. and Bob rolls a 4. E . Alice rolls her die once. Implementing some of those operations would require you to modify the information stored in each node of the tree. the game will end immediately. ﬁnd the k-th smallest element stored in T in O(h) time. where u is the number of elements printed out. he pays Alice $1. searches. [10 Points] 2. deletions. then no matter what Bob rolls. then a 3.e. b]. B . d2 ) report what is the average of all temperatures that were measured between date d1 and date d2 . Also. if Alice rolls a 5. You can assume that a date is just an integer which speciﬁes the number of days since the ﬁrst of January 1970. report (i. (For example. where h is the maximum height of the tree during all the execution of the algorithm. d) — Insert the temperature t that was measured on date d.

b) if a is odd and b is even return WE(a.SlowEuclid(a. T . so it knew how to group the students as quickly as possible. Ravenclaw. b/2) if b > a return WE(b − a. b) 4. As a result. where there was so little room to move that the students had to stand in a long line. Every year. a) else return WE(a − b. the students tried to group together by house. a) else if b = 0 return a else return SE(b. b) : if b = 0 return a else return FE(b. you are given an array of n items. where each item has one of four possible values. b) : if b > a return SE(b. The student puts the Hat on their head. and the Hat tells the student which house they will join. b/2) if a is even and b is odd return WE(a/2. What method did the Sorting Hat use? (a) More formally. but there was too little room in the hallway for more than one student to move at a time. or Slytherin) by the Hogwarts Sorting Hat. After everyone learned what house they were in. the Sorting had to take place in the basement hallways. Describe an algorithmx that rearranges the items into four clusters in O(n) time using only O(1) extra space. possibly with a pointer to some additional data. you know what the phrase ‘describe an algorithm’ means. the Sorting Hat took CS Course many years ago. new students are sorted into one of four houses (Gryﬃndor. a failed experiment by Fred and George Weasley ﬁlled almost all of Hogwarts with sticky brown goo. mere moments before the annual Sorting. This year. Fortunately. b) : if b = 0 return a if a = 0 return b if a is even and b is even return 2∗WE(a/2. Huﬄepuﬀ. G Harry H Ann R Bob R Tina G Chad G Bill R Lisa G Ekta H Bart H Jim R John S Jeff R Liz R Mary H Dawn G Nick S Kim H Fox G Dana G Mel G Harry G Ekta G Bill G Chad G Nick G Mel G Dana H Fox H Ann H Jim H Dawn H Bart R Lisa R Tina R John R Bob R Liz R Mary S Kim S Jeff x Since you’ve read the Homework Instructions. a − b) FastEuclid(a. a mod b) WeirdEuclid(a. upon their arrival at Hogwarts School of Witchcraft and Wizardry. Right? 14 .

you had been kidnapped by an extreme anti corn organization called Al Corona. the other 5). a becoming like horn. on the number of steps in the game till it terminates in the case where you start with a single sack. your code is always completely 100% bug-free. if we started with {1. 4}. 1. Next. . Gates? Corniﬁcation . Your algorithm must not modify the list. they give you several sacks with a total of (n + 1)n/2 cobs of corn in them. 2.Conversion into. each node in the list only has a pointer to the next element. Normally. and you put this set of cobs into a new sack. 1. k) that rearranges the items using only O(log k) extra space. horn. How fast is your algorithm? (d) Provide a fast algorithm that uses only O(1) additional space for the case where there are k possible values. (a) [5 Points] Prove that the game terminates if you start from a conﬁguration where all the cobs are in a single sack. where n is the number of nodes in the list. . (c) [5 Points] (hard) Prove that the game terminates if you start from an arbitrary conﬁguration where the cobs might be in several sacks. S ? Suppose you have a pointer to the head of singly linked list. with the ith sack having i cobs in it. 1. How fast is your algorithm? (A faster algorithm would get more credit) (c) Describe a faster algorithm (if possible) for the case when O(k) extra space is allowed.7 General proof thingies. {1. . y z After all. Top: A standard linked list. (b) [5 Points] Provide a bound. and an inﬁnite supply of empty sacks. they ask you to play the following game: At every point in time. your list might have been corrupted by a bug in somebody else’s codey . Describe an algorithm that determines whether the linked list is corrupted or not. 5} (i. 2.. . 5.(b) Describe an algorithm for the case where there are k possible values (i. or formation of. 3} and the game ends. Unfortunately. n. and the last node’s pointer is N. Mr. so that the last node has a pointer back to some other node in the list instead.e. . .e. for i = 1. we would have the following sequence of steps: {2. your algorithm should run in O(n) time. and use O(1) extra space (not counting the list itself). For full credit.. as tight as possible. . you take a cob from every non-empty sack. Cz [20 Points] During the sweetcorn festival in Urbana. Bottom: A corrupted linked list. . To punish you. Source: Webster’s Revised Unabridged Dictionary 15 . The game terminates when you have n non-empty sacks. For example. one sack has 1 cob. Isn’t that right.

the rubber band is n + t inches long.8 1. Prove the following identities for all positive integers n and m. S . starting at the left end. k n−k (b) Give a non-inductive combinatorial proof of the same identity. the ant walks an inch. 3. and then the rubber band is stretched an inch longer. The rubber band stretches uniformly. so after t seconds. 1. Once every second. t=0 t=1 t=2 Every second. so stretching the rubber band also pulls the ant to the right. as tight as possible. 16 . (a) How far has the ant moved after t seconds. as a function of n and t? Set up a recurrence and (for full credit) give an exact closed-form solution. the ant walks one inch to the right. then Fn is an integer multiple of Fm . on the number of steps in the game till it terminates in the general case. give an answer of the form f (n) + Θ(1) for some explicit function f (n). (a) Fn is even if and only if n is divisible by 3. Miscellaneous An ant is walking along a rubber band. [Hint: What fraction of the rubber band’s length has the ant walked?] (b) How long does it take the ant to get to the right end of the rubber band? For full credit. (a) Prove the following identity by induction: 2n = n n k=0 n n . There is a correct one-sentence proof. F1 = 1.(d) [5 Points] Provide a bound. (b) (c) n i=0 F i = F n+2 2−F Fn n+1 F n−1 −1 = (−1)n+1 (d) If n is an integer multiple of m. 2. and Fn = Fn−1 + Fn−2 for all n ≥ 2. by showing that the two sides of the equation count exactly the same thing in two diﬀerent ways. The initial length of the rubber band is n inches. Recall the standard recursive deﬁnition of the Fibonacci numbers: F0 = 0. and then you make the rubber band one inch longer by pulling on the right end.

f (v)} ∈ E? Show how to use this black box.1 Equivlance of optimization and decision problems Beware of Greeks bearing gifts (The expression “beware of Greeks bearing gifts” is Based on Virgil’s Aeneid: “Quidquid id est. came to visit you on labor day.e.1 2.” and a positive integer J ≤ |C|. v} ∈ E2 if and only if { f (u). [10 Points] The ﬁrst black box. you are given G and H. |e| = |E2 |.Chapter 2 Exercises . 2006 Version: 1. there is some test c ∈ C for which ai . and you have to output f ) in polynomial time. a subset V ⊆ V1 and a subset E ⊆ E1 such that |V| = |V2 |.e. was a black box that can solves the following decision problem in polynomial time: Problem: M T C Instance: A ﬁnite set A of “possible diagnoses. a j ∩ c = 1 (that is. and left you with two black boxes.) The faun. timeo Danaos et dona ferentes”. ﬁnding and outputting the smallest possible set C ). E1 ) and H = (V2 . a j of possible diagnoses from A. 1. to compute the subgraph isomorphism (i. a test c that “distinguishes” between ai and a j )? Show how to use this black box. Question: Is there a subcollection C ⊆ C with |C | ≤ J such that.1. that is.”. representing binary “tests..Exercises Sariel Har-Peled February 23. G = (V1 . and there exists a one-to-one function f : V2 → V satisfying {u. 17 . E2 )..02 2. how to solve in polynomial time the optimization version of this problem (i.” a collection C of subsets of A. I fear Greeks even when they bring gifts. for every pair ai . [10 Points] The second box was a black box for solving S I. the brother of the P satyr.NP Completeness 473G . Problem: S I Instance: Two graphs. Question: Does G contain a subgraph isomorphic to H.Algorithms . which means literally “Whatever it is. 2.

[5 Points] Show that the following problem is NP-C. s∈T s∈S \T 2. .1. . [5 Points] Show that the following problem is NP-C. H = (V2 . positive integer K. a black-box that can solve P in polynomial time (note that this black box solves the decision problem). . Question: Are there k sets S 1 . your algorithm should output a subset T ⊆ S . . a partition of S if such a solution exists.2 2. E1 ). as a token of appreciation. Namely. E2 ).2. an integer bin Z capacity B. the uncle of the deduction fairy.e.1 Showing problems are NP-C Graph Isomorphisms 1. such that s= s.2 Partition The P satyr. Question: Do there exists subsets E1 ⊆ E1 and E2 ⊆ E2 with |E1 | = |E2 | ≥ K such that the two subgraphs G = (V1 . E1 ). i. H = (V2 . and a positive integer K. Problem: LARGEST COMMON SUBGRAPH Instance: Graphs G = (V1 . and there exists a one-to-one function f : V2 → V satisfying {u. a size s(u) ∈ Z + for each u ∈ U. v} ∈ E2 if and only if { f (u). E2 ). E1 ) and H = (V2 . S k in C such that S ⊆ ∪k S i ? i=1 2. [5 Points] Problem: MINIMUM SET COVER Instance: Collection C of subsets of a ﬁnite set S and an integer k.. Problem: SUBGRAPH ISOMORPHISM Instance: Graphs G = (V1 . f (v)} ∈ E? 2. . using the black box. .2.2. Question: Does G contain a subgraph isomorphic to H. . [5 Points] 18 . Question: Is there a partition of U int disjoint sets U1 . Describe a polynomial time algorithm that computes.2 NP Completeness collection 1. |E| = |E2 |. E2 ) are isomorphic? 2. U K such that the sum of the sizes of the items inside each Ui is B or less? 3. had visited you on winter break and gave you. a subset V ⊆ V1 and a subset E ⊆ E1 such that |V| = |V2 |. Let S be a given set of n integer numbers. . [5 Points] Problem: BIN PACKING Instance: Finite set U of items.

2. 2. t: . one can try to solve it by backtracking. show that EXACT-COVER-BY-4-SETS is also NP-C. a positive integer K.2 2SAT Given an instance of 2SAT (this is a problem similar to 3SAT where every clause has at most two variables). that is. that is.3.an integer number Question: Is there a subset X ⊆ S such that x=t? x∈X Given an instance of S S. Question: Does S contain a hitting set for C of size K or less.3. and M.2. where M = max s∈S s.set of positive integers. provide an algorithm that solves it in polynomial time in n. [5 Points] Problem: HITTING SET Instance: A collection C of subsets of a set S . Why this does not imply that P = NP? 2. and all the rectangles have their edges parallel of the edges of R? 4.4 EXACT-COVER-BY-4-SETS The EXACT-COVER-BY-3-SETS problem is deﬁnes as the following: given a ﬁnite set X with |X| = 3q and a collection C of 3-element subsets of X. a subcollection C ⊆ C such that every element of X occurs in exactly one member of C ? Given that EXACT-COVEqR-BY-3-SETS is NP-C. so that no pair of the rectangles intersect. does C contain an exact cover for X.3 LONGEST-PATH Show that the problem of deciding whether an unweighted undirected graph has a path of length greater than k is NP-C.2.1 Solving special subcases of NP-C problems in polynomial time Subset Sum Problem: S S Instance: S . a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C. 2.3 2. Question: Is there a way of placing the rectangles of RECT S inside R. 19 .Problem: TILING Instance: Finite set RECT S of rectangles and a rectangle R in the plane.

the veriﬁer can easily verify it in polynomial time in L. Prove that N-3SAT is co − NP. .3. . (Duh?) We refer to F as a subformula of F. such that (i) F does not have the variable xi in it. 2. Given this proof.6 Why Mike can not get it. V(Cn ) = {1. using polynomial number of calls to the black-box (if such an assignment exists). . k Let G be a graph. 3} .3 2-CNF-SAT Prove that deciding satisﬁability when all clauses have at most 2 literals is in P. How fast is your algorithm? 3. . [1 Points] Prove that if a formula F is not satisﬁable.3. Describe a polynomial time algorithm (in n) that outputs a Hamiltonian cycle if such a cycle exists in G. How fast is your algorithm? 2. as a function of n and k? 2. {n − 1. [3 Points] Given an assignment xi ← b to one of the variables of a 2SAT instance F (where b is either 0 or 1). n}. such that G is a subgraph of Cn . then the formula F is not satisﬁable. {2.) 1. 2. it evaluates to FALSE. [6 Points] Describe a polynomial time algorithm that solves the 2SAT problem (using (b)). (iii) F is satisﬁable iﬀ there is a satisfying assignment for F with xi = b. 2.. . .3. 2} . where k is a small constant. . n} {n. and for each assignment. describe a polynomial time algorithm that computes a subformula F of F. [10 Points] Problem: N-3SAT Instance: A 3CNF formula F Question: Is F not satisﬁable? (Namely. QED. 20 . we list the output (which is FALSE). Show a polynomial time (in n and M) algorithm that solves partition.5 Partition revisited Let S be an instance of partition. for all inputs for F. Here is a proof that N-3SAT is in NP: If the answer to the given instance is Yes. What is wrong with this proof? 3. 1}}). one can ﬁnd the satisfying assignment of a formula F in polynomial time. and M = max s∈S s.4 Hamiltonian Cycle Revisited Let Cn denote the cycle graph over n vertices (i. and F is formed by adding clauses to F . (ii) F is a 2SAT formula. j} ∈ E(Cn ) iﬀ i and j are in distance at most k in Cn .3.1. we provide the following proof to the veriﬁer: We list every possible assignment. 2. How fast is your algorithm. such that n = |S |. and E(Cn ) = {{1.e. k k Let Cn denote the graph where {i. . and (iv) F is a subformula of F. of length L. Show that given a black-box that can solves N-3SAT.

. Question: Are there k sets S 1 . n} (i. . Either prove that it is NP-Hard to ﬁnd the largest independent set in G. . Instance: A collection C of subsets of a set S . a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C.9 Partition We already know the following problem is NP-C: Problem: SUBSET SUM Instance: A ﬁnite set A and a “size” s(a) ∈ Z + for each a ∈ A.7 NP-Completeness Collection [20 Points] Prove that the following problems are NP-Complete. . . such that for any edge i j ∈ E. or provide a polynomial time algorithm. Assume that you are given a numbering π : V → {1. that is. a positive integer K. Instance: Graph G = (V. Z Question: Is there a subset A ⊆ A such that a∈A s(a) = B? Now let’s consider the following problem: Problem: PARTITION Instance: A ﬁnite set A and a “size” s(a) ∈ Z + for each a ∈ A. S k in C such that S ⊆ ∪k S i ? i=1 Problem: HITTING SET 2.3.3. 21 . .3.) Problem: M D S T4. . an integer B. Question: Does S contain a hitting set for C of size K or less.2. . every vertex have a unique number).8 Independence [10 Points] Let G = (V. Instance: Graph G = (V. E) and integer k Question: Does G contains a spanning tree T where every node in T is of degree at most k? 2. Problem: MINIMUM SET COVER 1. Problem: H P 3. E) be an undirected graph over n vertices. 2.e. we have |π(i) − π( j)| ≤ 20.. Z Question: Is there a subset A ⊆ A such that s(a) = a∈A a∈A\A s(a)? Show that PARTITION is NP-C. Instance: Collection C of subsets of a ﬁnite set S and an integer k. E) Question: Does G contains a Hamiltonian path? (Namely a path that visits all vertices of G.

11 Bin Packing Problem: BIN PACKING Instance: Finite set U of items. [5 Points] Prove that MINIMUM SET COVER problem is NP-C 2. . . [5 Points] Hitting set on the line Given a set I of n intervals on the real line. 22 . a ”size” s(u) ∈ Z + and a ”value” v(u) ∈ Z + for each Z Z u ∈ U. a size s(u) ∈ Z + for each u ∈ U. such that for every interval I ∈ I there is a point p ∈ X. U K such that the sum of the sizes of the items inside each Ui is B or less? 1.12 Knapsack 1. . . . .3. a size constraint B ∈ Z +. Question: Is there a partition of U into disjoint sets U1 . Z Z Question: Is there a subset U ⊆ U such that u∈U s(u) ≤ B and u∈U v(u) ≥ B. an integer bin capacity Z B. 3. such that p ∈ I. S k in C such that S ⊆ ∪k S i ? i=1 1. Problem: HITTING SET Instance: A collection C of subsets of a set S . so that no pair of the rectangles intersect in their interior. . show a O(n log n) time algorithm that computes the smallest set of points X on the real line. Problem: TILING Instance: Finite set RECT S of rectangles and a rectangle R in the plane. [5 Points] Show that the following problem is NP-C. [5 Points] Show that the following problem is NP-C. Question: Are there k sets S 1 . and a value goal K ∈ Z +. [5 Points] Prove that the following problem is NP-C. and all the rectangles have their edges parallel of the edges of R? 2.3. 2. Question: Does S contain a hitting set for C of size K or less.3. that is. Question: Is there a way of placing all the rectangles of RECT S inside R. . a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C. and a positive integer K.10 Minimum Set Cover [15 Points] Problem: MINIMUM SET COVER Instance: Collection C of subsets of a ﬁnite set S and an integer k.2. a positive integer K. [5 Points] Show that the BIN PACKING problem is NP-C 2. Problem: KNAPSACK Instance: A ﬁnite set U.

In your free time you can try and improve this constant. The machine can process only one task at a time.. if there are k vertices of G. If you complete task a j by its deadline d j . that is. and a deadline d j . It was very recently shown (I. such that if we remove them from G. a proﬁt p j .{ 3. a subset V ⊆ V such that |V | ≤ K and for each edge {u.3.ias. your algorithm should output a set X ⊆ V. an . 2. there exists a subset M ⊆ S .edu/˜iritd/mypapers/vc. Scheduling with proﬁts and deadlines Suppose you have one machine and a set of n tasks a1 . (More formally. such that each connected component of GS \M has at most (2/3)|S | vertices. and task a j must run uninterruptedly for t j consecutive time units to complete. such that X is a vertex cover. a graph G is k-separable. you are given the processing times. v} ∈ E. and a ”deadline” D ∈ Z . But you receive no proﬁt if you complete it after its deadline. Question: Is there a vertex cover of size K or less for G. E) is k-separable. proﬁts and deadlines for a set of n tasks. 4. each one of the remaining connected components has at most (2/3)n vertices. and |M| ≤ k.2. Namely. Good luck. [5 Points] Show that the following problem is NP-C. a ”length” l(a) ∈ Z + for each a ∈ A. { 23 . (b) [2 Points] Show that the decision problem is NP-C. a graph G = (V. and you wish to ﬁnd a schedule that completes all the tasks and returns the greatest amount of proﬁt. Safra. Problem: MULTIPROCESSOR SCHEDULING Instance: A ﬁnite set A of ”tasks”.pdf. http://www. For a constant k. and furthermore each one of those connected components is also k-separable. On the importance of being biased. where Kopt is the cardinality of the smallest vertex cover of G. As an optimization problem. 2001. Manuscript. (a) [3 Points] State this problem as a decision problem. Show a polynomial approximation algorithm to the V-C problem which is a factor 2 approximation of the optimal solution. Each task a j has a processing time t j . a number Z + + m ∈ Z of ”processors”.) Show that given a graph G which is k-separable.13 Vertex Cover Problem: VERTEX COVER Instance: A graph G = (V..) that doing better than 1. at least one of u and v belongs to V ? 1. Dinur and S.3600 approximation to VERTEX COVER is NP-Hard.. Hint: Do a reduction from INDEPENDENT SET to VERTEX COVER. Z Z Question: Is there a partition A = A1 A2 · · · Am of A into m disjoint sets such that max{ a∈Ai l(a) : 1 ≤ i ≤ m} ≤ D? 3. a2 . one can compute the optimal VERTEX COVER in nO(k) time. E) and a positive integer K ≤ |V|. 2. Present a linear time algorithm that solves this problem for the case that G is a tree. and |C| ≤ 2Kopt . you receive a proﬁt p j . if for any subset of vertices S ⊆ V. . Show that VERTEX COVER is NP-C.math.

In the optimization variant of BIN PACKING one has to ﬁnd the minimum number of bins needed to contain all elements of U. 4. The greedy approximation algorithm for MINIMUM SET COVER.3. Show that the following problem is NP-C. . U K such that the sum of the sizes of the items inside each Ui is B or less? 1. a size s(u) ∈ Z + for each u ∈ U. The algorithm repeat this until all the elements of S are removed. Show that the BIN PACKING problem is NP-C 2.3. say. remove all all the elements of X from S and also from each subset of C. 4. so that this tiling of T covers. 2. . Namely. where kopt is the minimum number of bins of size B needed to store all the given elements of U. and M ≤ kopt . 24 . works by taking the largest set in X ∈ C. .2. and a positive integer K. Prove that the number of elements not covered after kopt iterations is at most n/2. . . and a tiling of T . Assume that RECT S is a set of squares that can be arranged as to tile R completely. S k in C such that S ⊆ ∪k S i ? i=1 1. Present an algorithm that is a factor two approximation to optimal solution. . Question: Are there k sets S 1 . Prove that MINIMUM SET COVER problem is NP-C 2. 10% of the area of R. such that the total size of each bin is at most B. and all the rectangles have their edges parallel of the edges of R? 5. 3. and n = |S |. so that no pair of the rectangles intersect. Prove that the following problem is NP-C. an integer bin capacity Z B. Prove the greedy algorithm is O(log n) factor optimal approximation. Present a polynomial time algorithm that computes a subset T ⊆ RECT S. Question: Is there a partition of U int disjoint sets U1 . Question: Is there a way of placing the rectangles of RECT S inside R. . it outputs a partition of U into M bins. Problem: TILING Instance: Finite set RECT S of rectangles and a rectangle R in the plane. . Assume that B is bounded by an integer constant m. where kopt is the smallest number of sets of C needed to cover S . 3. Describe a polynomial algorithm that computes the solution that uses the minimum number of bins to store all the elements.15 Minimum Set Cover Problem: MINIMUM SET COVER Instance: Collection C of subsets of a ﬁnite set S and an integer k.14 Bin Packing Problem: BIN PACKING Instance: Finite set U of items.

Namely. 2. 3. such that for every interval I ∈ I there is a point p ∈ X. Prove that that the above algorithm is a factor two approximation to the optimal cover. 25 Consider the Problem MAX SAT. Given a set I of n intervals on the real line. one should ﬁnd the smallest number of disks of radius r that cover P. where kopt is the minimal number of disks needed to cover P by disks of radius r. where ropt is the minimum radius of such a cover of P. and an integer k and a radius r. 4. 5. Namely. so that we can ﬁnd k-disks that cover the point-set. Describe an approximation algorithm to the r-DISK COVER problem.3. Prove that dual problem r-DISK-COVER problem is NP-Hard. . and k = O(kopt ). 6. outputs k disks. which are the resulting centers. that is. In this problem. Show an implementation of this approximation algorithm in O(nk) time. Question: Is there a cover of the points of P by k disks of radius (at most) r? 1. the radius of the disks output ≤ 2ropt .17 MAX 3SAT Problem: MAX SAT Instance: Set U of variables. a collection C of disjunctive clauses of literals where a literal is a variable or a negated variable in U. show a O(n log n) time algorithm that computes the smallest set of points X on the real line. where ropt is the smallest radius. 5. Describe an nO(k) time algorithm that solves this problem.16 k-Center Problem: k-CENTER Instance: A set P of n points in the plane. Provide an ε-approximation algorithm for this problem. 2. and it continue in this fashion till it has k-points.Problem: HITTING SET Instance: A collection C of subsets of a set S . your algorithm would output k-disks that cover the points and their radius is ≤ (1+ε)ropt . a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C. 2. a positive integer K. There is a very simple and natural algorithm that achieves a 2-approximation for this cover: First it select an arbitrary point as a center (this point is going to be the center of one of the k covering disks). given k and a set of points P in the plane. so that the k disks cover P and are of radius r. such that p ∈ I. given a point-set P and a radius r. Question: Find an assignment that maximized the number of clauses of C that are being satisﬁed.3. Namely. The smallest k equal radius disks centered at those points are the required k disks. Then it computes the point that it furthest away from the current set of centers as the next center. Question: Does S contain a hitting set for C of size K or less. given P and a radius r.

Consider the following pairs of problems: 1.19 3SUM Describe an algorithm that solves the following problem as quickly as possible: Given a set of n numbers. 4. EDGE COVER and VERTEX COVER 6. your algorithm should answer T for the set {−5. then the expected number of satisﬁed clauses is (7/8)M.21 PLANAR-3-COLOR Using 3COLORABLE. then every NP-C problem is not a member of -NP.3. Let (U. −17. 3. 2. where M = |C|. MIN SPANNING TREE and MAX SPANNING TREE 2. there exists an assignment that satisﬁes at least 7/8 of the clauses. C) be an instance of MAX SAT such that each clause has ≥ 10 · log n distinct variables. there exists an assignment that satisfy all the clauses of C. does it contain three elements whose sum is zero? For example. Prove that MAX SAT is NP-Hard.3. 2.3. Show that for any instance of MAX SAT. and then replace any crossings in a planar embedding with the gadget appropriately. 3. since −5 + 7 + (−2) = 0. MIN CUT and MAX CUT (between s and t) 5. 4. Hint: show that the gadget can be 3-colored. Show that if NP -NP.18 Complexity 1. −2. 13}. −13. TRANSITIVE REDUCTION and MIN EQUIVALENT DIGRAPH (all of these seem dual or opposites. SHORTEST PATH and LONGEST PATH 3.21.20 Polynomially equivalent. where each clause has exactly three diﬀerent literals. 2. Prove that there exists a satisfying assignment. −4.1. Which of these pairs are polytime equivalent and which are not? Why? 2. and the ‘gadget’ in ﬁgure 2. Prove that P ⊆ -NP. 4}. and F for the set {−6.3. and we randomly assign to the variables values 0 or 1.3. 5. 2. Namely. 2. 7. prove that the problem of deciding whether a planar graph can be 3-colored is NP-C. where n is the number of clauses. −2. −4. 26 . except the last. Prove that if each clause has exactly three literals. which are just two versions of minimal representation of a graph). 7. TRAVELING SALESMAN PROBLEM and VACATION TOUR PROBLEM (the longest tour is sought).

Prove that if G is an undirected bipartite graph with an odd number of vertices. prove that the problem of deciding whether a planar graph with no vertex of degree greater than four can be 3-colored is NP-C.3.22.22 DEGREE-4-PLANAR-3-COLOR Using the previous result. 27 . Show that knowing this tree of primitive roots can be checked to be correct and used to show that n is prime.Figure 2. Hint: show that you can replace any vertex with degree greater than 4 with a collection of gadgets connected in such a way that no degree is greater than four. 2.23 Primality and Complexity Prove that PRIMALITY (Given n. consider a certiﬁcate involving primitive roots and recursively their primitive roots. then G is nonhamiltonian.1: Gadget for PLANAR-3-COLOR. 2.3.3. For NP.2: Gadget for DEGREE-4-PLANAR-3-COLOR. 2.24 Poly time subroutines can lead to exponential algorithms Show that an algorithm that makes at most a constant number of calls to polynomial-time subroutines runs in polynomial time. and the ‘gadget’ in ﬁgure 2.3. 3. Figure 2. but that a polynomial number of calls to polynomial-time subroutines may result in an exponential-time algorithm. 2. is n prime?) is in NP ∩ -NP. Explain why the results in previous questions do not contradict the facts that both HAM-CYCLE and HAM-PATH are NP-C problems. and that this check takes poly time.25 Polynomial time Hmiltonian path 1. Show that the hamiltonian-path problem can be solved in polynomial time on directed acyclic graphs by giving an eﬃcient algorithm for the problem. 2. Hint: -NP is easy (what’s a certiﬁcate for showing that a number is composite?). Give a polynomial time algorithm algorithm for ﬁnding a hamiltonian cycle in an undirected bipartite graph or establishing that it does not exist.3.

3. give a poly time algorithm for it. Either prove that this problem is NP-C. 2.3. Give a dynamic programming algorithm to decide this.26 GRAPH-ISOMORPHISM Consider the problem of deciding whether one graph is isomorphic to another. or prove that neither case occurs. Give a brute force algorithm to decide this. 1. 28 . 4.2. Give an eﬃcient probabilistic algorithm to decide this.

and the middle. we have v ∈ A – that is.1. 3. • We say a node v is upstream if.Network Flow 473G .1 Network Flow The good. and some nodes are in the middle.Chapter 3 Exercises . v lies on the source side of every minimum cut. v lies on the sink side of every minimum cut. B). or central. and you want to be able to express something like the following intuitive notion: Some nodesare clearly on the “source side” of the main bottlenecks. 29 . have been proposed for situations like natural disasters in which the coordinators of a rescue eﬀort might want to monitor conditions in a hard-toreach area.Algorithms . for all minimum s-t cuts (A. and at least one minimum s-t cut (A . • We say a node v is central if it is neither upstream nor downstream. there is at least one minimum s-t cut (A. so we have to be careful in how we try making this idea precise. downstream.1. B ) for which v ∈ B . for all minimum s-t cuts (A. the bad.02 This chapter include problems that are realted to network ﬂow. The running time of your algorithm should be within a constant factor of the time required to compute a single maximum ﬂow. G can have many minimum cuts. Give an algorithm that takes a ﬂow network G and classiﬁes each of its nodes as being upstream. The idea is that a large collection of these wireless devices could be dropped into such an area from an airplane and then conﬁgured into a functioning network. B) for which v ∈ A. we have v ∈ B – that is. • We say a node v is downstream if.2 Ad hoc networks [20 Points] Ad hoc networks are made up of low-powered wireless devices. B).Exercises Sariel Har-Peled February 23. 2006 Version: 1. However. [10 Points] Suppose you’re looking at a ﬂow network G with source s and sink t. 3.1 3. some nodes are clearly on the “sink side” of the main bottlenecks. Here’s one way to divide the nodes of G into three categories of this sort.

the signal strength f (δ) that they’ll be able to achieve on their wireless connection. but no capacity limits on the edges. Give a polynomial-time algorithm that ﬁnds a feasible ﬂow of minimum possible values. 3.1. Suppose you’re given a set of n wireless devices. as usual. More formally. More accurately.e.. there is a graph G = (V. Give an algorithm that determines whether it is possible to choose a back-up set for each device subject to this more detailed condition.e.3 Minimum Flow [10 Points] Give a polynomial-time algorithm for the following minimization analogue of the Maximum-Flow Problem. (b). we should include some redundancy: A device v should have a set of k other devices that it can potentially contact. w) for each edge (v.1. stil requiring that no device should appear in the back-up set of more than b other devices. 2. (We’ll assume that f (δ) decreases with increasing δ. and the value of a ﬂow. Design an algorithm that determines whether it is possible to choose a back-up set for each device (i. there’s a strict dichotomy between being “in range” or “out of range” is a simpliﬁed abstraction. More concretely. for a pair of devices at distance δ. and numbers (capacities) (v. and (c). no device appears in the back-up set of more than b other devices. so that if the back-up set for v consists of devices at distances d1 ≤ d2 ≤ · · · ≤ dk . and for the combination of reasons (a). 1. at least one other that can be reached with moderately high signal strength. and so forth. Moreover. You are trying to solve a circulation problem. w) ∈ E. We’d like it to be the case that if one of the devices v detects that it is in danger of failing. The algorithm should output the back-up sets themselves. it should transmit a representation of its current state to some other device in the network. y) coordinate pair for each. Each device has a limited transmitting range – say it can communicate with other devices that lie within d meters of it. provided they can be found. We deﬁne a ﬂow f . with the further property that. does min-ﬂow = maxcut?). provided they can be found. w) ∈ E. w) ≥ (v. since we don’t want it to try transmitting its state to a device that has already failed. w) for every edge (v. 3. for each pair of devices v and w. with a source s ∈ V and sink t ∈ V. there should be at least one that can be reached with very high signal strength. Prove an analogue of the Max-Flow Min-Cut Theorem for this problem (i. the algorithm should output the back-up sets themselves. We’ll call this a back-up set for device v. it becomes necessary to include provisions for dealing with the failure of a reasonable number of the nodes. k other devices. each within d meters).) We might want to build this into our notion of back-up sets as follows: among the k devices in the back-up set of v. there’s a power decay function f (·) that speciﬁes. The problem has demands. with positions represented by an (x. each within d meters of it.4 Prove infeasibility. You are given a directed graph G = (V. requiring that all nodes except s and t satisfy ﬂow conservation. The idea that. the given numbers are lower bounds on edge ﬂow – that is. 2.. they require that f (v. and there is no upper bound on ﬂow values on edges. E). then we should have f (d j ) ≥ p j for each j. 1. Again. However. for some parameter b. but it is not feasible. E). we have values p1 ≥ p2 ≥ · · · ≥ pk . and demands dv for each node v (satisfying 30 .Note that we’re talking about (a) relatively inexpensive devices that are (b) being dropped from an airplane into (c) dangerous territory.

31 . and there is an edge (x. Here we consider a version of the problem with an addition complication: Each customer oﬀers a diﬀerent amount of money for the service.) However. Let X be the set of customers that so far have been promised service. You quickly realize that the existence of such a set immediately implies that the ﬂow cannot exist: The set U has a positive total demand. they ask. . we can decide whether or not all customers can be served. P0 and P1 collectively generate a sequence x1 . you wonder how big the demand of a set with no incoming edges can be. . Does this greedy approach produce an optimal set of customers? Prove that it does. and two players P0 and P1 . larger than the total of all positive demands dv in the graph. Consider an assignment problem where we have a set of n stations that can provide service. You start with a set X of n actresses and a set Y of n actors. algorithmically speaking.1. Note that rejected customers will not be considered later. . x2 . Using a max-ﬂow computation. we do not assign accepting customers to servers in a greedy fasion: we only ﬁx the assignment after the set of accepted customers is ﬁxed. In trying to evaluate how far the problem is from being solvable. and yet v∈U dv > 0. Give a polynomial-time algorithm to ﬁnd a subset S ⊂ V of nodes such that there is no edge into S and for which v∈S dv is as large as possible subject to this condition. or provide a counterexample. and there is a set of k requests for service. player P1 names an actor y1 who has appeared in a movie with x1 . at least we can tell him/her early.1. y1 . (Alternately. Thus. We add x to the set X if and only if there is a way to assign X ∪ {x} to servers. When considering customer x the algorithm will either “promise” service to x or reject x in the following greedy fasion. Say. that the stations are cell towers and the requests are cell phones. and so on.) You want to ﬁx up the graph to make the problem feasible. 1) loses when it is Pi ’s turn to move. Let U be the set of customers. The problem so far can be represented by a bipartite graph G: one side is the stations. it is enough to set ce to be an extremely large number for each edge – say. Now the goal is to ﬁnd a subset X ⊂ U maximizing x∈X v x such that there is an assignment of the customers in X to stations. Consider the following greedy approach.6 Follow the stars [20 Points] Some friends of yours have grown tired of the game “Six Degrees of Kevin Bacon” (after all. On a closer look. you see that there is a subset U of nodes such that there is no edge into U. A player Pi (i = 0. or can get an assignment of a subset of customers to stations maximizing the number of served customers. and assume that customer x ∈ U is willing to pay v x ≥ 0 for being served.5 Cellphones and services. and he/she cannot name a member of his/her set who hasn’t been named before. player P0 names an actress x2 who has appeared in a movie with y1 . y2 . Assume that each station can serve at most one customer. Note that this problem can be solved via the circulation algorithm from Section 7. and we reject x otherwise. v∈V 3.7 by setting ce = +∞ for all edges e ∈ E. y) between customer x and station y if customer x can be served from station y. and so needs incoming ﬂow. Player P0 names an actress x1 ∈ X. (This is viewed as an advantage: If we need to reject a high-paying customer. so it would be very useful to know why the problem is not feasible as it stands now. and yet U has no edges into it. Each request can be served by a given set of stations. isn’t it just breadth-ﬁrst search?) and decide to invent a game with a little more punch.dv = 0). for example. We process customers in order of decreasing value (breaking ties arbitrarily). 3. the other the customers. Here’s how it works. such that each actor/actress in the sequence has costarred with the actress/actor immediately preceding. and the problem is to decide if there is a ﬂow f such that f (e) ≥ 0 and f in (v) − f out (v) = dv for all nodes v ∈ V.

1. yeh. . E). and a designated sink t ∈ V. At the same time. deﬁned by a ﬂow value fe on each edge e. Show how to ﬁnd a maximum ﬂow in the resulting capacitated graph in time O(m + n). depending on where they are right now). it searches for ˜ s-t paths in a graph G f consisting only of edges of e for which f (e) < ce . Consider the following scenario. Give a polynomial-time algorithm that decides which of the two players can force a win. y1 . There are k hospitals in the region. paramedics have identiﬁed a set of n injured people distributed across the region who need to be rushed to hospitals. The bug turns out to be pretty easy to ﬁnd. provided that it terminates only when there are no forward-edge paths. it may choose them in any fashion it wants. after you’ve looked at a bit of output from it. and each of the n people needs to be brought to a hospital that is within a half-hour’s driving time of their current location (so diﬀerent people will have diﬀerent options for hospitals. in a particular instance of this game. in our setting. and so their implementation builds a variant of the residual graph that only includes the forwards edges. The paramedics are in touch by cell phone. Now suppose we pick a speciﬁc edge e∗ ∈ E and reduce its capacity by 1 unit. 3. they claim. with complete information on who has appeared in a movie with whom. Do you believe this? The crux of their claim can be made precise in the following statement. . .Suppose you are given a speciﬁc pair of such sets X and Y.8 Capacitation. with a positive integer capacity ce on each edge e. and it terminates when there is no augmenting path consisting entirely of such edges. is an algorithm that takes a current sequence x1 . where m is the number of edges in G and n is the number of nodes. 3.9 Fast Friends [20 Points] Your friends have written a very fast piece of maximum-ﬂow code based on repeatedly ﬁnding augmenting paths as in the course lecture notes. one doesn’t want to overload any one of the hospitals by sending too many patients its way. We’ll call this the Forward-Edge-Only Algorithm. and they want to collectively work out whether they can choose a hospital for each of the injured people in such a way that the load on the hospitals is balanced: Each hospital receives at most n/k people. a designated source s ∈ V. The ﬂow { fe } is acyclic: There is no cycle in G on which all edges carry positive ﬂow.1. y2 .7 Flooding [10 Points] Network ﬂow issues come up in dealing with natural disasters and other crises. that it never returns a ﬂow whose value is less than a ﬁxed fraction of optimal. In addition to its blazing speed. since major unexpected events often require the movement and evacuation of large numbers of people in a short amount of time. Due to large-scale ﬂooding in a region. and generates a legal next move for Pi (assuming it’s Pi ’s turn to move). your friends hadn’t really gotten into the whole backward-edge thing when writing the code. A strategy for Pi . (Note that we do not try ot prescribe how this algorithms chooses its forward-edge paths. 3. yeh. However. in fact. Give a polynomial-time algorithm that takes the given information about the people’s locations and determines whether this is possible. yeh Suppose you are given a directed graph G = (V.) It’s hard to convince your friends they need to reimplement the code. You are also given a maximum s-t ﬂow in G. 32 . In other words.1. you realize that it’s not always ﬁnding a ﬂow of maximum value. x2 .

“There is an absolute constant b > 1 (independent of the particular input ﬂow network).k G. In this problem. is it always the case − that if x −→ y and y −→ z. and nonnegative edge capacities {ce }. and nonnegative node capacities {cv ≥ 0} for each v ∈ V.11 Matrices [10 Points] Let M be an n × n matrix with each entry equal to either 0 or 1. we assume edges have capacities. we can deﬁne a relation −→ on pairs of vertices of G − as follows.k G.1. Deﬁne an s-t cut for node-capacitated networks.1. We say that a ﬂow is feasible if it satisﬁes the usual ﬂow-conservation constraints and the node-capacity constraints: f in (v) ≤ cv for all nodes.k [10 Points] Given a graph G = (V. Let G = (V. 3. we consider the variant of the MaximumFlow and Minimum-Cut problems with node capacities.13 Transitivity G. 2. E) be a directed graph. 3. [8 Points] Give a polynomial-time algorithm that determines whether a matrix M with 0-1 entries is rearrangeable. Give a polynomial-time algorithm to decide whether G has a unique minimum s-t cut (i. the relation −→ is transitive? That is.1. and give a proof of either the statement or its negation. we say that x −→ y if there exist k mutually edge-disjoint paths from x to y in G. 3. 1. − Is it true that for every G and every k ≥ 0. and there is no limit on how much ﬂow is allowed to pass through a node.12 Unique Cut [10 Points] Let G = (V. then we have x −→ z? Give a proof or a counterexample. 3.k G.k . with source s ∈ V. the ﬂow through a node v is deﬁned as f in (v). so that on every instance of the Maximum-Flow Problem. E). y ∈ V. with source s ∈ V. If x.k G. − − − 33 G. Let mi j denote the entry in row i and column j. Give a polynomial-time algorithm to ﬁnd an s-t maximum ﬂow in such a node-capacitated network. sink t ∈ V. but for which at least one entry in each row and each column is equal to 1. Given a ﬂow f in this graph.1.. A diagonal entry is one of the form mii for some i.e.10 Even More Capacitation [10 Points] In a standard s − t Maximum-Flow Problem. the Forward-Edge-Only Algorithm is guaranteed to ﬁnd a ﬂow of value at least 1/b times the maximum-ﬂow value (regardless of how it chooses its forward-edge paths). sink t ∈ V. Decide whether you think this statement is true or false. E) be a directed graph. [2 Points] Give an example of a matrix M that is not rearrangeable. an s-t of capacity strictly less than that of all other s-t cuts). and show that the analogue of the Max-Flow Min-Cut Theorem holds true. and a natural number k.

000 10. Let C = max(u.000 children 1. the edge connectivity of a tree is 1. a good rounding for our table data would be as follows.1.145 27. 3.000 total 26. E) be a ﬂow network with source s. They collect statistics and publish the collected data in a book.15 Edge Connectivity [20 Points] The edge connectivity of an undirected graph is the minimum number k of edges that must be removed to disconnect the graph.000 7.872 3.998 9. 3.000 22.000 7. 1.000 3. and you want to round each fractional number α to either α or α . and the edge connectivity of a cyclic chain of vertices is 2.000 total 26. and your problem is to round each fraction that is between 0 and 1 to either 0 or 1 without changing the row or column sums. 3.045 0. Show how the edge connectivity of an undirected graph G = (V. Country A B C Total grown-up men 11.000 27.000 1.936 4.000 22. So you have a matrix of fractional numbers between 0 and 1. The statistics are about populations of diﬀerent regions in the world and are recorded in multiples of one million. Each fractional number can be rounded either up or down.000 children 1.000 55. sink t. Country A B C Total grown-up men 11. For example.000 2.3.000 We will assume here for simplicity that our data is such that all row and column sums are integers.1. [5 Points] Consider ﬁrst the special case when all data are between 0 and 1. E) can be determined by running a maximum-ﬂow algorithm on at most |V| ﬂow networks.019 2. 34 .919 24.000 10.000 4.000 grown-up women 12.14 Census Rounding [20 Points] You are consulting for an environmental statistics ﬁrm. each having O(V) vertices and O(E) edges. For example.16 Maximum Flow By Scaling [20 Points] Let G = (V. Examples of such statistics would look like the following table. v) ∈ E.983 10.v)∈E c(u. [2 Points] Argue that a minimum cut of G has capacity at most C|E|. and an integer capacity c(u.000 0. v) on each edge (u.000 grown-up women 13. v).083 2. 2. [5 Points] Consider the Census Rounding Problem as deﬁned above. The Census Rounding Problem is to round all data to integers without changing any row or column sum.000 24.000 55.1. Use a ﬂow computation to check if the desired rounding is possible. where row and column sums are integers. [10 Points] Prove that the rounding we are looking for in (a) and (b) always exists. Use a ﬂow computation to check if the desired rounding is possible.000 4.

where V = L ∪ R. [5 Points] For a given number K.17 Perfect Matching [20 Points] 1. [2 Points] Conclude that M-F-B-S can be implemented so that it runs in O(E 2 lg C) time. [3 Points] Argue that M-F-B-S returns a maximum ﬂow.v)∈E c(u. 35 . 6. M-F-B-S(G. Every d-regular bipartite graph has |L| = |R|. show that an augmenting path of capacity at least K can be found in O(E) time. 4. 5. E). where |L| = |R|. t) 1 C ← max(u. deﬁne the neighborhood of X as N(X) = y ∈ V (x. if such a path exists. y) ∈ E for some x ∈ X . Prove that every d-regular bipartite graph has a matching of cardinality |L| by arguing that a minimum cut of the corresponding ﬂow network has capacity |L|. v) 2 initialize ﬂow f to 0 3 K ← 2 lg C 4 while K ≥ 1 do { 5 while (there exists an augmenting path p of capacity at least K) do { 6 augment ﬂow f along p } 7 K ← K/2 } 8 return f 3. Let G = (V.1. 2. [4 Points] Show that the capacity of a minimum cut of the residual graph G f is at most 2K|E| each time line 4 is executed. that is. For any X ⊆ V. E) be an undirected bipartite graph with vertex partition V = L ∪ R. [10 Points] A perfect matching is a matching in which every vertex is matched. the set of vertices adjacent to some member of X. s. Prove Hall’s theorem: there exists a perfect matching in G if and only if |A| ≤ |N(A)| for every subset A ⊆ L. [10 Points] We say that a bipartite graph G = (V. 3. The following modiﬁcation of F-F-M can be used to compute a maximum ﬂow in G.2. [4 Points] Argue that the inner while loop of lines 5-6 is executed O(E) times for each value of K. is d-regular if every vertex v ∈ V has degree exactly d.

consider how both δ(s. v) ∈ E if and only (v. 3. The children have no problem with their paths crossing at a corner. E) can always be found by a sequence of at most |E| augmenting paths. dislike each other. show that the maximum number of independent 1’s equals the minimum number of lines in the cover. where n is the number of vertices in G. 3. [10 Points] Suppose that a ﬂow network G = (V. The problem is so severe that not only they refuse to walk to school together.1. The scalar ﬂow product. Show that the Edmonds-Karp algorithm terminates after at most |V||E|/4 iterations.21 Scalar Flow Product [10 Points] Let f be a ﬂow in a network. denoted by α f . show that the number of distinct min-cuts in a multigraph G cannot exceed n(n − 1)/2. Given a multigraph G(V. For any α ≥ 1.18 Number of augmneting paths 1. [Hint: Determine the paths after ﬁnding the maximum ﬂow.20 Independence Matrix [10 Points] Consider a 0 − 1 matrix H with n1 rows and n2 columns.v) is critical. That is. unfortunately. 4.22 Go to school! Professor Adam has two children who. and let α be a real number.19 Minimum Cut Festival [20 Points] 1.1. u) ∈ E.1. show that an edge can be selected uniform at random from E in time O(n). Using the analysis of the randomized min-cut algorithm. We say that a set of 1’s in the matrix H is independent if no two of them appear in the same line. show that if f1 and f2 are ﬂows. We also say that a set of lines in the matrix is a cover of H if they include (i.] 3. deﬁne an α approximate cut in a multigraph G as any cut whose cardinality is within a multiplicative factor α of the cardinality of the min-cut in G. 3. 3. [10 Points] Show that a maximum ﬂow in a network G = (V. that is. “cover”) all the 1’s in the matrix. (u. t) change between times at which (u. E). 2. but beyond that he is not sure if it is going to be 36 .e. then so is α f1 + (1 − α) f2 for all α in the range 0 ≤ α ≤ 1. v). u) and δ(v. Determine the probability that a single iteration of the randomized algorithm for cuts will produce as output some α-approximate cut in G. E) has symmetric edges.. Fortunately both the professor’s house and the school are on corners.v). Using the max-ﬂow min-cut theorem on an appropriately deﬁned network. v) = α · f (u.] 2.1. but in fact each one refuses to walk on any block that the other child has stepped on that day. is a function from V × V to IR deﬁned by (α f )(u. given access to a source of random bits. Prove that the ﬂows in a network form a convex set.1.3. [Hint: For any edge (u. We refer to a row or a column of the matrix H as a line. Formulate and prove a similar result of the number of α -approximate cuts in a multigraph G.

but diﬀerent from. 37 . let M be a matching in G. The general structure of our algorithm is the following: H-K(G) 1 M←∅ 2 repeat 3 let P ← {P1 . Pk } be a maximum set of vertex-disjoint shortest augmenting paths with respect to M 4 M ← M ⊕ (P1 ∪ P2 ∪ ... that is. and suppose that P is a shortest augmenting path with respect to M . [4 Points] Given two matchings M and M ∗ in G. 3.. We say that a simple path P in G is an augmenting path with respect to M if it starts at an unmatched vertex in L. bipartite graph G = (V.. P2 . [4 Points] Show that if M is a matching and P is an augmenting path with respect to M. and its edges belong alternatively to M and E − M. we describe a faster algorithm.. Argue that edges in each such simple path or cycle belong alternatively to M or M ∗ . 2. due to Hopcroft and Karp.. Conclude that G is a disjoint union of simple paths or cycles. then the symmetric diﬀerence M ⊕ P is a matching and |M ⊕ P| = |M| + 1. for ﬁnding a maximum √ matching in a bipartite graph. then the symmetric diﬀerence M ⊕ (P1 ∪ P2 ∪ . Prove that if |M| ≤ |M ∗ |. the elements that are in exactly one of the two sets. the number of iterations in the repeat loop) and to describe an implementation of line 3. . the symmetric diﬀerence A ⊕ B is deﬁned as (A − B) ∪ (B − A). and let P1 .. Let l be the length of a shortest augmenting path with respect to a matching M. Let M = M ⊕ (P1 ∪ P2 ∪ . Show that if P1 . 1. 3.. (This deﬁnition of an augmenting path is related to. E). Pk be a maximum set of vertex-disjoint augmenting paths of length l with respect to M.possible to send both of his children to the same school.. A shortest augmenting path with respect to a matching M is an augmenting path with a minimum number of edges. Given an undirected. we treat a path as a sequence of edges. The algorithm runs in O( V E) time. P2 . ∪ Pk ).. an augmenting path in a ﬂow network..23 The Hopcroft-Karp Bipartite Matching Algorithm [20 Points] In this problem. then M ⊕ M ∗ contains at least |M ∗ | − |M| vertex-disjoint augmenting paths with respect to M. Pk are vertexdisjoint augmenting paths with respect to M. The professor has a map of his town. [2 Points] Show that if P is vertex-disjoint from P1 . ends at an unmatched vertex in R.. Pk . . ∪ Pk ) is a matching with cardinality |M| + k. P2 . show that every vertex in the graph G = (V.. ∪ Pk ) 5 until P = ∅ 6 return M The remainder of this problem asks you to analyze the number of iterations in the algorithm (that is.. where V = L ∪ R and all edges have exactly one endpoint in L.. then P has more than l edges. Show how to formulate the problem of determining if both his children can go to the same school as a maximum-ﬂow problem. .) In this problem. rather than as a sequence of vertices. . . M ⊕ M ∗ ) has degree at most 2.1.. . Given two sets A and B. P2 .

.. [Hint: By √ how much can M grow after iteration number V?] 7. 38 . ∪ Pk ) ⊕ P and that |A| ≥ (k + 1)l.. [2 Points] Prove that if a shortest augmenting path for M has length l. Pk for a given matching M.. the size of the maximum matching is at most |M| + |V|/l. Let A be the set of edges (M ⊕ M ) ⊕ P. √ 6....4. [4 Points] Give an algorithm that runs in O(E) time to ﬁnd a maximum set of vertex-disjoint shortest augmenting paths P1 . Conclude that the total running time of √ H-K is O( V E). 5.. . P2 . Show that A = (P1 ∪ P2 ∪ . Conclude that P has more than l edges. [2 Points] Show that the number of repeat loop iterations in the algorithm is at most 2 V. P2 . . [2 Points] Now suppose P is not vertex-disjoint from P1 . Pk .

25 MINIMUM SET COVER. 17 Subgraph Isomorphism. 20 Partition. 24 MULTIPROCESSOR SCHEDULING. 17. 21 SUBGRAPH ISOMORPHISM. 22. 22. 24 VERTEX COVER. 17 Subset Sum. 27 reduction. 19. 23 Max Degree Spanning Tree. 17 Subset Sum. 20 PARTITION. 18 MAX SAT. 18. 25 BIN PACKING. 19 EXACT-COVER-BY-3-SETS. 19 39 . 21. 19. 22 LARGEST COMMON SUBGRAPH. 18. 19 TILING. 22. 18 PRIMALITY. 19. 26 3SAT. 23 2SAT. 25 Not-3SAT. 19 MAX SAT. 17 Not-3SAT. 24 HITTING SET. 22. 21. 25 Hamiltonian Path.Index Problem k-CENTER. 21 KNAPSACK. 18 SUBSET SUM. 21 Minimum Test Collection. 20 3COLORABLE. 21 Subgraph Isomorphism.