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