1 / 14
Resource Allocation in Bounded Degree Trees Reuven Bar-Yehuda, - - PowerPoint PPT Presentation
Resource Allocation in Bounded Degree Trees Reuven Bar-Yehuda, - - PowerPoint PPT Presentation
Resource Allocation in Bounded Degree Trees Reuven Bar-Yehuda, Michael Beder, Yuval Cohen (CS, Technion) Dror Rawitz (CRI, Haifa University) 1 / 14 Bandwidth Allocation Problem (BAP) Bandwidth Allocation Problem: Bandwidth Allocation
Bandwidth Allocation Problem (BAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
2 / 14
Problem: Clients need a common resource
Bandwidth Allocation Problem (BAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
2 / 14
Problem: Clients need a common resource Bad solution:
Bandwidth Allocation Problem (BAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
2 / 14
Problem: Clients need a common resource Bad solution: Better solution: Advance reservations
Bandwidth Allocation Problem (BAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
3 / 14
- Set of jobs that require the utilization of a resource
Amount of resource is normalized to 1
- Job j:
- time interval
- demand, dj ∈ [0, 1]
- weight, w(j)
- Schedule S:
∀p ∈ R,
- j : p∈j∈S
dj ≤ 1
- Goal:
max
S
- j∈S
w(j)
1 2 1 3 1 6 1 3 1 2 2 5 1 4
≤ 1
Bandwidth Allocation Problem (BAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
3 / 14
- Set of jobs that require the utilization of a resource
Amount of resource is normalized to 1
- Job j:
- time interval
- demand, dj ∈ [0, 1]
- weight, w(j)
- Schedule S:
∀p ∈ R,
- j : p∈j∈S
dj ≤ 1
- Goal:
max
S
- j∈S
w(j)
1 2 1 3 1 6 1 3 1 2 2 5 1 4
≤ 1
Observations:
- Unit demands ≡ max independent set in intervals graphs
- All intervals intersect ≡ Knapsack
BAP in Lines and Trees
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
4 / 14
Alternative Scenario for BAP:
- Line network
- Client = path
BAP in Lines and Trees
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
4 / 14
Alternative Scenario for BAP:
- Line network
- Client = path
Example:
1 2 3 4 5 6
Corresponding BAP instance:
BAP in Lines and Trees
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
4 / 14
Alternative Scenario for BAP:
- Line network
- Client = path
Example:
1 2 3 4 5 6
Corresponding BAP instance: Extension — BAP in Trees:
Solving BAP — Wide and Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
5 / 14
Standard approach:
- Wide jobs:
{j : dj > δ} — Solve Exactly
- Narrow jobs: {j : dj ≤ δ} — r-approx
⇒ (1 + r)-approx
Solving BAP — Wide and Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
5 / 14
Standard approach:
- Wide jobs:
{j : dj > δ} — Solve Exactly
- Narrow jobs: {j : dj ≤ δ} — r-approx
⇒ (1 + r)-approx
Previous results:
- BAP/lines: 3-approx — local ratio [BBFNS00]
- BAP/lines: (2 + ε)-approx — LP-rounding [CCKR02], [CMS03]
- BAP/trees: 5-approx using local ratio [LNO02]
Solving BAP — Wide and Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
5 / 14
Standard approach:
- Wide jobs:
{j : dj > δ} — Solve Exactly
- Narrow jobs: {j : dj ≤ δ} — r-approx
⇒ (1 + r)-approx
Previous results:
- BAP/lines: 3-approx — local ratio [BBFNS00]
- BAP/lines: (2 + ε)-approx — LP-rounding [CCKR02], [CMS03]
- BAP/trees: 5-approx using local ratio [LNO02]
Our Results – BAP in bounded degree trees:
- BAP/BD-trees: (1 +
√e √e−1 + ε)-approx — local ratio
1 +
√e √e−1 + ε ≤ 3.542
- BAP/BD-trees: (2 + ε)-approx — randomized LP-rounding
BAP — Wide Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
6 / 14
Dynamic programming for wide jobs:
- At most 1
δ jobs can be allocated to an edge
- O(n1/δ) possible combinations per edge
- OPT can be computed in a bottom-up manner
- Polynomial if tree has bounded degree
r u0 e0 u1 e1 u2 e2 u3 e3
BAP in Lines — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
7 / 14
α-layer:
- Strip of height α
1
α
BAP in Lines — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
7 / 14
α-layer:
- Strip of height α
1
α
Packing Jobs in Thin Layers:
- Pack narrow jobs in a 1
k-layer where δ = 1 k2
1 k2 = δ ≥ {
≤ 1
k
- Compare solution to original OPT
BAP in Lines — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
8 / 14
Local Ratio Algorithm:
- Job i with leftmost right end-point
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
BAP in Lines — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
8 / 14
Local Ratio Algorithm:
- Job i with leftmost right end-point
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
- w1(T) ≤ k + 1 for every 1-feasible T
- w1(S) ≥ 1 − 1
k for every i-maximal 1 k-feasible solution S
⇒
SOL ≈ k-approx w.r.t. OPT
BAP in Lines — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
8 / 14
Local Ratio Algorithm:
- Job i with leftmost right end-point
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
- w1(T) ≤ k + 1 for every 1-feasible T
- w1(S) ≥ 1 − 1
k for every i-maximal 1 k-feasible solution S
⇒
SOL ≈ k-approx w.r.t. OPT
(
e e−1 + ε)-approximation algorithm:
- Pack 1
k-layers iteratively
- Loose 1
k bandwidth and gain ≈ 1 k fraction of residual OPT
⇒ w(S1 ∪ . . . ∪ Sk) ≥ (1 − 1/e − ε) OPT
BAP in Trees — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
9 / 14
BAP in trees:
- Bottom-up instead of left to right
- i is path with lowest peak
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
BAP in Trees — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
9 / 14
BAP in trees:
- Bottom-up instead of left to right
- i is path with lowest peak
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
- w1(T) ≤ 2k + 1 for every 1-feasible T
- w1(S) ≥ 1 − 1
k for every i-maximal 1 k-feasible solution S
⇒
SOL ≈ 2k-approx w.r.t. OPT
BAP in Trees — Narrow Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
9 / 14
BAP in trees:
- Bottom-up instead of left to right
- i is path with lowest peak
- Weight function:
w1(j) = 1 − 1
k
j = i, kdj j = i ∧ j ∩ i = ∅
- therwise
i
- w1(T) ≤ 2k + 1 for every 1-feasible T
- w1(S) ≥ 1 − 1
k for every i-maximal 1 k-feasible solution S
⇒
SOL ≈ 2k-approx w.r.t. OPT
⇒ (
√e √e−1 + ε)-approximation algorithm
Remark: Bounded degree not required
Storage Allocation Problem (SAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
10 / 14
Memory Allocation:
- Allocated memory cannot change over time
- Allocation of memory must be contiguous
Time Memory 1
Storage Allocation Problem (SAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
10 / 14
Memory Allocation:
- Allocated memory cannot change over time
- Allocation of memory must be contiguous
Time Memory 1
Solution: Set S and height function h : S → [0, 1] such that: 1.
h(j) + dj ≤ 1 for every j ∈ S
2.
j, k ∈ S intersect ⇒ h(j) + dj ≤ h(k) or h(k) + dk ≤ h(j)
Storage Allocation Problem (SAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
11 / 14
SAP vs. BAP ([CHT02]):
- Feasible SAP ⇒ Feasible BAP
- Feasible BAP ⇒ Feasible SAP
1 2 1 2 1 4 1 4 1 4 1 2 1 2
Storage Allocation Problem (SAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
11 / 14
SAP vs. BAP ([CHT02]):
- Feasible SAP ⇒ Feasible BAP
- Feasible BAP ⇒ Feasible SAP
1 2 1 2 1 4 1 4 1 4 1 2 1 2
Previous results:
- 12-approx for more general problem
6-approx if demands of the form 2−k [LMV00]
- 7-approx using alg. for dynamic storage allocation [BBFNS00]
- Dynamic prog. for “discrete” wide jobs and
1.582-approx for “discrete” narrow jobs [CHT02]
Storage Allocation Problem (SAP)
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
11 / 14
SAP vs. BAP ([CHT02]):
- Feasible SAP ⇒ Feasible BAP
- Feasible BAP ⇒ Feasible SAP
1 2 1 2 1 4 1 4 1 4 1 2 1 2
Previous results:
- 12-approx for more general problem
6-approx if demands of the form 2−k [LMV00]
- 7-approx using alg. for dynamic storage allocation [BBFNS00]
- Dynamic prog. for “discrete” wide jobs and
1.582-approx for “discrete” narrow jobs [CHT02]
Our Results:
- Dynamic prog. alg. for wide jobs (even for BD-trees)
- Reduction from SAP to BAP for narrow jobs
⇒ (2 + ε)-approx for SAP in lines
SAP — Wide Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
12 / 14
Gravity:
SAP — Wide Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
12 / 14
Gravity: Observation:
∃ OPT: ∀j, h(j) =
i∈S di for some set of jobs S
SAP — Wide Jobs
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
12 / 14
Gravity: Observation:
∃ OPT: ∀j, h(j) =
i∈S di for some set of jobs S r u0 e0 u1 e1 u2 e2 u3 e3
Algorithm for bounded degree trees:
- O(n
1 δ ) possible sets per edge
- O(n
1 δ ) possible heights
- OPT can be computed
in a bottom up manner
Narrow Jobs: Reduction from SAP to BAP
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
13 / 14
Dynamic Storage Allocation:
- Input: set of jobs
- Solution: SAP allocation of all jobs
- Goal: solution with minimum bandwidth
Narrow Jobs: Reduction from SAP to BAP
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
13 / 14
Dynamic Storage Allocation:
- Input: set of jobs
- Solution: SAP allocation of all jobs
- Goal: solution with minimum bandwidth
Narrow Jobs:
- DSA with bandwidth
(1 + O(δ1/7)) · LOAD
[BKKRT04]
- LOAD = minimum bandwidth in the BAP sense
Narrow Jobs: Reduction from SAP to BAP
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
13 / 14
Dynamic Storage Allocation:
- Input: set of jobs
- Solution: SAP allocation of all jobs
- Goal: solution with minimum bandwidth
Narrow Jobs:
- DSA with bandwidth
(1 + O(δ1/7)) · LOAD
[BKKRT04]
- LOAD = minimum bandwidth in the BAP sense
SAP =
⇒ BAP:
- BAP Sol. =
⇒ SAP Sol. in (1 + β)-layer
- Remove minimum weight β-layer
⇒ (1 + ε)-approx for SAP with narrow jobs
Conclusion
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
14 / 14
Summary of results:
- BAP in bounded degree trees:
- (1 +
√e √e−1 + ε)-approx
- (1 +
d
√e
d
√e−1 + ε)-approx
for allocating trees
- Randomized (2 + ε)-approx
- SAP in lines: (2 + ε)-approx
Conclusion
Bandwidth Allocation Bandwidth Allocation BAP in Lines and Trees Solving BAP BAP — Wide Jobs BAP — Narrow Jobs BAP — Narrow Jobs BAP — Narrow Jobs Storage Allocation Storage Allocation SAP — Wide Jobs SAP to BAP Conclusion
14 / 14
Summary of results:
- BAP in bounded degree trees:
- (1 +
√e √e−1 + ε)-approx
- (1 +
d
√e
d
√e−1 + ε)-approx
for allocating trees
- Randomized (2 + ε)-approx
- SAP in lines: (2 + ε)-approx
Open problems:
- 2-approx for BAP/lines and SAP/lines
- Deterministic (2 + ε)-approx for BAP/BD-trees
(Improve our analysis ???)
- Improve 5-approx for BAP/trees
- Extend reduction SAP ⇒ BAP to trees