Title: Single Sink Edge Installation
1Single Sink Edge Installation
2Problem Definition
- Given
- A graph G(V,E) , sink t
- Sources s1,s2,, sm
- k Discount types
- building cost per unit length sq
- routing cost per unit length dq
- Find cheapest installation to route a unit of
demand from each source si
3Example
- Given sources
- and the underlying graph
- Find subgraph and cable type for each edge to
minimize total cost
4Example
- Given sources
- and the underlying graph
- Find subgraph and cable type for each edge to
minimize total cost
5Related Work
- Salman, et.al. 97 - A constant factor for single
cable type case (LASTs) - Awerbuch, Azar 98 - O(log n loglog n)-
approximation (tree embedding) - Meyerson, et.al. 00 - O(log n) (comb.)
- Garg et.al. 01 - O(k) (LP rounding)
- Guha et.al. 01 - O(1) (you just heard !)
- This work LP rounding - O(1).
- Goel, Estrin, 03 O(log n) oblivious to sq,dq
6Special case
- Only one cable type
- Extraspecial subcases
- If d0 ) build steiner tree.
- If s0 ) use shortest path tree.
- In general, want a
- Light Approximate Shortestpath Tree
- KRY 94 LASTs tree of cost at most 2 times a
given connecting tree, with dT(root,v) at most 3
times dG(root,v).
7Single cable type Algorithm
- Build a steiner tree.
- Convert to LAST !
- Analysis -
- OPT s(optimal steiner tree).
- OPT d åv dG(s,v).
- Cost 2s(steiner tree) d 3Ã¥v dG(s,v) 7OPT.
8About OPT
- Its a tree !
- As we travel from a source to sink
- Total traffic only increases
- .. So thicker and thicker cables
- We let the LP know the above
9Integer Program
- Variable zqe is 1 if edge e has discount type q
installed - Flow variable fjeq is 1 if flow from j uses
discount type q on edge e - Objective function
- cost of building the network
10Integer Program
- Variable zqe is 1 if edge e has discount type q
installed - Flow variable fjeq is 1 if flow from j uses
discount type q on edge e - Objective function
- cost of building the network
- cost of routing the demands
11Integer program
- Subject to
- Flow conservation
- Flow monotonicity
- Outflow 1
- Route on edge e only if edge built
- Integrality contraints
12Rounding the linear program
- Top down
- Use the linear program solution to guide the
algorithm - Use the linear program cost as the lower bound
13Algorithm outline
- Tk t
- For each discount type q (from highest to lowest)
- Identify what to connect in this stage
- Connect it to Tq1 with discount type q to get Tq
14Identifying what to connect
- For a fractional solution f, flow from vj
- travels some average number
of edges on low discount types.
15Identifying what to connect
- For a fractional solution f, flow from vj
- travels some average number
of edges on low discount types. - Beyond that radius, fractional solution uses high
discount types
16Identifying what to connect
- For a fractional solution f, flow from vj
- travels some average number
of edges on low discount types. - Beyond that radius, fractional solution uses high
discount types - Form balls of radius 2Rqj around node vj
17Identifying what to connect
- For a fractional solution f, flow from vj
- travels some average number
of edges on low discount types. - Beyond that radius, fractional solution uses high
discount types - Form balls of radius 2Rqj around node vj
- Select a set of non intersecting balls in
increasing order of radii.
18Identifying what to connect
- For a fractional solution f, flow from vj
- travels some average number
of edges on low discount types. - Beyond that radius, fractional solution uses high
discount types - Form balls of radius 2Rqj around node vj
- Select a set of non intersecting balls in
increasing order of radii. - Each node vl has a buddy within distance 4Rql
19Identifying what to connect.
20Identifying what to connect.
vj
Less Than 4Rqj
21Connecting it
- Contract all selected balls
- Shrink Tq1
- Build a Steiner tree on the contracted nodes
- Convert to LAST
- Each selected vertex has a proxy in its ball at
distance at most 2Rqj
22Connecting it .
j
i
23Connecting it .
j
i
24Connecting it .
j
i
Less than 2Rqj
25Connecting it .
j
Less Than 4Rqj
i
26Connecting it .
Each node (using its buddy) has someone in the
tree Tq within 6Rqj
Less Than 6Rqj
j
i
27Analysis Building Cost
- Key Lemma Let D(S) be the set of edges on the
boundary of S B(vj,2Rqj), r 2 Sc. Let z,f be
any feasible solution to the LP. Then
Proof
28Lemma proof
t
Flow f
Flow (1-f)
vj
29Lemma proof
- A total flow of 1 leaves S
- Flow crossing the boundary on low discounts
reaches there on low discounts. (monotonicity) - Suppose the high discounts built at D(S) lt 1/2
- Then gt half the flow travels at least 2Rqj on low
discounts - This flow itself contributes gt Rqj to Rqj.
Contradiction.
S
30Lemma proved
- Lemma Let D(S) be the set of edges on the
boundary of S B(vj,2Rqj), r 2 Sc. Let z,f be
any feasible solution to the LP. Then
31Lemma proved
- Lemma Let D(S) be the set of edges on the
boundary of S B(vj,2Rqj), r 2 Sc. Let z,f be
any feasible solution to the LP. Then
- Recall that Steiner tree LP is
32Lemma proved
- Lemma Let D(S) be the set of edges on the
boundary of S B(vj,2Rqj), r 2 Sc. Let z,f be
any feasible solution to the LP. Then
- Recall that Steiner tree LP is
-
- i.e. 2Ã¥p q zqe is a feasible fractional Steiner
tree.
33Building Cost (contd)
- Steiner tree LP has gap 2
- Hence our steiner tree cost is no more than 2sq
times åe åp q zpe. - Thus the LASTq is no more than twice this.
- Let OPTbq OPTs building cost for discount type
q. - Then LASTq cost is 8Ã¥p q (sq/sp)OPTbp
34Scaling
- We prune the discount
- types in the beginning to be
- sure that they are all different enough !
- More formally, ensure
- sq1 2 sq
- dq1 (1/2) dq
- Can be done with a factor 2 change in cost
35Building Cost (contd)
- sp 2p-qsq
- LASTq cost is 8Ã¥p q (sq/sp)OPTbp
- Now things work out fine !
- We get
- Total building cost
- 16 OPTb
36Routing costs
- Path from v to t uses increasingly higher
discount type. Let the path be vu0,u1,ukt - uq- uq1 uses discount type q.
- vs routing cost åq dq dT(uq,uq1)
37Routing costs
u3 t
Routing cost on discount type 2
u2
Proxy(v)
d2 Length of this d2 d(u1,u2)
u0v
u1
38Routing costs
u3 t
u2
Proxy(v)
d2 Length of this d2 d(u1,u2) 3 d2
d(u1,Proxy(v))
u0v
u1
coz we built a LAST !
39Routing costs
u3 t
u2
Proxy(v)
d2 Length of this d2 d(u1,u2) 3 d2
d(u1,Proxy(v)) 3 d2(d(u1,v) d(v,Proxy(v)))
u0v
u1
40Routing costs
u3 t
u2
Proxy(v)
d2 Length of this d2 d(u1,u2) 3 d2
d(u1,Proxy(v)) 3 d2(d(u1,v) d(v,Proxy(v)))
u0v
u1
bounded by 6R2v what fractional sol. pays
41Routing costs
u3 t
u2
Proxy(v)
d2 Length of this d2 d(u1,u2) 3 d2
d(u1,Proxy(v)) 3 d2(d(u1,v) d(v,Proxy(v)))
u0v
u1
already paid d1 2 d2 for this
42Routing costs
u3 t
u2
Proxy(v)
d2 Length of this d2 d(u1,u2) 3 d2
d(u1,Proxy(v)) 3 d2(d(u1,v) d(v,Proxy(v)))
u0v
u1
Total routing cost v pays in sol is O(what v pays
in LP)
43Hence.
- Theorem Algorithm described has cost within a
constant factor of the LP optimum. - Recap
- LP tells us how far from vj to go before LP can
pay for building high discount types - LAST selection of balls ensures routing cost is
not too high - Scaling crucial in both cases !
44Conclusions
- Get a constant factor approximation algorithm
- The natural LP has a constant integrality gap.
45Conclusions
- Get a constant factor approximation algorithm
- The natural LP has a constant integrality gap.
- Open problems
- More reasonableh constants
- The general buy-at-bulk problem
- Combinatorial lower bounds off by log
- LP might be the right approach
46- Paper available at
- http//www.cs.berkeley.edu/kunal/acads/bb.ps
- Questions?