Transcript Document

Seminar 236813: Approximation
algorithms for LP/IP optimization problems
Reuven Bar-Yehuda
Technion IIT
Slides and papers at:
http://www.cs.technion.ac.il/~cs236813
Example VC
Given a graph G=(V,E) penalty pv Z for each v  V
Min
S.t.:
 pv·xv
xv {0,1}
xv + xu  1 {v,u} E
Linear Programming (LP)
Integer Programming (IP)
Given a profit [penalty] vector p.
Maximize[Minimize]
p·x
Subject to:
Linear Constraints F(x)
IP: where “x is an integer vector” is a constraints
Example VC
Given a graph G=(V,E) and penalty vector p Zn
Minimize
p·x
Subject to:
x {0,1}n
xi + xj  1 {i,j} E
Example SC
Given a Collection S1, S2,…,Sn of all subsetsof {1,2,3,…,m} and
penalty vector p Zn
Minimize
Subject to:
p·x
x
n
{0,1}
xi  1
j Si
j=1..m
Example Min Cut
Given Network N(V,E) s,t  V and capasity vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
 1 st path P
Example Min Path
Given digraph G(V,E) s,t  V and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
 1 st cut P
Example MST (Minimum Spanning Tree)
Given graph G(V,E) and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
 1 cut P
Example Minimum Steiner Tree
Given graph G(V,E) TV and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
 1 T’s cut P
Example Generalized Steiner Forest
Given graph G(V,E) T1T1…Tk  V
and length vector p Z|E|
Min
S.t.:
p·x
x
|E|
{0,1}
xe
 1 i Ti’s cut P
e P
Example IS (Maximum Independent Set)
Given a graph G=(V,E) and profit vector p Zn
Maximaize
p·x
Subject to:
x {0,1}n
xi + xj  1 {i,j} E
Maximum Independent Set in Interval Graphs
Activity9
Activity8
Activity7
Activity6
Activity5
Activity4
Activity3
Activity2
Activity1
time
Maximize
 p( I )  x
I
s.t.
For each instance I:
xI {0,1}
I
For each time t:
x
I
I :s ( I ) t  e ( I )
1
The Local-Ratio Technique:
Basic definitions
Given a penalty [profit] vector p.
Minimize [Maximize]
Subject to:
p·x
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
The Local-Ratio Theorem:
x is an r-approximation with respect to p1
x is an r-approximation with respect to p- p1

x is an r-approximation with respect to p
Proof: (For minimization)
p1 · x  r × p1*
p2 · x  r × p2*

p · x  r × ( p1*+ p2*)
 r × ( p1 + p2 )*

The Local-Ratio Theorem: (Proof2)
x is an r-approximation with respect to p1
x is an r-approximation with respect to p- p1


x is an r-approximation with respect to p
Proof2: (For minimization)
Let x*, x1*, x2* be optimal solutions for p, p1, p2 respectively
p1 · x  r × p1 x1*
p2 · x  r × p2x2*

p · x  r × ( p1 x1*+ p2x2* )
 r × ( p1x*, + p2 x*) = px*
Special case: Optimization is 1-approximation
x is an optimum with respect to p1
x is an optimum with respect to p- p1
x is an optimum with respect to p

