www.cs.technion.ac.il/~reuven 1 approximation algorithms for bandwidth and storage allocation reuven...
Post on 22-Dec-2015
216 Views
Preview:
TRANSCRIPT
www.cs.technion.ac.il/~reuven 1
Approximation Algorithms for Approximation Algorithms for Bandwidth and Storage AllocationBandwidth 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
www.cs.technion.ac.il/~reuven 2
The Local-Ratio Technique:The Local-Ratio Technique: Basic definitions 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
www.cs.technion.ac.il/~reuven 3
The Local-Ratio Theorem: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 )*
www.cs.technion.ac.il/~reuven 4
Special case: Optimization is 1-approximationSpecial 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
www.cs.technion.ac.il/~reuven 5
A Local-Ratio Schema for A Local-Ratio Schema for Maximization[Minimization] problems: 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” 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 6
The Local-Ratio Theorem: ApplicationsThe 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 :
….
www.cs.technion.ac.il/~reuven 7
Maximum Independent Set in Interval GraphsMaximum Independent Set in Interval Graphs
time
Maximize s.t. For each instance I:
For each time t:
I
IxIp )( }1,0{Ix
)()(:
1IetIsIIx
www.cs.technion.ac.il/~reuven 8 Maximum Independent Set in Interval Graphs: Maximum Independent Set in Interval Graphs: How to select How to select PP11 to get optimization? to get optimization?
Î 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: p1 ·x 1
Every Î-maximal is optimal.
For every Î-maximal x: p1 ·x 1
P1=1
P1=1
P1=1
P1=1
P1=0
P1=0
P1=0
P1=0
P1=0
www.cs.technion.ac.il/~reuven 9
Maximum Independent Set in Interval Graphs:Maximum Independent Set in Interval Graphs: An Optimization Algorithm An Optimization Algorithm
Activity9Activity8Activity7Activity6Activity5Activity4Activity3Activity2Activity1 Î
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 {Î};
P1=0
P1=0
P1=0
P1=0
P1=0
P1=P(Î )
P1=P(Î )
P1=P(Î )
P1=P(Î )
www.cs.technion.ac.il/~reuven 10
Maximum Independent Set in Interval Graphs:Maximum Independent Set in Interval Graphs: Running Example Running Example
P(I1) = 5 -5
P(I4) = 9 -5 -4
P(I3) = 5 -5
P(I2) = 3 -5
P(I6) = 6 -4 -2
P(I5) = 3 -4
-5 -4 -2
www.cs.technion.ac.il/~reuven 11
banwith
I w(I)
s(I) e(I) time
Maximize s.t. For each instance I:
For each time t:
BandwidthBandwidth Allocation Problem (BAP) Allocation Problem (BAP)
I
IxIp )(
)()(:
1)(IetIsI
IxIw
}1,0{Ix
www.cs.technion.ac.il/~reuven 12
1987 Arkin and Silverberg: requests have same duration.
2000 Philips Uma Wein: 62001 Bar-Noy Bar-Yehuda Freund Naor Schieber: 32002 Chen Hassin Tzur: DP for restricted case.
2002 Calinescu, Chakrabarti, Karloff, Rabani: 2 Randomized
Also dynamic programming2003 Chekuri, Maydlarz, Shepherd: Extentions (e.g. trees)
2005 This talk: 2+1/(e-1) 2.582
BandwidthBandwidth Allocation Problem (BAP) Allocation Problem (BAP)
www.cs.technion.ac.il/~reuven 13
Î
I w(I)
s(I) e(I) time
1 if I = Î
For all intervals I define: p1 (I) = 2*w(I) if I is in conflict with Î
0 else
For every feasible x: p1 ·x 1+2*1
Every Î-maximal is 1/3-approximation
For every Î-maximal x: p1 ·x 1
Bandwidth AllocationBandwidth Allocation for for ww 1/2 1/2 How to select How to select PP11 to get 1/3-approximation? to get 1/3-approximation?
www.cs.technion.ac.il/~reuven 14
Î
I w(I)
s(I) e(I) time
1 if I = Î
For all intervals I define: p1 (I) = w(I)/Ŵ if I is in conflict with Î
0 else
Where Ŵ=1- w(Î)
feasible x: p1 ·x max{ 1+ Ŵ /Ŵ , 1 /Ŵ }
Î -maximal is 1/2-approximation
Î-maximal x: p1 ·x min{1, Ŵ /Ŵ}
Bandwidth AllocationBandwidth Allocation for for ww 1/2 1/2 … A better … A better PP11 to get 1/2-approximation? to get 1/2-approximation?
www.cs.technion.ac.il/~reuven 15
Bandwidth Allocation:Bandwidth Allocation: 1/3-approximation in O(nlogn) time1/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 intervals3. Return the one with the larger profitAnalysis:If GRAY* 33%OPT then GRAY 1*(33%OPT)=33%OPT elseCOLORED* 66%OPT thus COLORED 1/2(66%OPT)=33%OPT
www.cs.technion.ac.il/~reuven 16
Bandwidth Allocation:Bandwidth Allocation: What if we get What if we get
R-approx for R-approx for w > w > and r-approx for and r-approx for w ≤ 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 intervals3. Return the one with the larger profitAnalysis: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
www.cs.technion.ac.il/~reuven 17
Banwidth Allocation:Banwidth Allocation: 1-approx for 1-approx for w > w >
Algorithm:
2002 Chen Hassin Tzur
2002 Calinescu, Chakrabarti, Karloff, Rabani
Dynamic Programming R = 1
www.cs.technion.ac.il/~reuven 18
Î
1/k
I w(I)
s(I) e(I) time
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*1 +1
1/k-Î-maximal is k+3-apx
For every 1/k-Î-maximal x: p1 ·x 1-1/k
Bandwidth Allocation:Bandwidth Allocation: 1-1/e1-1/e-apx for -apx for w ≤ w ≤ Let 1/Let 1/kk22 ≥≥
1/k2
www.cs.technion.ac.il/~reuven 19
Bandwidth Allocation:Bandwidth Allocation: 1-1/e-approx for 1-1/e-approx for w ≤ w ≤
Algorithm:
Iteratively: Loose 1/k bandwidth and gain 1/(k+3) fraction from the residual opt
Gain1 ≥≥ (1/(k+3)) ×OPT Left1 ≤≤ (1-1/(k+3)) ×OPT
Gain2 ≥≥ (1/(k+3)) ×Left1 Left2 ≤≤ (1-1/(k+3))2 ×OPT
Left3 ≤≤ (1-1/(k+3))3 ×OPT
Leftk ≤≤ (1-1/(k+3))k ×OPTGain ≥≥ OPT- Leftk > (1-1/e)×OPT
www.cs.technion.ac.il/~reuven 20
StorageStorage Allocation Problem (SAP) Allocation Problem (SAP)
www.cs.technion.ac.il/~reuven 21
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
StorageStorage Allocation Problem (SAP) Allocation Problem (SAP)
www.cs.technion.ac.il/~reuven 22
StorageStorage Allocation Problem (SAP) for w> Allocation Problem (SAP) for w>
Let k = = 1/ + Gravity O(nk) possible values for H
H
Dynamic programming in polynomial time for constant
www.cs.technion.ac.il/~reuven 23
For For w w ≤≤ R-apx for BAP R-apx for BAP R-apx for SAP 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 ≤ 1Else 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
www.cs.technion.ac.il/~reuven 24
Bandwidth Allocation on trees.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).
www.cs.technion.ac.il/~reuven 25
Bandwidth Allocation of uniform capacities Bandwidth Allocation of uniform capacities general demands trees on trees.general demands trees on trees.
www.cs.technion.ac.il/~reuven 26
Bounded degress trees: Bounded degress trees: Bandwidth Allocation:Bandwidth Allocation: 1-approx for 1-approx for w > w >
Dynamic Programming R = 1
www.cs.technion.ac.il/~reuven 27
Bandwidth Allocation of uniform capacities Bandwidth Allocation of uniform capacities general demands trees on trees.general demands trees on trees.
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
Let 1/Let 1/kk22 ≥≥
www.cs.technion.ac.il/~reuven 28
Algorithm:
Iteratively: Loose 1/k bandwidth and gain 1/(dk+d) fraction from the residual opt
Gain1 ≥≥ (1/(dk+d)) ×OPT Left1 ≤≤ (1-1/(dk+d)) ×OPT
Gain2 ≥≥ (1/(dk+d)) ×Left1 Left2 ≤≤ (1-1/(dk+d))2 ×OPT
Left3 ≤≤ (1-1/(dk+d))3 ×OPT
Leftk ≤≤ (1-1/(dk+d))k ×OPTGain ≥≥ OPT- Leftk > (1-e1/d)×OPT
Bandwidth Allocation: Bandwidth Allocation: -apx for -apx for w ≤ w ≤ d e11
top related