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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful