Download presentation
Presentation is loading. Please wait.
1
www.cs.technion.ac.il/~reuven 1 Seminar 236803: Approximation algorithms for LP optimization problems Reuven Bar-Yehuda Technion IIT Slides and paper at: http://www.cs.technion.ac.il/~reuven
2
www.cs.technion.ac.il/~reuven 2 Linear Programming (LP) Integer Programming (IP) Linear Programming (LP) Integer Programming (IP) Given a profit [penalty] vector p. Maximize[Minimize] p·x Subject to:Linear Constreints F(x) IP: where “x is an integer vector” is a constreint
3
www.cs.technion.ac.il/~reuven 3 Example VC Given a graph G=(V,E) and penalty vector p Z n Minimize p·x Subject to: x {0,1} n x i + x j 1 {i,j} E
4
www.cs.technion.ac.il/~reuven 4 Example SC Given a Collection S 1, S 2,…,S n of all subsetsof {1,2,3,…,m} and penalty vector p Z n Minimize p·x Subject to: x {0,1} n x i 1 j=1..m j Si
5
www.cs.technion.ac.il/~reuven 5 Example Min Cut Given Network N(V,E) s,t V and capasity vector p Z |E| Minimize p·x Subject to: x {0,1} |E| x e 1 s t path P e P
6
www.cs.technion.ac.il/~reuven 6 Example Min Path Given digraph G(V,E) s,t V and length vector p Z |E| Minimize p·x Subject to: x {0,1} |E| x e 1 s t cut P e P
7
www.cs.technion.ac.il/~reuven 7 Example MST (Minimum Spanning Tree) Given graph G(V,E) s,t V and length vector p Z |E| Minimize p·x Subject to: x {0,1} |E| x e 1 cut P e P
8
www.cs.technion.ac.il/~reuven 8 Example Minimum Steiner Tree Given graph G(V,E) T V and length vector p Z |E| Minimize p·x Subject to: x {0,1} |E| x e 1 T’s cut P e P
9
www.cs.technion.ac.il/~reuven 9 Example Generalized Steiner Forest Given graph G(V,E) T 1 T 1 …T k V and length vector p Z |E| Min p·x S.t.: x {0,1} |E| x e 1 i T i ’s cut P e P
10
www.cs.technion.ac.il/~reuven 10 Example IS (Maximum Independent Set) Given a graph G=(V,E) and profit vector p Z n Maximaize p·x Subject to: x {0,1} n x i + x j 1 {i,j} E
11
www.cs.technion.ac.il/~reuven 11 Maximum Independent Set in Interval Graphs Maximum Independent Set in Interval Graphs Activity9 Activity8 Activity7 Activity6 Activity5 Activity4 Activity3 Activity2 Activity1 time Maximize s.t. For each instance I: For each time t:
12
www.cs.technion.ac.il/~reuven 12 The Local-Ratio Technique: Basic definitions The Local-Ratio Technique: Basic definitions Given a profit [penalty] vector p. Maximize[Minimize] p·x Subject to:feasibility constraints F(x) x is r-approximation if F(x) and p·x [ ] r · p·x* An algorithm is r-approximation if for any p, F it returns an r-approximation
13
www.cs.technion.ac.il/~reuven 13 The Local-Ratio Theorem: The Local-Ratio Theorem: x is an r-approximation with respect to p 1 x is an r-approximation with respect to p- p 1 x is an r-approximation with respect to p Proof: ( For maximization) p 1 · x r × p 1 * p 2 · x r × p 2 * p · x r × ( p 1 *+ p 2 *) r × ( p 1 + p 2 )*
14
www.cs.technion.ac.il/~reuven 14 Special case: Optimization is 1-approximation Special case: Optimization is 1-approximation x is an optimum with respect to p 1 x is an optimum with respect to p- p 1 x is an optimum with respect to p
15
www.cs.technion.ac.il/~reuven 15 A Local-Ratio Schema for Maximization[Minimization] problems: A Local-Ratio Schema for Maximization[Minimization] problems: Algorithm r-ApproxMax[Min]( Set, p ) If Set = Φ then return Φ ; If I Set p(I) 0 then return r-ApproxMax( Set-{I}, p ) ; [ If I Set p(I)=0 then return {I} r-ApproxMin( Set-{I}, p ) ; ] Define “good” p 1 ; REC = r-ApproxMax[Min]( Set, p- p 1 ) ; If REC is not an r-approximation w.r.t. p 1 then “fix it”; return REC;
16
www.cs.technion.ac.il/~reuven 16 The Local-Ratio Theorem: Applications Applications to some optimization algorithms (r = 1): ( MST) Minimum Spanning Tree (Kruskal) MST ( SHORTEST-PATH) s-t Shortest Path (Dijkstra) SHORTEST-PATH (LONGEST-PATH) s-t DAG Longest Path (Can be done with dynamic programming)(LONGEST-PATH) (INTERVAL-IS) Independents-Set in Interval Graphs Usually done with dynamic programming)(INTERVAL-IS) (LONG-SEQ) Longest (weighted) monotone subsequence (Can be done with dynamic programming)(LONG-SEQ) ( MIN_CUT) Minimum Capacity s,t Cut (e.g. Ford, Dinitz) MIN_CUT Applications to some 2-Approximation algorithms: (r = 2) ( VC) Minimum Vertex Cover (Bar-Yehuda and Even) VC ( FVS) Vertex Feedback Set (Becker and Geiger) FVS ( GSF) Generalized Steiner Forest (Williamson, Goemans, Mihail, and Vazirani) GSF ( Min 2SAT) Minimum Two-Satisfibility (Gusfield and Pitt) Min 2SAT ( 2VIP) Two Variable Integer Programming (Bar-Yehuda and Rawitz) 2VIP ( PVC) Partial Vertex Cover (Bar-Yehuda) PVC ( GVC) Generalized Vertex Cover (Bar-Yehuda and Rawitz) GVC Applications to some other Approximations: ( SC) Minimum Set Cover (Bar-Yehuda and Even) SC ( PSC) Partial Set Cover (Bar-Yehuda) PSC ( MSP) Maximum Set Packing (Arkin and Hasin) MSP Applications Resource Allocation and Scheduling : ….
17
www.cs.technion.ac.il/~reuven 17 The creative part… find -Effective weights p 1 is -Effective if every feisible solution is -approx w.r.t. p 1 i.e. p 1 ·x p 1 * VC (vertex cover) Edge Matching Greedy Homogenious
18
www.cs.technion.ac.il/~reuven 18 VC (V, E, p) If E= return ; If p(v)=0 return VC(V-{v}, E-E(v), p); Let (x,y) E; Let = min{p(x), p(y)}; Define p 1 (v) = if v=x or v=y and 0 otherwise; Return VC(V, E, p- p 1 ) VC: Recursive implementation (edge by edge) 0 0 0 0 0 0
19
www.cs.technion.ac.il/~reuven 19 VC: Iterative implementation (edge by edge) VC (V, E, p) for each e E; let = min{p(v)| v e}; for each v e p(v) = p(v) - ; return {v| p(v)=0}; 0 0 0 0 0 0
20
www.cs.technion.ac.il/~reuven 20 VC: Greedy ( H( ) - approximation) H( )=1/2+1/3+…+1/ = O(ln ) Greedy_VC (V, E, p) C = ; while E= let v=arc min p(v)/d(v) C = C + {v}; V = V – {v}; return C; n/ n/4 n/3 n/2 n … … … …
21
www.cs.technion.ac.il/~reuven 21 VC: LR-Greedy (star by star) LR_Greedy_VC (V, E, p) C = ; while E= let v=arc min p(v)/d(v) let = p(v)/d(v); C = C + {v}; V = V – {v}; for each u N(v) p(v) = p(v) - ; return C; 44
22
www.cs.technion.ac.il/~reuven 22 VC: LR-Greedy Homogenious = all vertices have the same “greedy value” LR_Greedy_VC (V, E, p) C = ; Repeat Let = Min p(v)/d(v); For each v V p(v) = p(v) – d(v); Move from V to C all zero weight vertices; Remove from V all zero degree vertices; Until E= Return C; 44 66 44 55 33 33 33 22
23
www.cs.technion.ac.il/~reuven 23
24
www.cs.technion.ac.il/~reuven 24
25
www.cs.technion.ac.il/~reuven 25
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.