A Unified Approach to Approximating Resource Allocation and

www.cs.technion.ac.il/~reuven
Approximation Algorithms for
Bandwidth and Storage Allocation
Reuven Bar-Yehuda
Joint work with
Michael Beder, Yuval Cohen and Dror Rawitz
Technion IIT
Slides and paper at:
http://www.cs.technion.ac.il/~reuven
1
www.cs.technion.ac.il/~reuven
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
2
www.cs.technion.ac.il/~reuven
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 maximization)
p1 · x  r × p1*
p2 · x  r × p2*

p · x  r × ( p1*+ p2*)
 r × ( p1 + p2 )*

3
www.cs.technion.ac.il/~reuven
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

4
A Local-Ratio Schema for
Maximization[Minimization] problems:
www.cs.technion.ac.il/~reuven
5
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” p1 ;
REC = r-ApproxMax[Min]( S, p- p1 ) ;
If REC is not an r-approximation w.r.t. p1 then “fix it”;
return REC;
www.cs.technion.ac.il/~reuven
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 :
….
6
www.cs.technion.ac.il/~reuven
Maximum Independent Set in Interval Graphs
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
7
www.cs.technion.ac.il/~reuven
Maximum Independent Set in Interval Graphs:
How to select P1 to get optimization?
P1=0
P1=1
P1=0
P1=0
P1=0
P1=1
P1=0
P1=1
P1=1
Î
time
Let Î be an interval that ends first;
1
if I in conflict with Î
For all intervals I define: p1 (I) =
0 else
For every feasible
x:
For every Î-maximal x:
p1 ·x
p1 ·x

1
 Every Î-maximal is optimal.

1
8
www.cs.technion.ac.il/~reuven
Maximum Independent Set in Interval Graphs:
An Optimization Algorithm
Activity9
Activity8
Activity7
Activity6
Activity5
Activity4
Activity3
Activity2
Activity1
P1=P(Î
)
P1=0
P1=0
P1=0
P1=0
P1=P(Î
)
P1=0
P1=P(Î
)
P1=P(Î
)
Î
time
Algorithm MaxIS( S, p )
If S = Φ then return Φ ;
If I  S p(I) 0 then return MaxIS( S - {I}, p);
Let Î  S that ends first;
I  S define: p1 (I) = p(Î)  (I in conflict with Î) ;
IS = MaxIS( S, p- p1 ) ;
If IS is Î-maximal then return IS else return IS  {Î};
9
www.cs.technion.ac.il/~reuven
Maximum Independent Set in Interval Graphs:
Running Example
P(I5) = 3
-4
P(I6) = 6
-4
P(I3) = 5
P(I2) = 3
P(I1) = 5
P(I4) = 9
-5
-5
-5
-5
-5
-2
-4
-4
-2
10
www.cs.technion.ac.il/~reuven
Bandwidth Allocation Problem (BAP)
banwith
I
s(I)
Maximize
w(I)
e(I)
 p( I )  x
time
I
s.t.
For each instance I:
xI {0,1}
I
For each time t:
 w( I )  x
I :s ( I ) t  e ( I )
I
1
11
www.cs.technion.ac.il/~reuven
12
Bandwidth Allocation Problem (BAP)
1987 Arkin and Silverberg: requests have same duration.
2000 Philips Uma Wein: 6
2001 Bar-Noy Bar-Yehuda Freund Naor Schieber: 3
2002 Chen Hassin Tzur: DP for restricted case.
2002 Calinescu, Chakrabarti, Karloff, Rabani: 2 Randomized
Also dynamic programming
2003 Chekuri, Maydlarz, Shepherd: Extentions (e.g. trees)
2005 This talk:  2+1/(e-1)
 2.582
www.cs.technion.ac.il/~reuven
13
Bandwidth Allocation for w  1/2
How to select P1 to get 1/3-approximation?
Î
I
s(I)
w(I)
e(I)
time
1
if I = Î
2*w(I) if I is in conflict with Î
0
else
For all intervals I define: p1 (I) =
For every feasible
x: p1 ·x  1+2*1
For every Î-maximal x: p1 ·x 
1
 Every Î-maximal is 1/3-approximation
www.cs.technion.ac.il/~reuven
14
Bandwidth Allocation for w  1/2
… A better P1 to get 1/2-approximation?
Î
I
s(I)
w(I)
e(I)
time
1
For all intervals I define: p1 (I) =
if I = Î
w(I)/Ŵ if I is in conflict with Î
0
else
Where Ŵ=1- w(Î)
 feasible
x: p1 ·x  max{ 1+ Ŵ /Ŵ , 1 /Ŵ }
 Î-maximal x: p1 ·x  min{1, Ŵ /Ŵ}
 Î -maximal is 1/2-approximation
www.cs.technion.ac.il/~reuven
Bandwidth Allocation:
1/3-approximation in O(nlogn) time
w>½
w>½
w>½
w>½
w>½
w>½
w>½
w>½
w>½
Algorithm:
1. GRAY
= Find 1-approximation for gray (w>1/2) intervals;
2. COLORED = Find 1/2-approximation for colored intervals
3. Return the one with the larger profit
Analysis:
If GRAY*  33%OPT then GRAY
 1*(33%OPT)=33%OPT else
