Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Balancing congestion for unsplittable routing on a bidirected ring arXiv:1006.0193v2 [cs.NI] 2 Jun 2010 Johanna Becker∗, Zsolt Csizmadia∗ , Alexandre Laugier†, Jácint Szabó∗ , László Szegő∗ June 3, 2010 Abstract Given a bidirected ring with capacities and a demand graph, we present an approximation algorithm to the problem of finding the minimum α such that there exists a feasible unsplittable routing of the demands after multiplying each capacity by α. We also give an approximation scheme to the problem. 1 Introduction In this paper a bidirected ring means the union of two oppositely directed circuits on the same set of nodes. The motivation of the present paper is to compute a routing of demands in an SDH (Synchronous Digital Hierarchy) based network. Such a network is a transmission network and we will refer to it as the supply graph. Also, we will refer to the set of demands as the demand graph. The backbone networks of the European telecommunication companies are based on the SDH technology. The ring architecture plays a key role in this technology, because it provides an efficient self-healing mechanism in case of failure: although the rings are bidirected, only one direction is used, while the other would be useful in case of a failure. Most of the SDH backbone networks consist of such uni-directed circuits. From such uni-directed circuits different topologies have been built, like tree of circuits or cycle of circuits. In the next section we will show that the routing in a supply graph which is a cycle of circuits can be reduced to a routing problem in a bidirected ring. One can find more about the SDH transmission protocol in [4]. Formally, we are given a directed supply graph G with capacity function c : E(G) → R+ and a directed demand graph H on the same node set with demand values d : E(H) → R+ . A routing of H is a collection of uv-paths of value k, one for each demand edge of E(H) joining u to v with value k, satisfying the capacity constraint c. Since each demand is routed along a unique path we will speak about unsplittable routings. In this paper a routing is always unsplittable, unless when speaking about the fractional solution of the linear relaxation of the problem. We say that a routing of H has load at most (less than) c if for each edge e ∈ E(G) the sum of the values of the paths using e is at most (less than) c(e). In this paper we consider the routing problem in bidirected rings. Given a bidirected ring G with capacity function c : E(G) → R+ , and a directed demand graph H with demand values d : E(H) → R+ , we want to find the minimum α for which there exists a routing of H with load at most αc. This is called the balanced bidirected ring routing problem. Under balancedness we mean that the value of α is introduced to ensure that the remaining capacities are as large as possible, allowing the network to carry larger demands. The case when c is ∗ MTA-ELTE Egerváry Research Group (EGRES), Institute of Mathematics, Eötvös University, Budapest, Pázmány P. s. 1/C, Hungary H-1117. Research is supported by France Telecom R & D, by OTKA grants K60802, TS049788 and by European MCRTN Adonet, Contract Grant No. 504438. e-mail: {beckerjc, csisza, jacint, szego}@cs.elte.hu † France Telecom Research & Development / BIZZ / DIAM. e-mail: Alexandre.Laugier@francetelecom.com 1 uniform (that is, all capacities are equal) and each demand is 1 was solved with an elegant method by Wilfong and Winkler [5]. In Section 3 we follow the lines of their proof to give an algorithm which returns a routing with load less than αopt c + 32 D where αopt is the optimum solution of the problem and D is the maximum value of the demands. We also show that this error term can indeed occur. In Section 4, using a method of Khanna [2], we show an approximation scheme to the P c problem which for any ε > 0 yields a routing with P load less than αopt (c + ε n ), with a trade-off with the running time. Here n = |V (G)| and c is the sum of the capacities of the edges. By solving a linear program, a fractional solution of the balanced bidirected ring routing problem can be given, that is, we can calculate the minimum α, denoted by α∗ , such that there exists a fractional routing of H with load at most αc. Clearly α∗ ≤ αopt . Our approximation algorithm for the balanced bidirected ring routing problem gives a routing such that its load is actually less than α∗ c + 32 D. If α∗ < 1 then our solution may be considered good in practice since it requires less than 23 D additional capacity on each edge. On the other hand, if α∗ ≥ 1 then there exists no feasible routing with the given capacities. Hence we are facing a network design problem, and our goal is to increase the capacity function with minimum cost, in order to have a routing satisfying the increased capacity. We show in Section 5 that even this problem can be handled with techniques similar to Section 3. If the capacity function c is uniform and the ring is undirected, the balanced ring routing problem was studied by many researchers due to its significance in telecommunication networks. This problem is called the undirected ring loading problem, first considered by Cosares and Saniee [1]. Schrijver, Seymour, and Winkler [3] gave a combinatorial approximation algorithm for the undirected case, if c is not necessarily uniform. Their algorithm returns a routing requiring less than 23 D more capacities on each edge than in an optimum solution. The balanced bidirected ring routing problem was first considered by Wilfong and Winkler [5] who gave an exact algorithm for finding an optimum routing in a bidirected ring, in case c is uniform and each demand is 1. Our considerations in Section 3 are based on their method, yielding a generalization of their result. Our result are more general than theirs in the aspect that in our case the demands are not restricted to be 1, and the capacity function is not necessarily uniform. We point out that the balanced bidirected ring routing problem is NP-complete. Indeed, the partition problem can be reduced to it in a straightforward way, just as in the undirected case (Cosares, Saniee [1]). Moreover, contrary to the undirected case, the cut condition is not sufficient for the existence of a fractional solution. That may be the reason that no combinatorial algorithm is known finding an optimum fractional solution of the bidirected ring routing problem, unlike in the undirected case. 2 Motivation In some SDH backbone networks the supply graph G forms a cycle of directed circuits, with capacity function c : E(G) → R+ . In this section we show that the routing in G can be reduced to a routing problem in a bidirected ring. Two neighboring circuits of G meet in a node called a common node. The common nodes divide each directed circuit into two edge sets, called arcs. See Figure 1. Let f ∈ E(H) be a demand edge with value d joining v1 to v2 . Let a1 be the common node a of G minimizing distG (v1 , a). Similarly, let a2 be the common node a minimizing distG (a, v2 ). If v2 is contained in the v1 a1 -path of G then only one v1 v2 -path exists in G so simply delete f from H and decrease the capacity of this path by d. Otherwise all v1 v2 -paths use the supply edges on the v1 a1 - and on the a2 v2 -paths of G. So replace f by a new demand edge f ′ joining a1 to a2 with value d and decrease the capacities of the supply edges on the v1 a1 and on the a2 v2 -paths by d. After doing so for each demand edge, the new demand graph H ′ has a routing in G with load at most the new capacity function c′ if and only if H has a routing with load at most c. Moreover, the non-common nodes of G are incident to no edge of H ′ , so we can think of an arc A as only one edge with capacity the minimum of c′ (e) taken over all edges e ∈ A. 2 new demand f ′ a2 a1 v1 v2 f Figure 1: Reduction to a bidirected ring The new supply graph is a bidirected ring with n nodes and 2n edges, where n is the number of circuits in G. 3 An approximation algorithm In this section we show an algorithm yielding a routing in a bidirected ring with load less than αopt c + 32 D where αopt is the solution of the balanced bidirected ring routing problem and D is the maximum value of the demands. Our algorithm is a modification of that of Wilfong and Winkler [5] who solved the balanced bidirected ring routing problem in the case if c is uniform and the demands are 1. We do not count running times since solving a linear program is included. From the two directions of the ring we say that one is the forward and the other one is the backward direction. Accordingly, an edge e ∈ E(G) can be forward or backward, and from the two possible uv-paths (u, v ∈ V (G)) one is the forward and the other one is the backward path. For an edge f ∈ E(H) joining u to v, an f -path refers to any of the two uv-paths of G. The edge sets of these two paths will be denoted by F (f ) and B(f ), respectively. The first step is to solve the LP-relaxation of the problem. There are two possibilities of routing demand f ∈ E(H) hence we introduce a variable 0 ≤ ϕ(f ) ≤ 1 with the meaning that ϕ(f ) fraction of the demand f is routed forward and 1 − ϕ(f ) fraction is routed backward. So we have the following LP-relaxation, whose optimum solution is denoted by α∗ . Both sums run on demand edges f ∈ E(H). min α, s.t. 0≤ϕ≤1 X f : e∈F (f ) ϕ(f ) d(f ) + X (1 − ϕ(f )) d(f ) ≤ αc(e) (1) ∀e ∈ E(G). f : e∈B(f ) Note that we would get αopt if ϕ was required to be integer. Now we manipulate the demands f ∈ E(H) with 0 < ϕ(f ) < 1. Such demands are called split. We say that demands f1 , f2 ∈ E(H), where fi joins si to ti for i = 1, 2, are parallel if the end nodes are placed in the ring in the order s1 , t1 , t2 , s2 (some of these nodes may coincide). Assume that f1 , f2 ∈ E(H) are parallel split demands. Call the fi -path containing both s3−i and t3−i the long fi -path for i = 1, 2. Let xi denote the amount of flow of fi sent along the long fi -path in our fractional solution. If we reroute min(x1 , x2 ) amount of flow from the long fi -path to the other fi -path for i = 1, 2 then one of the demands f1 , f2 will not be split any more, moreover, we do not increase the load of any edge of G (we may even decrease it somewhere). So at most |E(H)| such uncrossing steps are possible and finally we get a fractional solution where there are no pair of parallel split demands. Especially, demands with the same source node are parallel. So it will hold that for each s ∈ V (G) there exists at most one split demand f ∈ E(H) with source s. 3 e′′ : k + 1 2 − kε k − kε 1−ε w (ε) (ε) (ε) forward direction (1 − ε) ( 12 ) ε e′ : a branch of k demands u 1 2 v + kε Figure 2: An optimum fractional routing Denote the nodes of G by s1 , . . . , sn in the forward order. Now we try to unsplit the remaining split demands. Let fi be the split demand with source si (if any). Assume that xi fraction of fi is routed forward and yi fraction backward. Let wi = yi if we would set ϕ(fi ) to 1 and wi = −xi if ϕ(fi ) would be set to 0. If we round ϕ(fi ) to 0 or 1 then the load of an edge e ∈ E(G) increases by wi if e is contained in the forward fi -path, it decreases by wi if e is contained in the backward fi -path, and it does not change P elsewhere. There are no two parallel split demands so the change of the load of an edge is ± j≤i≤k wi for some j ≤ k where k may be greater than n but then the indices of w are meant modulo n. Here the sign depends on whether e is a forward or P a backward edge. Now we try to set the value of wi to yi or −xi for all i in such a way that | j≤i≤k wi | < 32 D holds for all j ≤ k. To achieve this it is clearly sufficient that X − D/2 < wi ≤ D/2 holds for all k ≤ n. (2) 1≤i≤k (2) can be easily achieved by greedily setting the values wi to yi or −xi one after another, since xi + yi ≤ D holds. Hence by this procedure each load is increased by less than 23 D. So the algorithm for the balanced bidirected ring routing problem is the following. 1. Solve the LP-relaxation of the balanced bidirected ring routing problem. 2. Uncross the parallel split demands. 3. Unsplit the remaining split demands in the above described greedy way. Theorem 3.1. The algorithm gives a routing of H with load less than α∗ c + 23 D ≤ αopt c + 32 D. Proof. After the uncrossing procedure the routing still has load at most α∗ c. Moreover, as we observed, the load of each edge e ∈ E(G) increases by less than 32 D during unsplitting. Our goal was to find a routing with load at most αopt c + 32 D, but actually, similarly to the undirected case [3], the routing we got has load less than α∗ c+ 23 D ≤ αopt c+ 32 D. However, this fact does not always induce improved efficiency. Indeed, next we show that for every δ > 0 there is an example where the output routing of the algorithm has load not less than αopt c + 32 D − δ. Such tight examples are very important in understanding how algorithms can be improved in order to decrease running time. Consider the capacities of the ring as shown in Figure 2. The edges without capacity, as well as the dashed edges have large capacities in both directions and ε is a number which is small enough with respect to k. All demands are of value 1. Observe that the cut {e′ , e′′ } is tight, that is, the total value of the demands crossing it equals c(e′ ) + c(e′′ ). It is easy to see that 4 there is no integer routing with α = 1 due to the cut {e′ , e′′ } with fractional capacities. The (k) . best integer solution is obtained if the capacity of e′′ is raised to k + 1, that is αopt = k+k+1 1 2 −kε Indeed, ε is small enough so we can route the demand of node v forward while all other demands (k) backward. Thus limk→∞ αopt = 1 by an appropriate choice of ε = ε(k) . Clearly α∗ = 1, and an optimum ϕ (which is a vertex of the polyhedron (1)) is shown in brackets in Figure 2. Assume that the unsplitting procedure starts at node u. The split demand at node u is routed forward. Now the split demand at node v is routed backward and then the demand of node w forward. All remaining demands will be routed backward, according to our greedy heuristic. Now e′ has load 2 and so the error at e′ tends to (k) 2 − ( 12 + kε) · αopt 3 = , k→∞ D 2 lim by choosing kε → 0, and using that D = 1. Note that the fractional capacities can be made integer by scaling. 4 An approximation scheme If the value of the demands are small with respect to the minimum load of an optimum routing then the 32 D additive error is a small deviation from the optimum solution. Otherwise this error term can be significant. In this section we develop an approximation scheme for the balanced bidirected ring routing problem, which for any ε > 0 gives an algorithm polynomial in the number of nodes, finding a routing with load less than αopt (c + εc) where n = |V (G)|, and P c(e) c = e∈E(G) . We use the solution method of Khanna [2] who presented an ε-approximation n scheme for the case of an undirected ring with c uniform. By definition, an ε-approximation scheme for a minimization problem is an algorithm which, for any ε > 0, returns a solution with value at most 1 + ε times the optimum value. In this sense the method of this section is not an ε-approximation scheme since it does not approximate αopt . However, for M > 0, in the class of balanced bidirected ring routing problem instances, where c ≤ M c(e) holds for all edge e, our method is an M ε-approximation scheme. Many problem instances in practice arising from an SDH backbone network belong to such a class with reasonably small M , in particular the instances where c is uniform. For s, t ∈ V (G) the long st-path is defined to be the longest st-path in G, or to be the forward one if the two paths are of equal length. Recall that α∗ denotes the fractional optimum to the balanced bidirected ring routing problem. Let α′ ≥ α∗ be any real number and let  E ′ = f ∈ E(H) : d(f ) > 32 εα′ c . Note that α′ P e∈E(G) c(e) ≥ α∗ P e∈E(G) c(e) ≥ P f ∈E ′ d(f ) > |E ′ | 32 εα′ c. 3 n. If α′ ≥ αopt then less than 3ε edges of E ′ are routed in the long path in any Hence |E ′ | < 2ε optimum routing, since otherwise the sum of the loads would be more than P P 2 3 n ′ ′ ′ e∈E(G) c(e), e∈E(G) c(e) ≥ αopt 3 εα c · ε · 2 = nα c = α which is impossible. Thus, independently of whether α′ ≥ αopt or not, for all subsets E ′′ ⊆ E ′ with |E ′′ | < 3ε we do the following. We route the demands of E ′′ in the long paths and the demands of E ′ − E ′′ in the short paths. Denote the load of e ∈ E(G) in this routing of E ′ by l(e). Now denote by α∗E ′′ the optimum of the following linear program, where the sums run on f ∈ E(H) − E ′ . min α, s.t. 5 0≤ϕ≤1 X ϕ(f ) d(f ) + X (1 − ϕ(f )) d(f ) + l(e) ≤ αc(e) ∀e ∈ E(G). e∈B(f ) e∈F (f ) Note that the maximum value of a demand in E(H) − E ′ is at most 32 εα′ c. Hence exactly as in the previous section, we can find a routing of E(H) − E ′ with load less than α∗E ′′ c − l + εα′ c. In the case when α′ ≥ αopt , in any optimum routing of H less than 3ε edges of E ′ are routed in ′ the long path, hence we get  that  one of the above routings has load less than αopt c + εα c. For ′ P |E | 3/ε any α′ , from these i=0 routings of E(H) choose the one with load at most αc + εα′ c, i such that this α is minimum.     P3/ε |E ′ | k . Using that ≤ (ek)l /ll The number of subsets E ′′ ⊆ E ′ to consider is i=0 i l holds for any integers k ≥ l, when |E ′ | ≥ 6ε we get  3/ε  X |E ′ | i=0 i 3 ≤ ε  e|E ′ | 3/ε  3ε 3 < 3  en  ε . ε 2 Since the left hand side is monotone increasing in |E ′ |, the above bound is valid when |E ′ | < 6ε , 3 too. Hence the number of subsets E ′′ ⊆ E ′ to try is Oε (n ε ). ′ ∗ Now we show how α can be chosen. It is clear that α ≤ αopt ≤ 2α∗ , since there are exactly two paths between any two nodes in G. So first determine the value of α∗ and then run the above algorithm with α′ = αi = NN+i α∗ for i = 0, . . . , N for some integer N . As we mentioned, at the point when αopt ≤ αj ≤ (1 + 1/N )αopt happens to hold, our routing has load less than αopt (c + ε(1 + 1/N )c). Thus, finally, from these N + 1 routings choose the one with load at most α(c + ε(1 + 1/N )c), such that this α is minimum. In the beginning we should also replace ε by ε/(1 + 1/N ) in the above scheme. 5 Network design The approximation algorithm presented in Section 3 gives a routing in a bidirected ring with load less than α∗ c + 23 D. Recall that we can calculate the fractional optimum α∗ by solving a linear program. Observe that α∗ < 1 means that there exists a fractional routing in the supply network G with the given capacities. Since our approximate integer solution requires less than 3 2 D additional capacity on each edge (hopefully, much less on average), this solution may be considered good in practice. On the other hand, if α∗ ≥ 1 then there exists no feasible routing with the given capacities. Hence we are facing a network design problem, where we want to increase the capacity of some edges of the ring, with minimum cost, in order to guarantee the existence of a routing satisfying the increased capacities. Formally, a widening cost we is given on each edge e ∈ E(G), measuring P the cost of increasing the capacity of edge e by one unit. We aim to find the minimum of e∈E(G) γe we such that there exists an integer routing with load at most (γe + c(e))(1 − α) on any edge e ∈ E(G). Here α is some robustness factor known a priori. Next we give a heuristic algorithm for this problem, with similar methods than that of Section 3. First we solve the fractional relaxation of the problem. X γe we , s.t. min e∈E(G) 0≤ϕ≤1 X e∈F (f ) ϕ(f ) d(f ) + X (1 − ϕ(f )) d(f ) ≤ (γe + c(e))(1 − α) e∈B(f ) 6 (3) ∀e ∈ E(G). Next uncross the split demands, and then unsplit the remaining split demands, just as in Section 3. Exactly as in Section 3, we get an integer routing of H with load less than (γe∗ + c(e))(1 − α) + 23 D, with the optimum γe∗ . P Hence we have a routing with widening cost which is at most 3D e∈E(G) we more expensive 2 than the optimum cost. We can also choose α to ensure that the load of this routing is at most γe∗ + c(e), yielding a feasible unsplit routing in the new, increased network. We mention that it is also possible to apply the method of Section 4 to yield for any ε > 0 an ∗ P algorithm polynomial in n, finding a routing with widening cost at most ε Cn e∈E(G) we more expensive than the optimum cost, where C ∗ is the minimum sum of loads of fractional routings o n ′ ′ of H in the uncapacitated ring G (one should simply define E = f ∈ E(H) : d(f ) > 32 ε Cn , where C ∗ ≤ C ′ ≤ 2C ∗ ). References [1] S. Cosares, I. Saniee, An optimization problem related to balancing loads on SONET rings. Telecom. Systems (1994) 3 165–181. [2] S. Khanna, A polynomial time approximation scheme for the SONET ring loading problem. Bell Labs Technical Journal, Spring 1997 36–41. [3] A. Schrijver, P. Seymour, P. Winkler, The ring loading problem. SIAM Rev. (1999) 41 777–791. [4] A. Tanenbaum, Computer Networks, Prentice Hall, New Jersey, 2003 [5] G. Wilfong, P. Winkler, Ring routing and wavelength translation. Proceedings of the Ninth Annual ACM-SIAM Symposium on Discrete Algorithms (San Francisco, CA), (1998) 333–341. 7