A Local-Ratio Schema for
Minimization[Maximization] problems:
Algorithm r-ApproxMin[Max]( Set, p )
If Set = Φ then return Φ ;
If I  Set p(I)=0 then return {I}  r-ApproxMin( Set-{I}, p ) ;
[If  I  Set p(I)  0 then return r-ApproxMax( Set-{I}, p ) ;]
Define “good” p1 ;
REC = r-ApproxMax[Min]( Set, p- p1 ) ;
If REC is not an r-approximation w.r.t. p1 then “fix it”;
return REC;
The Local-Ratio Theorem: Applications
Applications to some optimization algorithms (r = 1):
( MST) Minimum Spanning Tree (Kruskal)
( SHORTEST-PATH) s-t Shortest Path (Dijkstra)
(LONGEST-PATH) s-t DAG Longest Path (Can be done with dynamic programming)
(INTERVAL-IS) Independents-Set in Interval Graphs Usually done with dynamic programming)
(LONG-SEQ) Longest (weighted) monotone subsequence (Can be done with dynamic programming)
( MIN_CUT) Minimum Capacity s,t Cut (e.g. Ford, Dinitz)
Applications to some 2-Approximation algorithms: (r = 2)
( VC) Minimum Vertex Cover (Bar-Yehuda and Even)
( FVS) Vertex Feedback Set (Becker and Geiger)
( GSF) Generalized Steiner Forest (Williamson, Goemans, Mihail, and Vazirani)
( Min 2SAT) Minimum Two-Satisfibility (Gusfield and Pitt)
( 2VIP) Two Variable Integer Programming (Bar-Yehuda and Rawitz)
( PVC) Partial Vertex Cover (Bar-Yehuda)
( GVC) Generalized Vertex Cover (Bar-Yehuda and Rawitz)
Applications to some other Approximations:
( SC) Minimum Set Cover (Bar-Yehuda and Even)
( PSC) Partial Set Cover (Bar-Yehuda)
( MSP) Maximum Set Packing (Arkin and Hasin)
Applications Resource Allocation and Scheduling :
….
The creative part…
find -Effective weights
p1 is -Effective if every feasible solution is -approx w.r.t. p1
i.e. p1 ·x   p1*
VC (vertex cover)
 Edge
 Matching
 Greedy
 Homogenious
VC: Recursive implementation (edge by edge)
0
VC (V, E, p)
0
If E= return ;
If  p(v)=0 return {v}+VC(V-{v}, E-E(v), p);
Let (x,y)E;
0
Let  = min{p(x), p(y)};
0
Define p1 (v) =  if v=x or v=y and 0 otherwise;
Return VC(V, E, p- p1 )
0


0
VC: Iterative implementation (edge by edge)


VC (V, E, p)
for each e  E;
let  = min{p(v)| v  e};
for each v  e
0
p(v) = p(v) - ;
return {v| p(v)=0};
0
0

0
0

0
Min 5xBisli+8xTea+12xWater+10xBamba+20xShampoo+15xPopcorn+6xChocolate
s.t. xShampoo + xWater  1
8
12
5
20
15
10
6
Movie:
1 4 the price of 2
VC: Iterative implementation (edge by edge)


VC (V, E, p)
for each e  E;
let  = min{p(v)| v  e};
for each v  e
90
p(v) = p(v) - ;
return {v| p(v)=0};
30
15
10
50
80
100
2
VC: Greedy ( O(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
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;

4


VC: LR-Greedy by reducing 2-effective homogenious
Homogenious = all vertices have the same “greedy value”
LR_Greedy_VC (V, E, p)
C = ;
Repeat
Let  = Min p(v)/d(v);
3
For each v  V
6
p(v) = p(v) –  d(v);
Move from V to C all zero weight vertices;
Remove from V all zero degree vertices;
Until E=
3
3
Return C;
4
4
5
2
Example MST (Minimum Spanning Tree)
Given graph G(V,E) and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
 1 cut P
MST: Recursive implementation (Homogenious)
MST (V, E, p)
If V= return ;
If  self-loop e return MST(V, E-{e}, p);
If  p(e)=0 return {e}+MST(Vshrink(e), Eshrink(e), p);
Let  = min{p(e) : eE};
Define p1 (e) =  for all eE;
Return MST(V, E, p- p1 )
MST: Iterative implementation (Homogenious)
MST (V, E, p)
Kruskal
Some effective weights
VC
IS
MST
S. Path
Steiner
FVS
Min Cut
Edge
2






Matching
2






Cycle
2-1/k






Clique
(k-1)/k 





Star
2
(k+1)/2

1



Homogenious
2
k
1

2
2

Special trik
1