Approximation Algorithms for NP-hard Combinatorial Problems Local Search, Greedy and Partitioning Magnús M. Halldórsson Reykjavik University www.ru.is/~mmh/ewscs13/ EWSCS, 5 March 2013 Today‘s lecture • Local search – Independent set (in bounded-degree graphs) – Max Cut • Greedy • Partitioning • If time allows: – Probabilistic method EWSCS, 5 March 2013 Local search technique • Post-processing technique – Frequently used on solutions found by some other algorithms, to try to improve it using simple changes. • “Local” : Changes that affect a small part of the solution EWSCS, 5 March 2013 Generic local improvement method S initial starting solution (obtained elsewhere) while ( small improvement I to S) do S solution obtained by applying I to S output S A solution that has gone through local search is said to be locally optimal (with respect to the improvements applied) Issues: - What is an improvement? (Problem specific) - How do we find the improvement? (Search) EWSCS, 5 March 2013 Greedy is a form of local search • Consider the Independent Set problem • (1,0)-improvement : Add a single vertex (& delete none) • A locally optimal solution with respect (1,0)improvements is precisely a maximal independent set EWSCS, 5 March 2013 Max Cut : Local search EWSCS, 5 March 2013 Max Cut – Local search • While some node has more neighbors in its own group than the other group – Move it to the other group • Convergence? • Potential function: # edges cut – Strictly increasing with each move EWSCS, 5 March 2013 Max Cut – Local search • While some node has more neighbors in its own group than the other group – Move it to the other group • For each vertex v: d(v)/2 edges incident on v are cut • More than |E|/2 edges are cut – |ALG| >= |E|/2 – |OPT| <= |E| EWSCS, 5 March 2013 LS for Independent Sets • A 2-improvement (2-imp) is the addition of up to 2 vertices and removal of up to 1 vertex, from the current solution. – Thus, it is a set I of up to 3 vertices so that |S\I| ≤ 2 and |I\S| ≤ 1. S while ( 2-imp I to S) do S S I (symmetric set difference) output S EWSCS, 5 March 2013 Analysis of 2-opt • • • • Given graph G of max degree A : Algorithm’s solution (2-locally optimal) B : “Best” solution (optimal) C=AB • B’ = B \ C • A’ = A \ C • Rest of G doesn’t matter G B A C EWSCS, 5 March 2013 Some observation • Let B’ = B \ C, and A’ = A \ C. • Rest of G doesn’t matter v1 u v2 w A’ B’ Suppose a vertex in A’ is adjacent to two vertices in B’ Then at least one of them must be adjacent to another node in A’ EWSCS, 5 March 2013 Argument • b1 = #nodes in B w/ 1 nbor in A • b2 = #nodes in B w/ 2 nbors in A • b = b1 + b2 = |B’|, a = |A’| • • • • b1 a b1 + 2 b 2 a So, 2b = 2(b1 + b2) (+1) a (+1)/2-approximation v1 u v2 w A’ EWSCS, 5 March 2013 B’ SIMPLE GREEDY ARGUMENTS EWSCS, 5 March 2013 Independent Set in Boundeddegree Graphs Maximal IS(G) // G=(V,E) is a graph if V = , return Pick some vertex v from V V’ = V – N[v] Let G’ = graph induced by V’ N(v) v return MaximalIS(G’) {v} N[v] EWSCS, 5 March 2013 Independent Set in Bounded-degree Graphs Observation: OPT contains at most = |N(v)| nodes from N[v] N(v) v MaximalIS() obtains 1 from N[v] “Pay , get 1” N[v] Claim: MaximalIS gives a -approximation Maximal IS(G) if V = , return Pick some vertex v from V V’ = V – N[v] EWSCS, 5 March 2013 return MaximalIS(G[V’]) {v} Maximum collection of disjoint unit circles • • • Simplest algorithm is: Keep adding new circles, disjoint from the previous ones That gives a maximal collection. MaxCircles(S) // S is a set of unit circles if S = , return Pick any circle C from S S1 = Circles that intersect C, S2 = S \ S1 return MaxCircles(S2) {C} Observation: Each circle can intersect at most 6 mutually non-intersecting circles Claim: MaxCircles gives a 6approximation Argument: “Pay 6, get 1” EWSCS, 5 March 2013 Maximum collection of disjoint unit circles • • Improved algorithm: Find a circle whose neighborhood contains few nonintersecting circles MaxCircles(S) // S is a set of unit circles if S = , return Pick lowest circle C from S S1 = Circles that intersect C, S2 = S \ S1 return MaxCircles(S2) {C} Observation: C intersects at most 3 mutually non-intersecting circles Claim: MaxCircles gives a 3approximation Argument: “Pay 3, get 1” EWSCS, 5 March 2013 Problem #1: IS 1. Consider the min-degree greedy algorithm for the independent set problem 2. Argue a -1-approximation ratio on nonregular graphs 3. Argue a (+1)/2 ratio on regular graphs. EWSCS, 5 March 2013 Problem #2: Min maximal matching 1. Design a factor-2 approximation algorithm for the problem of finding a minimum cardinality maximal matching in an undirected graph. EWSCS, 5 March 2013