COMP 482: Design and Analysis of Algorithms Spring 2013 Lecture 20 Prof. Swarat Chaudhuri Recap: Project Selection can be positive or negative Projects with prerequisites. Set P of possible projects. Project v has associated revenue pv. – some projects generate money: create interactive e-commerce interface, redesign web page – others cost money: upgrade computers, get site license Set of prerequisites E. If (v, w) E, can't do project v and unless also do project w. A subset of projects A P is feasible if the prerequisite of every project in A also belongs to A. Project selection. Choose a feasible subset of projects to maximize revenue. 2 Recap: Project Selection: Prerequisite Graph Prerequisite graph. Include an edge from v to w if can't do v without also doing w. {v, w, x} is feasible subset of projects. {v, x} is infeasible subset of projects. w w v x feasible v x infeasible 3 7.10 Image Segmentation Image Segmentation Image segmentation. Central problem in image processing. Divide image into coherent regions. Ex: Three people standing in front of complex background scene. Identify each person as a coherent object. 5 Image Segmentation Foreground / background segmentation. Label each pixel in picture as belonging to foreground or background. V = set of pixels, E = pairs of neighboring pixels. ai 0 is likelihood pixel i in foreground. bi 0 is likelihood pixel i in background. pij 0 is separation penalty for labeling one of i and j as foreground, and the other as background. Goals. Accuracy: if ai > bi in isolation, prefer to label i in foreground. Smoothness: if many neighbors of i are labeled foreground, we should be inclined to label i as foreground. Find partition (A, B) that maximizes: foreground background 6 Image Segmentation Properties of the problem. Maximization. No source or sink. Undirected graph. Turn into minimization problem. Maximizing is equivalent to minimizing or alternatively 7 Q1 …Can you solve this problem using max flow or min-cut? 8 Image Segmentation Formulate as min cut problem. G' = (V', E'). Add source to correspond to foreground; add sink to correspond to background Use two anti-parallel edges instead of undirected edge. pij pij pij aj s i pij j t bi G' 9 Image Segmentation Consider min cut (A, B) in G'. A = foreground. cap(A, B) = å a j + å bi + jÎB iÎ A å pij if i and j on different sides, pij counted exactly once (i, j) Î E iÎ A, j Î B Precisely the quantity we want to minimize. aj i s A pij j t bi G' 10 7.12 Baseball Elimination Baseball Elimination Against = rij Team i Wins wi Losses li To play ri Atl Phi NY Mon Atlanta 83 71 8 - 1 6 1 Philly 80 79 3 1 - 0 2 New York 78 78 6 6 0 - 0 Montreal 77 82 3 1 2 0 - Which teams have a chance of finishing the season with most wins? Montreal eliminated since it can finish with at most 80 wins, but Atlanta already has 83. wi + ri < wj team i eliminated. Only reason sports writers appear to be aware of. Sufficient, but not necessary! 12 Baseball Elimination Against = rij Team i Wins wi Losses li To play ri Atl Phi NY Mon Atlanta 83 71 8 - 1 6 1 Philly 80 79 3 1 - 0 2 New York 78 78 6 6 0 - 0 Montreal 77 82 3 1 2 0 - Which teams have a chance of finishing the season with most wins? Philly can win 83, but still eliminated . . . If Atlanta loses a game, then some other team wins one. Remark. Answer depends not just on how many games already won and left to play, but also on whom they're against. 13 Baseball Elimination Baseball elimination problem. Set of teams S. Distinguished team s S. Team x has won wx games already. Teams x and y play each other rxy additional times. Is there any outcome of the remaining games in which team s finishes with the most (or tied for the most) wins? 14 Baseball Elimination: Max Flow Formulation Can team 3 finish with most wins? Assume team 3 wins all remaining games w3 + r3 wins. Divvy remaining games so that all teams have w3 + r3 wins. 1-2 1 team 4 can still win this many more games 1-4 2 games left 1-5 s r24 = 7 2-4 4 w3 + r3 - w4 t 2-5 5 game nodes 4-5 team nodes 15 Baseball Elimination: Max Flow Formulation Theorem. Team 3 is not eliminated iff max flow saturates all edges leaving source. Integrality theorem each remaining game between x and y added to number of wins for team x or team y. Capacity on (x, t) edges ensure no team wins too many games. 1-2 1 team 4 can still win this many more games 1-4 2 games left 1-5 s r24 = 7 2-4 4 w3 + r3 - w4 t 2-5 5 game nodes 4-5 team nodes 16 NP-completeness and computational intractability 18 Algorithm Design Patterns and Anti-Patterns Algorithm design patterns. Greed. Divide-and-conquer. Dynamic programming. Duality. Reductions. Local search. Randomization. Ex. O(n log n) interval scheduling. O(n log n) FFT. O(n2) edit distance. O(n3) bipartite matching. Algorithm design anti-patterns. NP-completeness. PSPACE-completeness. Undecidability. O(nk) algorithm unlikely. O(nk) certification algorithm unlikely. No algorithm possible. 19 8.1 Polynomial-Time Reductions Classify Problems According to Computational Requirements Q. Which problems will we be able to solve in practice? A working definition. [Cobham 1964, Edmonds 1965, Rabin 1966] Those with polynomial-time algorithms. Yes Probably no Shortest path Longest path Matching 3D-matching Min cut Max cut 2-SAT 3-SAT Planar 4-color Planar 3-color Bipartite vertex cover Vertex cover Primality testing Factoring 21 Classify Problems Desiderata. Classify problems according to those that can be solved in polynomial-time and those that cannot. Provably requires exponential-time. Given a Turing machine, does it halt in at most k steps? Given a board position in an n-by-n generalization of chess, can black guarantee a win? Frustrating news. Huge number of fundamental problems have defied classification for decades. This chapter. Show that these fundamental problems are "computationally equivalent" and appear to be different manifestations of one really hard problem. 22 Polynomial-Time Reduction Desiderata'. Suppose we could solve X in polynomial-time. What else could we solve in polynomial time? don't confuse with reduces from Reduction. Problem X polynomial reduces to problem Y if arbitrary instances of problem X can be solved using: Polynomial number of standard computational steps, plus Polynomial number of calls to oracle that solves problem Y. Notation. X P Y. computational model supplemented by special piece of hardware that solves instances of Y in a single step Remarks. We pay for time to write down instances sent to black box instances of Y must be of polynomial size. Note: Cook reducibility. in contrast to Karp reductions 23 Polynomial-Time Reduction Purpose. Classify problems according to relative difficulty. Design algorithms. If X P Y and Y can be solved in polynomial-time, then X can also be solved in polynomial time. Establish intractability. If X P Y and X cannot be solved in polynomial-time, then Y cannot be solved in polynomial time. Establish equivalence. If X P Y and Y P X, we use notation X P Y. up to cost of reduction 24 Reduction By Simple Equivalence Basic reduction strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction by encoding with gadgets. Independent Set INDEPENDENT SET: Given a graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and for each edge at most one of its endpoints is in S? Ex. Is there an independent set of size 6? Yes. Ex. Is there an independent set of size 7? No. independent set 26 Vertex Cover VERTEX COVER: Given a graph G = (V, E) and an integer k, is there a subset of vertices S V such that |S| k, and for each edge, at least one of its endpoints is in S? Ex. Is there a vertex cover of size 4? Yes. Ex. Is there a vertex cover of size 3? No. vertex cover 27 Vertex Cover and Independent Set Claim. VERTEX-COVER P INDEPENDENT-SET. Pf. We show S is an independent set iff V S is a vertex cover. independent set vertex cover 28 Vertex Cover and Independent Set Claim. VERTEX-COVER P INDEPENDENT-SET. Pf. We show S is an independent set iff V S is a vertex cover. Let S be any independent set. Consider an arbitrary edge (u, v). S independent u S or v S u V S or v V S. Thus, V S covers (u, v). Let V S be any vertex cover. Consider two nodes u S and v S. Observe that (u, v) E since V S is a vertex cover. Thus, no two nodes in S are joined by an edge S independent set. ▪ 29 Reduction from Special Case to General Case Basic reduction strategies. Reduction by simple equivalence. Reduction from special case to general case. Reduction by encoding with gadgets. Set Cover SET COVER: Given a set U of elements, a collection S1, S2, . . . , Sm of subsets of U, and an integer k, does there exist a collection of k of these sets whose union is equal to U? Sample application. m available pieces of software. Set U of n capabilities that we would like our system to have. The ith piece of software provides the set Si U of capabilities. Goal: achieve all n capabilities using fewest pieces of software. Ex: U = { 1, 2, 3, 4, 5, 6, 7 } k=2 S1 = {3, 7} S4 = {2, 4} S2 = {3, 4, 5, 6} S5 = {5} S3 = {1} S6 = {1, 2, 6, 7} 31 Vertex Cover Reduces to Set Cover Claim. VERTEX-COVER P SET-COVER. Pf. Given a VERTEX-COVER instance G = (V, E), k, we construct a set cover instance whose size equals the size of the vertex cover instance. Construction. Create SET-COVER instance: – k = k, U = E, Sv = {e E : e incident to v } Set-cover of size k iff vertex cover of size k. ▪ VERTEX COVER a e7 e2 e3 e4 e6 f k=2 SET COVER b c e5 e1 e U = { 1, 2, 3, 4, 5, 6, 7 } k=2 Sa = {3, 7} Sb = {2, 4} Sc = {3, 4, 5, 6} Sd = {5} Se = {1} Sf= {1, 2, 6, 7} d 32 Q2: Hitting set HITTING SET: Given a set U of elements, a collection S1, S2, . . . , Sm of subsets of U, and an integer k, does there exist a subset of U of size k such that U overlaps with each of the sets S1, S2, . . . , Sm? Show that SET COVER polynomial reduces to HITTING SET. 33