COLORED*  66%OPT thus COLORED  1/2(66%OPT)=33%OPT
15
www.cs.technion.ac.il/~reuven
Bandwidth Allocation: What if we get
R-approx for w > 
and r-approx for w ≤  ?
w>
w>
w>
w>
w>
w>
w>
w>
w>
Algorithm:
1. GRAY
= Find R-approximation for gray (w>) intervals;
2. COLORED = Find r-approximation for colored intervals
3. Return the one with the larger profit
Analysis:
If GRAY*  r/(R+r)×OPT then GRAY
 R× r/(R+r)×OPT else
COLORED* R/(R+r)×OPT thus COLORED  r× R/(R+r)×OPT
16
www.cs.technion.ac.il/~reuven
Banwidth Allocation: 1-approx for w > 
Algorithm:
2002 Chen Hassin Tzur
2002 Calinescu, Chakrabarti, Karloff, Rabani
Dynamic Programming  R = 1
17
www.cs.technion.ac.il/~reuven
Bandwidth Allocation:  1-1/e-apx for w ≤ 
Let 1/k2 ≥ 
Î
1/k2
1/k
I
s(I)
w(I)
e(I)
time
1-1/k
For all intervals I define: p1 (I) =
For every 1-feasible
if I = Î
k×w(I) if I is in conflict with Î
0
x: p1 ·x  k*1 +1
For every 1/k-Î-maximal x: p1 ·x  1-1/k
else

1/k-Î-maximal is  k+3-apx
18
www.cs.technion.ac.il/~reuven
Bandwidth Allocation: 1-1/e-approx for w ≤ 
Algorithm:
Iteratively: Loose 1/k bandwidth and gain 1/(k+3) fraction from the residual opt
Gain ≥ OPT- Leftk >  (1-1/e)×OPT

Leftk ≤ (1-1/(k+3))k ×OPT
Left3 ≤ (1-1/(k+3))3 ×OPT
Gain2 ≥ (1/(k+3)) ×Left1
Left2 ≤ (1-1/(k+3))2 ×OPT
Gain1 ≥ (1/(k+3)) ×OPT
Left1 ≤ (1-1/(k+3)) ×OPT
19
www.cs.technion.ac.il/~reuven
Storage Allocation Problem (SAP)
20
www.cs.technion.ac.il/~reuven
Storage Allocation Problem (SAP)
2000 Philips, Uma, Wein: 35
2000 Leonardi, Marchetti-Spaccamela, Vitaletti: 12
2001 Bar-Noy, Bar-Yehuda, Freund, Naor, Schieber: 7
2002 Chen, Hassin, Tzur: DP
2005 This talk:  2+1/(e-1)  2.582
21
www.cs.technion.ac.il/~reuven
Storage Allocation Problem (SAP) for w> 
Let k = 1/ 
+ Gravity  O(nk) possible values for H
 Dynamic programming in polynomial time for constant 
H
22
www.cs.technion.ac.il/~reuven
For w ≤  R-apx for BAP   R-apx for SAP
Dynamic Storage Allocation (DSA) 
Find Min bandwidth with “perfect” SAP allocation
Run BAP (w ≤  )
If Load ≤ 1/3
// Load = Max total height at time t
use Gergov 99 to get DSA in bandwidth ≤ 1
Else use
2003 Buchsbaum, Karloff, Kenyon, Reingold and Thorup
to get DSA in bandwidth ≤ 1 +O( 1/7)
Corollary: for w ≤  :
 1-apx randomized
 1.582-apx (deterministic and combinatorial)
Corollary: 2 randomized and 2.582 deterministic
23
www.cs.technion.ac.il/~reuven
Bandwidth Allocation on trees.
2003 Chekuri, Maydlarz, Shepherd:
Input: Capacitated tree, where each edge has an integral capacity, and
a set of paths, each of which has an integral demand and a profit.
Solution: A set of paths such that the demands of the paths can be
simultaneously routed without violating edge capacities.
Results:
 4-approx for the case of unit demands.
 48-approx for the case where max(demand) ≤ min(capacity)
Our results:
 We consider the uniform capacities bounded degree case
Note: in this case max(demand) ≤ min(capacity)
 (2+1/(e1/2-1)+)-approx  3.54 -aprox
 (2+1/(e1/d-1)+)-approx
when we are given a set of trees of degree d (instead of paths).
24
www.cs.technion.ac.il/~reuven
Bandwidth Allocation of uniform capacities
general demands trees on trees.
25
www.cs.technion.ac.il/~reuven
Bounded degress trees:
Bandwidth Allocation: 1-approx for w > 
Dynamic Programming  R = 1
26
Bandwidth Allocation of uniform capacities
general demands trees on trees.
www.cs.technion.ac.il/~reuven
Let 1/k2 ≥ 
27
1-1/k
if I = Î
For all intervals I define: p1 (I) =
k×w(I) if I is in conflict with Î
0
else
For every 1-feasible
x: p1 ·x  k*d +1
1/k-Î-maximal is  d(k+1)-apx
For every 1/k-Î-maximal x: p1 ·x  1-1/k
www.cs.technion.ac.il/~reuven
Bandwidth Allocation:  1 1
d
e -apx for w ≤ 
Algorithm:
Iteratively: Loose 1/k bandwidth and gain 1/(dk+d) fraction from the residual opt
Gain ≥ OPT- Leftk >  (1-e1/d)×OPT

Leftk ≤ (1-1/(dk+d))k ×OPT
Left3 ≤ (1-1/(dk+d))3 ×OPT
Gain2 ≥ (1/(dk+d)) ×Left1
Left2 ≤ (1-1/(dk+d))2 ×OPT
Gain1 ≥ (1/(dk+d)) ×OPT
Left1 ≤ (1-1/(dk+d)) ×OPT
28