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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

and βn = (βn−2 ⇔ βn−1 ) for all n ≥ 2. 2 × 1 × 2. 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. Counting (a) A domino is a 2 × 1 or 1 × 2 rectangle. [Hint: What is γ5 ?] (d) Suppose δ0 = p. α1 = q.] 1.3 1. 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. A 2 × 10 rectangle ﬁlled with ten dominos. please don’t turn in proofs). Each proof can be just a few sentences long. indicating ties if there are any. (b) A slab is a three-dimensional box with dimensions 1 × 2 × 2. Simplify αn as much as possible. [Hint: What is β5 ?] (c) Suppose γ0 = p. 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. [Hint: There is only one such function. S [20 Points] Sort the following 25 functions from asymptotically smallest to asymptotically largest. and γn = (γn−2 ⇒ γn−1 ) for all n ≥ 2. but you should 9 . β1 = q. You do not need to turn in proofs (in fact. (a) Suppose α0 = p. Simplify γn as much as possible. Simplify βn as much as possible. In each case. [Hint: What is α5 ?] (b) Suppose β0 = p. 1. and αn = (αn−2 ∧ αn−1 ) for all n ≥ 2.4 O notation and friends 1. and a 2 × 2 × 10 box ﬁlled with ten slabs. This problem asks you to simplify some recursively deﬁned boolean formulas as much as possible. where is some boolean function with two arguments. 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. but it must be a proof. δ1 = q. or 2 × 2 × 1.

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

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

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

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

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

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

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

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

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

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

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

7 NP-Completeness Collection [20 Points] Prove that the following problems are NP-Complete. 21 . Question: Are there k sets S 1 . a subset S ⊆ S with |S | ≤ K and such that S contains at least one element from each subset in C. . Either prove that it is NP-Hard to ﬁnd the largest independent set in G.e.) Problem: M D S T4.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. Instance: Graph G = (V. Assume that you are given a numbering π : V → {1. Instance: A collection C of subsets of a set S . 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. Problem: MINIMUM SET COVER 1. E) Question: Does G contains a Hamiltonian path? (Namely a path that visits all vertices of G.2. 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. 2.3.8 Independence [10 Points] Let G = (V. every vertex have a unique number).3. we have |π(i) − π( j)| ≤ 20. an integer B. . . or provide a polynomial time algorithm. . 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. S k in C such that S ⊆ ∪k S i ? i=1 Problem: HITTING SET 2. such that for any edge i j ∈ E. that is. .. . Instance: Graph G = (V. Problem: H P 3. . Question: Does S contain a hitting set for C of size K or less. . Instance: Collection C of subsets of a ﬁnite set S and an integer k. a positive integer K.3. E) be an undirected graph over n vertices.

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

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

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

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

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

For NP.3. is n prime?) is in NP ∩ -NP. 2. 2. Hint: -NP is easy (what’s a certiﬁcate for showing that a number is composite?). 27 .3. and the ‘gadget’ in ﬁgure 2. 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.22 DEGREE-4-PLANAR-3-COLOR Using the previous result. 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. 2. 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. consider a certiﬁcate involving primitive roots and recursively their primitive roots.23 Primality and Complexity Prove that PRIMALITY (Given n. 2. Show that knowing this tree of primitive roots can be checked to be correct and used to show that n is prime. then G is nonhamiltonian.2: Gadget for DEGREE-4-PLANAR-3-COLOR. Prove that if G is an undirected bipartite graph with an odd number of vertices.1: Gadget for PLANAR-3-COLOR.3.3. Give a polynomial time algorithm algorithm for ﬁnding a hamiltonian cycle in an undirected bipartite graph or establishing that it does not exist.22. Figure 2.Figure 2. and that this check takes poly time. 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. Explain why the results in previous questions do not contradict the facts that both HAM-CYCLE and HAM-PATH are NP-C problems. 2.25 Polynomial time Hmiltonian path 1. 3.3.

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

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

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

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

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

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

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

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

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

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

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

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