A general approximation technique for constrained forest problems Michael X. Goemans & David P. Williamson Presented by: Yonatan Elhanani & Yuval Cohen.

Slides:



Advertisements
Similar presentations
Iterative Rounding and Iterative Relaxation
Advertisements

The Primal-Dual Method: Steiner Forest TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A AA A A A AA A A.
6.896: Topics in Algorithmic Game Theory Lecture 21 Yang Cai.
Covers, Dominations, Independent Sets and Matchings AmirHossein Bayegan Amirkabir University of Technology.
Approximation Algorithms Chapter 14: Rounding Applied to Set Cover.
C&O 355 Mathematical Programming Fall 2010 Lecture 22 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A.
Greedy Algorithms Greed is good. (Some of the time)
1 Discrete Structures & Algorithms Graphs and Trees: III EECE 320.
Combinatorial Algorithms
Tirgul 8 Graph algorithms: Strongly connected components.
Combinatorial Algorithms
Optimization of Pearl’s Method of Conditioning and Greedy-Like Approximation Algorithm for the Vertex Feedback Set Problem Authors: Ann Becker and Dan.
Lectures on Network Flows
Fast FAST By Noga Alon, Daniel Lokshtanov And Saket Saurabh Presentation by Gil Einziger.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Introduction to Approximation Algorithms Lecture 12: Mar 1.
Approximation Algorithms: Combinatorial Approaches Lecture 13: March 2.
Totally Unimodular Matrices Lecture 11: Feb 23 Simplex Algorithm Elliposid Algorithm.
Primal Dual Method Lecture 20: March 28 primaldual restricted primal restricted dual y z found x, succeed! Construct a better dual.
What is the next line of the proof? a). Let G be a graph with k vertices. b). Assume the theorem holds for all graphs with k+1 vertices. c). Let G be a.
Approximation Algorithm: Iterative Rounding Lecture 15: March 9.
Approximation Algorithms
Is the following graph Hamiltonian- connected from vertex v? a). Yes b). No c). I have absolutely no idea v.
Job Scheduling Lecture 19: March 19. Job Scheduling: Unrelated Multiple Machines There are n jobs, each job has: a processing time p(i,j) (the time to.
A 2-Approximation algorithm for finding an optimum 3-Vertex-Connected Spanning Subgraph.
Tirgul 13 Today we’ll solve two questions from last year’s exams.
Minimum Spanning Trees. Subgraph A graph G is a subgraph of graph H if –The vertices of G are a subset of the vertices of H, and –The edges of G are a.
Outline Introduction The hardness result The approximation algorithm.
Introduction to Graph Theory
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
V. V. Vazirani. Approximation Algorithms Chapters 3 & 22
Primal-Dual Meets Local Search: Approximating MST’s with Non-uniform Degree Bounds Author: Jochen Könemann R. Ravi From CMU CS 3150 Presentation by Dan.
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
Approximating Minimum Bounded Degree Spanning Tree (MBDST) Mohit Singh and Lap Chi Lau “Approximating Minimum Bounded DegreeApproximating Minimum Bounded.
Advanced Algorithm Design and Analysis (Lecture 13) SW5 fall 2004 Simonas Šaltenis E1-215b
Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree R 陳建霖 R 宋彥朋 B 楊鈞羽 R 郭慶徵 R
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
Approximation Algorithms Department of Mathematics and Computer Science Drexel University.
Approximation Algorithms
Hon Wai Leong, NUS (CS6234, Spring 2009) Page 1 Copyright © 2009 by Leong Hon Wai CS6234: Lecture 4  Linear Programming  LP and Simplex Algorithm [PS82]-Ch2.
Introduction to Graph Theory
Chapter 8 Maximum Flows: Additional Topics All-Pairs Minimum Value Cut Problem  Given an undirected network G, find minimum value cut for all.
Lecture.6. Table of Contents Lp –rounding Dual Fitting LP-Duality.
Variations of the Prize- Collecting Steiner Tree Problem Olena Chapovska and Abraham P. Punnen Networks 2006 Reporter: Cheng-Chung Li 2006/08/28.
Spanning tree Lecture 4.
Iterative Rounding in Graph Connectivity Problems Kamal Jain ex- Georgia Techie Microsoft Research Some slides borrowed from Lap Chi Lau.
1 Assignment #3 is posted: Due Thursday Nov. 15 at the beginning of class. Make sure you are also working on your projects. Come see me if you are unsure.
12. Lecture WS 2012/13Bioinformatics III1 V12 Menger’s theorem Borrowing terminology from operations research consider certain primal-dual pairs of optimization.
Iterative Improvement for Domain-Specific Problems Lecturer: Jing Liu Homepage:
Approximation Algorithms by bounding the OPT Instructor Neelima Gupta
Approximation Algorithms Greedy Strategies. I hear, I forget. I learn, I remember. I do, I understand! 2 Max and Min  min f is equivalent to max –f.
Instructor Neelima Gupta Table of Contents Introduction to Approximation Algorithms Factor 2 approximation algorithm for TSP Factor.
Approximation Algorithms based on linear programming.
Chapter 8 PD-Method and Local Ratio (5) Equivalence This ppt is editored from a ppt of Reuven Bar-Yehuda. Reuven Bar-Yehuda.
Mathematical Foundations of AI
Lectures on Network Flows
COMP 6/4030 ALGORITHMS Prim’s Theorem 10/26/2000.
CS4234 Optimiz(s)ation Algorithms
Lecture 12 Algorithm Analysis
Chapter 5. Optimal Matchings
CS 583 Analysis of Algorithms
Problem Solving 4.
András Sebő and Anke van Zuylen
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
V12 Menger’s theorem Borrowing terminology from operations research
Lecture 12 Algorithm Analysis
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Lecture 28 Approximation of Set Cover
Constructing a m-connected k-Dominating Set in Unit Disc Graphs
Minimum Spanning Trees
Presentation transcript:

A general approximation technique for constrained forest problems Michael X. Goemans & David P. Williamson Presented by: Yonatan Elhanani & Yuval Cohen

Lecture Schedule Problem Description and Motivation Short Break Primal Dual (2-E)-Approximation

Forest Problems

Input is an undirected connected graph Output is a subgraph satisfying some condition. Our goal is to find the minimum weight feasible output (which is in fact a forest).

Some Interesting Problems Path between two vertices

Spanning Tree Steiner Tree Steiner Forest

Perfect Matching

T-join

Point to point connection

A General Framework Looking for a problem that generalizes all of the above, and possibly more. This way we can reduce the above to this problem and keep the approximation ratio.

Constrained Forest Problem

Input: The graph: Cost Function: Constraint Function: Output: A subset such that for each cut, that satisfies, holds.

Constrained Forest Problem We try to find…. Minimum Cut Cover (which is always A forest)

We will assume the following properties for : Symmetry: For each,. Satisfiability: Disjointness: If and then

The Meaning of epsilon Now we can state what the E is, for our (2-E)- approximation. Consider the set: Then, E=

Reductions to CFP We need the constraint functions.

Shortest Path Problem

Steiner Tree

Spanning Tree

Generalized Steiner Tree

Shortest Path (again)

T-Join

Minimum (Metric, Complete) Matching

Shortest Path (LAST TIME!)

Point to point Matching

Observation We notice that our problems are “connectivity” related, and that using our cuts, we inductively find these connections. Our algorithm will use a similar method, but with an optimal ratio guarantee.

We will resume in 10 minutes…

A (2-E)-Approximation algorithm In each step, this algorithm will greedily take the most cost effective edge that helps us satisfy an uncovered cut. Using the Primal Dual scheme we will prove the approximation ratio.

Definitions Let, be a component. is active [Inactive] if

The Formal Algorithm Input: An undirected graph, edge costs and a proper function Output: A forest and a value (Implicitly sets ) For each 5. While 5.1. Find edge with,, that minimizes: For all with do 5.4. (Implicitly sets with ) For some connected component

Example We will observe an example of a simplified algorithm in order to get a better idea of how the algorithm works.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.”Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

Example s,t in V. Algorithm for ants: 1.Initialize a component for each vertex. 2.While an active component exists: 2.1.“Expand” all active components until “impact”. 2.2.Unite colliding components. 2.3.Add the connecting edge to the solution. 3.Minimize solution.

The Formal Algorithm Yet Again Input: An undirected graph, edge costs and a proper function Output: A forest (Reserved for later) For each 5. While 5.1. Find edge with,, that minimizes: For all with do 5.4. (Reserved for later) For some connected component

Algorithm Analysis Feasibility. Performance guarantee using the Primal- Dual scheme. 1. Dual’s Feasibility. 2. Ratio between the Primal and Dual solutions.

Feasibility Observation: if, then By symmetry, by disjointness, by symmetry again,.

Feasibility Lemma: For each connected component.

Feasibility Theorem: is a feasible solution. Proof: Suppose not, and assume that for some such that. Let be the components of. In order for, it must be the case that for all, either or. Thus for some. By the previous lemma, for all,. so by disjointness of. This contradicts our assumption that. Therefore, must be a feasible solution.

Feasibility Theorem: is a feasible solution. Proof: Suppose not, and assume that for some such that. Let be the components of. In order for, it must be the case that for all, either or. Thus for some. By the previous lemma, for all,. so by disjointness of. This contradicts our assumption that. Therefore, must be a feasible solution.

Feasibility Theorem: is a feasible solution. Proof: Suppose not, and assume that for some such that. Let be the components of. In order for, it must be the case that for all, either or. Thus for some. By the previous lemma, for all,. so by disjointness of. This contradicts our assumption that. Therefore, must be a feasible solution.

Feasibility Theorem: is a feasible solution. Proof: Suppose not, and assume that for some such that. Let be the components of. In order for, it must be the case that for all, either or. Thus for some. By the previous lemma, for all,. so by disjointness of. This contradicts our assumption that. Therefore, must be a feasible solution.

Primal-Dual Primal: Dual: subject to:

Performance Guarantee We will construct a feasible solution to the dual (LB) and prove the following equation: Doing so will grant us:

Approximation Algorithm Input: An undirected graph, edge costs and a proper function Output: A forest and a value (Implicitly sets ) For each 5. While 5.1. Find edge with,, that minimizes: For all with do 5.4. (Implicitly sets with ) For some connected component New!

Dual’s Feasibility By induction we have that: Therefore, as long as and are in different components: For each active component, an increase of will not violate the packing constraint as long as: In conclusion, the in step 5.1. is the largest feasible increase for the dual. Therefore, by induction, is the value of a feasible solution of the Dual.

Intuition We need to show the following inequality holds to complete the proof. For each,, as a result we need to show that By induction, we will prove the following inequality holds in each iteration:

Intuition In each iteration the increase of each side of the equation is and respectively. where: is the largest average degree of vertices in a forest with vertices. We will construct a forest for each iteration to show the following inequality holds:

Approximation Ratio We will construct the following graph for each iteration:

Approximation Ratio We will now show no leaf in H corresponds to an inactive component in G.

Approximation Ratio

By the construction of, which is a contradiction.

Approximation Ratio In the graph, the degree of vertex corresponding to component must be. Let be the set of vertices corresponding to active[inactive] components.

Conclusion We proved the algorithm is a -approximation algorithm for the constrained forest problem. We now have a -approximation algorithm for any constrained forest problem.

Final Words… The End