Single Sink Edge Installation Kunal Talwar UC Berkeley
Single Sink Edge Installation Kunal Talwar UC Berkeley
Problem Definition Given: n n A graph G=(V, E) , sink ‘t Sources s 1, s 2, …, sm k Discount types: n n “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
Example Given sources and the underlying graph Find subgraph and cable type for each edge to minimize total cost t
Example Given sources and the underlying graph Find subgraph and cable type for each edge to minimize total cost t
Related 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
Special case Only one cable type Extraspecial subcases: n n If d=0 ) build steiner tree. If s=0 ) 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 d. T(root, v) at most 3 times d. G(root, v).
Single cable type: Algorithm Build a steiner tree. Convert to LAST ! Analysis OPT ¸ s(optimal steiner tree). OPT ¸ d åv d. G(s, v). Cost = 2 s(steiner tree) + d 3åv d. G(s, v) · 7 OPT.
About OPT… It’s a tree ! As we travel from a source to sink n n Total traffic only increases…. . So thicker and thicker cables… We let the LP know the above…
Integer Program Variable zqe is 1 if edge e has discount type q installed Flow variable fje; q is 1 if flow from j uses discount type q on edge e Objective function – n cost of building the network –
Integer Program Variable zqe is 1 if edge e has discount type q installed Flow variable fje; q is 1 if flow from j uses discount type q on edge e Objective function – n n cost of building the network – cost of routing the demands –
Linear Integer program Subject to : n n n Flow conservation Flow monotonicity Outflow =1 Route on edge e only if edge built Integrality contraints
Rounding the linear program Top down Use the linear program solution to guide the algorithm Use the linear program cost as the lower bound
Algorithm outline Tk = {t} For each discount type q (from highest to lowest) n n Identify what to connect in this stage Connect it to Tq+1 with discount type q to get Tq
Identifying what to connect For a fractional solution f, flow from vj travels some average number of edges on low discount types.
Identifying 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
Identifying 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 2 Rqj around node vj
Identifying 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 2 Rqj around node vj Select a set of non intersecting balls in increasing order of radii.
Identifying 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 2 Rqj around node vj Select a set of non intersecting balls in increasing order of radii. Each node vl has a buddy within distance 4 Rql
Identifying what to connect….
Identifying what to connect…. vj Less Than 4 Rqj
Connecting it… Contract all selected balls Shrink Tq+1 Build a Steiner tree on the contracted nodes Convert to LAST Each selected vertex has a proxy in its ball at distance at most 2 Rqj
Connecting it …. j i
Connecting it …. j i
Connecting it …. j i Less than 2 Rqj
Connecting it …. j Less Than 4 Rqj i
Connecting it …. Less Than 6 Rqj j i Each node (using its buddy) has someone in the tree Tq within 6 Rqj
Analysis: Building Cost Key Lemma : Let D(S) be the set of edges on the boundary of S ¶ B(vj, 2 Rqj), r 2 Sc. Let z, f be any feasible solution to the LP. Then Proof :
Lemma proof: t Flow f Flow (1 -f) vj
Lemma proof: n. A t Flow f total flow of 1 leaves S n. Flow crossing the boundary on low discounts reaches there on low discounts. (monotonicity) Flow (1 -f) n. Suppose the high discounts built at D(S) < 1/2 S n. Then vj > half the flow travels at least 2 Rqj on low discounts n. This flow itself contributes > Rqj to Rqj. Contradiction.
Lemma proved… Lemma : Let D(S) be the set of edges on the boundary of S ¶ B(vj, 2 Rqj), r 2 Sc. Let z, f be any feasible solution to the LP. Then
Lemma proved… Lemma : Let D(S) be the set of edges on the boundary of S ¶ B(vj, 2 Rqj), r 2 Sc. Let z, f be any feasible solution to the LP. Then Recall that Steiner tree LP is:
Lemma proved… Lemma : Let D(S) be the set of edges on the boundary of S ¶ B(vj, 2 Rqj), 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.
Building Cost (contd…) Steiner tree LP has gap · 2 Hence our steiner tree cost is no more than 2 sq times åe åp¸ q zpe. Thus the LASTq is no more than twice this. Let OPTbq = OPT’s building cost for discount type q. Then LASTq cost is 8åp¸ q (sq/sp)OPTbp
Scaling… We prune the discount types in the beginning to be sure that they are all different enough ! More formally, ensure n n sq+1 ¸ 2 sq dq+1 · (1/2) dq Can be done with a factor 2 change in cost
Building Cost (contd…) sp ¸ 2 p-qsq LASTq cost is 8åp¸ q (sq/sp)OPTbp Now things work out fine ! We get : Total building cost · 16 OPTb
Routing costs Path from v to t uses increasingly higher discount type. Let the path be v=u 0, u 1, …uk=t n uq- uq+1 uses discount type q. v’s routing cost = åq dq d. T(uq, uq+1)
Routing costs… u 3= t Routing cost on discount type 2 d 2 Length of this = d 2 d(u 1, u 2) u 2 Proxy(v) u 1 u 0=v
Routing costs… u 3= t u 2 Proxy(v) d 2 Length of this = d 2 d(u 1, u 2) u 1 u 0=v · 3 d 2 d(u 1, Proxy(v)) coz we built a LAST !
Routing costs… u 3= t u 2 d 2 Length of this = d 2 d(u 1, u 2) u 1 · 3 d 2 d(u 1, Proxy(v)) · 3 d 2(d(u 1, v) + d(v, Proxy(v))) Proxy(v) u 0=v
Routing costs… u 3= t u 2 d 2 Length of this = d 2 d(u 1, u 2) u 1 · 3 d 2 d(u 1, Proxy(v)) · 3 d 2(d(u 1, v) + d(v, Proxy(v))) Proxy(v) u 0=v bounded by 6 R 2 v ~ what fractional sol. pays
Routing costs… u 3= t u 2 d 2 Length of this = d 2 d(u 1, u 2) u 1 · 3 d 2 d(u 1, Proxy(v)) · 3 d 2(d(u 1, v) + d(v, Proxy(v))) already paid d 1 ¸ 2 d 2 for this Proxy(v) u 0=v
Routing costs… u 3= t u 2 d 2 Length of this = d 2 d(u 1, u 2) u 1 · 3 d 2 d(u 1, Proxy(v)) · 3 d 2(d(u 1, v) + d(v, Proxy(v))) Proxy(v) u 0=v Total routing cost v pays in sol is O(what v pays in LP)
Hence…. 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 !
Conclusions Get a constant factor approximation algorithm The natural LP has a constant integrality gap.
Conclusions 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 n n Combinatorial lower bounds off by log LP might be the right approach
Paper available at http: //www. cs. berkeley. edu/~kunal/acads/bb. ps Questions?
- Slides: 46