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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

whose nodes are labeled by letters of the alphabet.Prove that any such chessboard can be tiled without gaps or overlaps by L-shapes consisting of 3 squares each. More exact solutions are better. 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 . but you should do them anyway just for practice. vn }. but you should do them anyway just for practice. 1. 6. . . Professor George O’Jungle has a favorite 26-node binary tree. 7 .2 Recurrences 1. Assume reasonable but nontrivial base cases if none are supplied. You do not need to turn in proofs (in fact. T 2 and T 3 be three trees defined over the set of vertices {v1 . 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. Assume reasonable but nontrivial base cases if none are supplied. R [20 Points] Solve the following recurrences. T 2 and T 3 ). State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n). . You do not need to turn in proofs (in fact. State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n). (b) [5 Points] Describe an efficient algorithm for computing this coloring. . please don’t turn in proofs). √ (a) [2 Points] A(n) = A n/3 + log n + n (b) [2 Points] B(n) = min 3 + B(k) + B(n − k) . What is the running time of your algorithm? 7. C [10 Points] (a) [5 Points] Let T 1 . and give the inorder sequence of nodes. More exact solutions are better. R II [20 Points] Solve the following recurrences. 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. please don’t turn in proofs).

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 . where F(0) = F(1) = 1 4. You do not need to turn in proofs (in fact. simplify your answers as much as possible. please don’t turn in proofs).] (i) I(n) = (n − 1)(I(n − 1) + I(n − 2)). but you should do them anyway just for practice. (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) . Significant partial credit will be given for answers in the form Θ( f (n)) for some recognizable function f (n). [10 Points] Evaluate the following summations. Assume reasonable but nontrivial base cases if none are supplied. [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. where F(1) = 1 and F(2) = 2. R III [20 Points] Solve the following recurrences. 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.(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) . State tight asymptotic bounds for each function in the form Θ( f (n)) for some recognizable function f (n).

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

. 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. limn→∞ 0).5 cos n + 2 lg∗ 22 n n lg(lg n) 2lg ∗ n2. n4. O  . S  .5 − (n − 1)5. For example. 3. You do not need to turn in proofs (in fact. 10 = Θ 22 lg lg n . lg n lg lg n (b) Prove or disprove: 2 (c) Prove or disprove: 22 =Θ2 lg n . indicating ties if there are any. 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)). fi (n) = o( n) (namely. S  II [20 Points] Sort the following 25 functions from asymptotically smallest to asymptotically largest. n . n3 could be sorted either as n 2 2 n n 2 ≡ n2 n3 . please don’t turn in proofs). n3 could be sorted either as n n2 ≡ n n3 or as 2 2 n 2 n n3 . fi (n) √ n = Prove or disprove: g(n) = o(n3/2 ). For example. n5. [10 Points] √ (a) Let fi (n) be a sequence of functions.] 2. n. write f (n) g(n) to mean f (n) = o(g(n)) and f (n) ≡ g(n) to mean f (n) = Θ(g(n)).do them anyway just for practice.5 − (n − 1)4. n.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. Let g(n) = n i=1 fi (n). but you should do them anyway just for practice. n .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. the functions n2 .5 cos n + 2 lg∗ 22 2n n lg(lg∗ n) 2lg n n3/(2 lg n) nlg lg n n2. the functions n2 . (b) If f1 (n) = O(g1 (n)) and f2 (n) = O(g2 (n)). such that for every i. (a) Prove that 2 lg n + lg n = Θ(n2 ). [Hint: When considering two functions f (·) and g(·) it is sometime useful to 2 ≡ n consider the functions ln f (·) and ln g(·).

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

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

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

a failed experiment by Fred and George Weasley filled almost all of Hogwarts with sticky brown goo. 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. so it knew how to group the students as quickly as possible. Ravenclaw. Right? 14 . The student puts the Hat on their head. and the Hat tells the student which house they will join. b) if a is odd and b is even return WE(a. What method did the Sorting Hat use? (a) More formally. Every year. b) : if b = 0 return a else return FE(b. but there was too little room in the hallway for more than one student to move at a time. where there was so little room to move that the students had to stand in a long line. a) else if b = 0 return a else return SE(b. Hufflepuff. where each item has one of four possible values. As a result. new students are sorted into one of four houses (Gryffindor. After everyone learned what house they were in. b) : if b > a return SE(b. This year. b) : if b = 0 return a if a = 0 return b if a is even and b is even return 2∗WE(a/2. a − b) FastEuclid(a. the Sorting had to take place in the basement hallways. you know what the phrase ‘describe an algorithm’ means. upon their arrival at Hogwarts School of Witchcraft and Wizardry. a) else return WE(a − b. b/2) if a is even and b is odd return WE(a/2. T    . the Sorting Hat took CS Course many years ago.SlowEuclid(a. possibly with a pointer to some additional data. a mod b) WeirdEuclid(a. the students tried to group together by house. b) 4. or Slytherin) by the Hogwarts Sorting Hat. Fortunately. Describe an algorithmx that rearranges the items into four clusters in O(n) time using only O(1) extra space. mere moments before the annual Sorting. b/2) if b > a return WE(b − a. you are given an array of n items.

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

and Fn = Fn−1 + Fn−2 for all n ≥ 2. Once every second. The rubber band stretches uniformly. F1 = 1. by showing that the two sides of the equation count exactly the same thing in two different ways. Prove the following identities for all positive integers n and m. and then you make the rubber band one inch longer by pulling on the right end. on the number of steps in the game till it terminates in the general case. (a) Prove the following identity by induction: 2n = n n k=0 n n . then Fn is an integer multiple of Fm . t=0 t=1 t=2 Every second. so stretching the rubber band also pulls the ant to the right. k n−k (b) Give a non-inductive combinatorial proof of the same identity. Miscellaneous An ant is walking along a rubber band. the ant walks one inch to the right. (a) How far has the ant moved after t seconds. the rubber band is n + t inches long. and then the rubber band is stretched an inch longer. S  . as a function of n and t? Set up a recurrence and (for full credit) give an exact closed-form solution. 16 . There is a correct one-sentence proof. (a) Fn is even if and only if n is divisible by 3.(d) [5 Points] Provide a bound. The initial length of the rubber band is n inches. 2. [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.8 1. so after t seconds. starting at the left end. 3. as tight as possible. the ant walks an inch. Recall the standard recursive definition of the Fibonacci numbers: F0 = 0. (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. 1. give an answer of the form f (n) + Θ(1) for some explicit function f (n).

finding and outputting the smallest possible set C ). I fear Greeks even when they bring gifts. 2.” and a positive integer J ≤ |C|. a test c that “distinguishes” between ai and a j )? Show how to use this black box. and left you with two black boxes. E1 ) and H = (V2 . for every pair ai . there is some test c ∈ C for which ai . timeo Danaos et dona ferentes”. E2 ).” a collection C of subsets of A. came to visit you on labor day. a j of possible diagnoses from A.e.Chapter 2 Exercises . |e| = |E2 |. that is. [10 Points] The second box was a black box for solving S I. v} ∈ E2 if and only if { f (u). 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. which means literally “Whatever it is. a j ∩ c = 1 (that is.1 2. and you have to output f ) in polynomial time. [10 Points] The first black box. a subset V ⊆ V1 and a subset E ⊆ E1 such that |V| = |V2 |.”.Exercises Sariel Har-Peled February 23.) The  faun.. Question: Does G contain a subgraph isomorphic to H. representing binary “tests. how to solve in polynomial time the optimization version of this problem (i. Problem: S I Instance: Two graphs.NP Completeness 473G .02 2. to compute the subgraph isomorphism (i.Algorithms . 1. 2006 Version: 1. and there exists a one-to-one function f : V2 → V satisfying {u. was a black box that can solves the following decision problem in polynomial time: Problem: M T C Instance: A finite set A of “possible diagnoses. 17 .1. the brother of the P satyr. G = (V1 .e.. Question: Is there a subcollection C ⊆ C with |C | ≤ J such that. you are given G and H.

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

t: . 2. that is. [5 Points] Problem: HITTING SET Instance: A collection C of subsets of a set S . that is. show that EXACT-COVER-BY-4-SETS is also NP-C.4 EXACT-COVER-BY-4-SETS The EXACT-COVER-BY-3-SETS problem is defines as the following: given a finite set X with |X| = 3q and a collection C of 3-element subsets of X. Why this does not imply that P = NP? 2. one can try to solve it by backtracking. Question: Is there a way of placing the rectangles of RECT S inside R. 19 .3. where M = max s∈S s.1 Solving special subcases of NP-C problems in polynomial time Subset Sum Problem: S S Instance: S . and M. a positive integer K.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.3 2. provide an algorithm that solves it in polynomial time in n.an integer number Question: Is there a subset X ⊆ S such that x=t? x∈X Given an instance of S S.2.set of positive integers. Question: Does S contain a hitting set for C of size K or less. 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.2 2SAT Given an instance of 2SAT (this is a problem similar to 3SAT where every clause has at most two variables). so that no pair of the rectangles intersect. a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C.2.3. and all the rectangles have their edges parallel of the edges of R? 4. 2. does C contain an exact cover for X.Problem: TILING Instance: Finite set RECT S of rectangles and a rectangle R in the plane.

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

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

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

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

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

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

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

For NP.22 DEGREE-4-PLANAR-3-COLOR Using the previous result. is n prime?) is in NP ∩ -NP. Figure 2.1: Gadget for PLANAR-3-COLOR.25 Polynomial time Hmiltonian path 1. and the ‘gadget’ in figure 2. 27 . Explain why the results in previous questions do not contradict the facts that both HAM-CYCLE and HAM-PATH are NP-C problems. 2.2: Gadget for DEGREE-4-PLANAR-3-COLOR.23 Primality and Complexity Prove that PRIMALITY (Given n. Prove that if G is an undirected bipartite graph with an odd number of vertices. and that this check takes poly time.3.3. 2. consider a certificate involving primitive roots and recursively their primitive roots. Show that the hamiltonian-path problem can be solved in polynomial time on directed acyclic graphs by giving an efficient algorithm for the problem. 2.22. Show that knowing this tree of primitive roots can be checked to be correct and used to show that n is prime. 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. 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. Give a polynomial time algorithm algorithm for finding a hamiltonian cycle in an undirected bipartite graph or establishing that it does not exist. 2. Hint: -NP is easy (what’s a certificate for showing that a number is composite?).3.3. 2. then G is nonhamiltonian. but that a polynomial number of calls to polynomial-time subroutines may result in an exponential-time algorithm.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.3.Figure 2. 3.

3. Give an efficient probabilistic algorithm to decide this.26 GRAPH-ISOMORPHISM Consider the problem of deciding whether one graph is isomorphic to another.2.3. Give a dynamic programming algorithm to decide this. 28 . Give a brute force algorithm to decide this. 2. give a poly time algorithm for it. or prove that neither case occurs. Either prove that this problem is NP-C. 1. 4.

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

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

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

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

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

000 4.000 total 26.000 We will assume here for simplicity that our data is such that all row and column sums are integers.000 24.000 grown-up women 12. 3.1.3. 1.019 2.000 children 1.000 55.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. a good rounding for our table data would be as follows.000 3. Use a flow computation to check if the desired rounding is possible. E) can be determined by running a maximum-flow algorithm on at most |V| flow networks. 3. sink t. The Census Rounding Problem is to round all data to integers without changing any row or column sum.983 10. Examples of such statistics would look like the following table.000 7. and the edge connectivity of a cyclic chain of vertices is 2. Use a flow computation to check if the desired rounding is possible. [10 Points] Prove that the rounding we are looking for in (a) and (b) always exists.000 10. where row and column sums are integers. each having O(V) vertices and O(E) edges.000 55. They collect statistics and publish the collected data in a book. So you have a matrix of fractional numbers between 0 and 1. and you want to round each fractional number α to either α or α .000 27.936 4. [2 Points] Argue that a minimum cut of G has capacity at most C|E|. 34 .v)∈E c(u. [5 Points] Consider the Census Rounding Problem as defined above.000 0.000 22. Show how the edge connectivity of an undirected graph G = (V. v) on each edge (u.145 27. v) ∈ E.083 2. Country A B C Total grown-up men 11. Country A B C Total grown-up men 11.000 1.872 3. 2. Each fractional number can be rounded either up or down.000 7. and an integer capacity c(u. [5 Points] Consider first the special case when all data are between 0 and 1. the edge connectivity of a tree is 1.045 0.000 10.000 total 26.1. For example.000 grown-up women 13.000 22.000 2. E) be a flow network with source s. 3. For example.14 Census Rounding [20 Points] You are consulting for an environmental statistics firm.000 4.919 24. v).1.16 Maximum Flow By Scaling [20 Points] Let G = (V.000 children 1. Let C = max(u. 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. The statistics are about populations of different regions in the world and are recorded in multiples of one million.998 9.

3. 35 .17 Perfect Matching [20 Points] 1. [10 Points] We say that a bipartite graph G = (V. Prove Hall’s theorem: there exists a perfect matching in G if and only if |A| ≤ |N(A)| for every subset A ⊆ L. 6. [2 Points] Conclude that M-F-B-S can be implemented so that it runs in O(E 2 lg C) time. [4 Points] Argue that the inner while loop of lines 5-6 is executed O(E) times for each value of K. E) be an undirected bipartite graph with vertex partition V = L ∪ R. The following modification of F-F-M can be used to compute a maximum flow in G. [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. Let G = (V. For any X ⊆ V. 4. is d-regular if every vertex v ∈ V has degree exactly d. define the neighborhood of X as N(X) = y ∈ V (x. M-F-B-S(G. the set of vertices adjacent to some member of X. [5 Points] For a given number K. E). 2. if such a path exists. t) 1 C ← max(u. y) ∈ E for some x ∈ X . [3 Points] Argue that M-F-B-S returns a maximum flow. 5. [10 Points] A perfect matching is a matching in which every vertex is matched. show that an augmenting path of capacity at least K can be found in O(E) time. s.v)∈E c(u. Prove that every d-regular bipartite graph has a matching of cardinality |L| by arguing that a minimum cut of the corresponding flow network has capacity |L|. where |L| = |R|. where V = L ∪ R.2. that is. Every d-regular bipartite graph has |L| = |R|.1. v) 2 initialize flow 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 flow f along p } 7 K ← K/2 } 8 return f 3.

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

and let P1 . Pk be a maximum set of vertex-disjoint augmenting paths of length l with respect to M. the number of iterations in the repeat loop) and to describe an implementation of line 3. then M ⊕ M ∗ contains at least |M ∗ | − |M| vertex-disjoint augmenting paths with respect to M. let M be a matching in G. Let l be the length of a shortest augmenting path with respect to a matching M. Show how to formulate the problem of determining if both his children can go to the same school as a maximum-flow problem. then the symmetric difference M ⊕ P is a matching and |M ⊕ P| = |M| + 1.. Pk } be a maximum set of vertex-disjoint shortest augmenting paths with respect to M 4 M ← M ⊕ (P1 ∪ P2 ∪ . E). and suppose that P is a shortest augmenting path with respect to M . then P has more than l edges. M ⊕ M ∗ ) has degree at most 2. rather than as a sequence of vertices.) In this problem. due to Hopcroft and Karp. .. where V = L ∪ R and all edges have exactly one endpoint in L... The professor has a map of his town... we treat a path as a sequence of edges.. . the elements that are in exactly one of the two sets. Let M = M ⊕ (P1 ∪ P2 ∪ . and its edges belong alternatively to M and E − M. Given an undirected. ∪ 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.. [4 Points] Show that if M is a matching and P is an augmenting path with respect to M. [4 Points] Given two matchings M and M ∗ in G. Pk . .. .. 1. Prove that if |M| ≤ |M ∗ |. P2 .. 3. [2 Points] Show that if P is vertex-disjoint from P1 ..23 The Hopcroft-Karp Bipartite Matching Algorithm [20 Points] In this problem. we describe a faster algorithm. 37 . but different from. The general structure of our algorithm is the following: H-K(G) 1 M←∅ 2 repeat 3 let P ← {P1 . the symmetric difference A ⊕ B is defined as (A − B) ∪ (B − A).1. P2 .. an augmenting path in a flow network. for finding a maximum √ matching in a bipartite graph. The algorithm runs in O( V E) time.possible to send both of his children to the same school. Pk are vertexdisjoint augmenting paths with respect to M... ends at an unmatched vertex in R. . that is. ∪ Pk ). (This definition of an augmenting path is related to. Conclude that G is a disjoint union of simple paths or cycles. 3. Given two sets A and B. 2. A shortest augmenting path with respect to a matching M is an augmenting path with a minimum number of edges. then the symmetric difference M ⊕ (P1 ∪ P2 ∪ . Show that if P1 . bipartite graph G = (V. . P2 .. P2 . show that every vertex in the graph G = (V. Argue that edges in each such simple path or cycle belong alternatively to M or M ∗ . ∪ Pk ) is a matching with cardinality |M| + k. 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.

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

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

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.