460 likes | 595 Vues
This research problem explores the optimization of single-sink edge installations in a network defined by a graph G=(V,E) with a sink node 't' and multiple source nodes. The objective is to minimize the total cost of routing a unit of demand from each source to the sink by selecting the appropriate cable type and subgraph configuration, considering various discount types for building and routing costs. Leveraging linear programming and advanced approximation techniques, we present algorithms to achieve a cost-effective setup while addressing practical constraints and flow conservation.
E N D
Single Sink Edge Installation Kunal Talwar UC Berkeley
Problem 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
t Example • Given sources and the underlying graph Find subgraph and cable type for each edge to minimize total cost
t t Example • Given sources and the underlying graph • Find subgraph and cable type for each edge to minimize total cost
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: • 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 dT(root,v) at most 3 times dG(root,v).
Single 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.
About OPT… • It’s 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…
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 – • 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 – • cost of building the network – • cost of routing the demands –
Linear Integer program • Subject to : • 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) • 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 2Rqj 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 2Rqj 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 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
Identifying what to connect…. vj Less Than 4Rqj
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 2Rqj
Connecting it …. j i
Connecting it …. j i
Connecting it …. j i Less than 2Rqj
Connecting it …. j Less Than 4Rqj i
Connecting it …. Each node (using its buddy) has someone in the tree Tq within 6Rqj Less Than 6Rqj j i
Analysis: 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 :
Lemma proof: t Flow f Flow (1-f) vj
t Flow f Flow (1-f) vj Lemma 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) < 1/2 Then > half the flow travels at least 2Rqj on low discounts This flow itself contributes > Rqj to Rqj. Contradiction. S
Lemma 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
Lemma 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:
Lemma 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.
Building 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 = 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 • sq+1¸ 2 sq • dq+1· (1/2) dq • Can be done with a factor 2 change in cost
Building 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
Routing costs • Path from v to t uses increasingly higher discount type. Let the path be v=u0,u1,…uk=t • uq-uq+1 uses discount type q. • v’s routing cost = åqdq dT(uq,uq+1)
Routing costs… u3= t Routing cost on discount type 2 u2 Proxy(v) d2 Length of this = d2 d(u1,u2) u1 u0=v
Routing costs… u3= t u2 Proxy(v) d2 Length of this = d2 d(u1,u2) · 3 d2 d(u1,Proxy(v)) u1 u0=v coz we built a LAST !
Routing 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))) u1 u0=v
Routing 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))) u1 u0=v bounded by 6R2v ~ what fractional sol. pays
Routing 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))) u1 u0=v already paid d1¸ 2 d2 for this
Routing 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))) u1 u0=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 • 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?