TR94025
A Heuristic Algorithm for the Rectilinear Steiner
Arborescence Problem
Javier Cordova
Computer Science Department
University of Puerto Rico
Arecibo, PR 00613
YannHang Lee
Computer and Information Sciences Department
University of Florida
Gainesville, FL 32611
August 17, 1994
Abstract
In this paper the following problem is considered: given a root node R in a
mesh and a set D of nodes from the mesh, construct a shortestpath tree rooted at
R that spans the set D and minimizes the number of links used.
The problem is equivalent as finding a Steiner tree in a directed mesh in which all
the links point away from the root node R. The problem of finding a Steiner tree in
such grid has been known in the literature as the Rectilinear Steiner Arborescence
(RSA) problem. Rao et. al [9] have proposed an efficient heuristic algorithm for a
special case of this problem, in which all the nodes in D lie in the first quadrant of
E2 (assuming the tree is rooted at the origin). The algorithm has time complexity
of O(I D log D ). They proved that the traffic generated by the heuristic has
an upper bound of twice of that generated by any optimal algorithm. They have
proposed an extension of this algorithm that solves the general case in which the
nodes in D lie anywhere in the plane that runs with O(I D 13 log I D ) time
complexity. We propose in this work a similar heuristic with same upper bound
that also has time complexity O(I D log I D ) but solves this general case in
which the nodes are allowed to be anywhere in E2
1 Introduction
Consider a mesh network in which a root node R is given. Let D be a set of nodes from
the mesh. We want to build a shortestpath tree rooted at R that spans the set D and
minimizes the number of links used. In a shortestpath tree the distance between the
root and every node in the tree is minimized. Constructing a shortestpath tree with
lowest traffic rooted at node R (grid M in the figure below) is equivalent to finding a
rectilinear directed Steiner tree rooted at R in a directed mesh in which all the links are
directed away from R (M' in the figure).
M M'
A A A A
.A.4 *~* ~
A A A A
6 *4* * E~Iw
1 1 1
I... ~
The problem of finding a Steiner tree given a set of points in a plane using rectilinear
distances has been proved to be an NPComplete problem [4]. On the other hand, the
problem of finding a rectilinear directed Steiner tree has been known in the literature
as the Rectilinear Steiner Arborescence (RSA) problem. The problem here is to find a
Steiner directed tree for a set D of nodes lying in the grid, rooted at point R, using only
horizontal and vertical arcs oriented away from R.
Rao et. al [9] have studied the Rectilinear Steiner Arborescence problem when the
set D lies in the first quadrant of E2, and the directed tree is rooted at the origin.
They proposed a heuristic algorithm in which a Steiner tree H for D is generated by
iterative substitution. The algorithm has time complexity O(I D I log I D ). They have
shown that 1(H) < 21(RSMA), where 1(A) is the number of links in the tree A and an
RSMA (Rectilinear Steiner Minimum Arborescence) is an optimal RSA. They proposed
a solution to the general RSA problem in which D is allowed to lie anywhere in E2.
They reduced the problem to the first quadrant version by restricting the arborescence
to contain the xaxis only between a and b (a < 0 < b), and the yaxis only between
c and d (c < 0 < d). Using the previous algorithm the best RSA in each quadrant
satisfying these conditions can be determined (for the best restricted RSA in the first
quadrant, for example, all  D 12 possible choices of b and d have to be examined, taking
R
O(I D 3 log  D ) time). The best RSA in E2 is obtained by taking the best among all
restricted RSAs.
We propose a similar heuristic, on the other hand, which is a simple extension of their
algorithm and generates a suboptimal RSMA when D lies anywhere in the grid, main
tains the same upper bound for the number of links in the tree, and can be implemented
in a similar way with time complexity being also O(I D I log I D ). The heuristic is
summarized in the following.
2 Heuristic Algorithm
For two grid points p and q, let maxo(p, q) be the grid point that maximizes the overlap
ping in the shortest paths from the origin to the points p and q. The point maxo(p, q)
is defined in the following way, given that p = (xp, y,), q = (x,, y,), for z = x or y
coordinates: if z,, zq > 0 then the zcoordinate of maxo is given by min(zp, z,). Else if
Zp, zq < 0 then the zcoordinate is max(zp, z,). Otherwise it is 0. We assume that the
root of the tree is the origin. This definition of maxo(p, q) allows us to combine points
from adjacent quadrants. This was not handled by the algorithm proposed in [9].
Let Lz denote the four lines lying in the grid given by I x I + y = z. A set of points
P is a cover for a set of points Q if Vq G Q there exists a point p G P with a path from
p to q. Let Qz be the subset of Q lying above Lz. Then let MC(Q,z) denote the set
of points on L, with minimum cardinality that covers Qz. It follows directly from this
Definition that any RSA for D intersects L, at least MC(D, z) times for every z.
A heuristic algorithm generates a suboptimal RSA (SRSA) by iteratively substituting
two points in D by the point maxo(p, q) until the origin remains. Again, the pair of points
p, q are chosen to maximize II maxo(p, q) .
Let Dz denote the set D at the point in the construction of the SRSA in which
the last possible pair of points p, q having II maxo(p, q) I> z have been joined, and let
Wz = {p E Dz : p I> z}. The nodes in the initial set D are called sinks.
Lemma 1 During the construction of the SRSA, for any z > 0, there can be at most
one point in Wz on or above the horizontal line y = (0, z) (also, there is at most one
point in Wz on or below the horizontal line y = (0, z), at most one point on or to the
right of the vertical line x = (z, 0) and at most one on or to the left of the vertical line
x = (z,)).
Proof:
Let p, q e Wz with yp, yq > z. Let y, > y,. Then max,(p,q) = (x, yq) for some value x.
Hence (x, y,) > > z, contradicting the fact that p, q E W,. A similar proof works for
the other 3 lines. o
The following lemma is an adapted version of lemma 4 in [9].
Lemma 2 Let pi = (xi, y<) be a point in a SRSA generated by the heuristic. If xi 0
and yi f 0, then there must exist a sink on the vertical path x = xi (horizontal path
y = yi) starting at pi.
Proof:
Assume, w.l.g., that pi lies in the first quadrant. The proof is by induction on the number
of descendents in the tree of pi. If pi does not have descendents then it is a sink, and the
result immediately follows. Suppose, on the contrary, that pi = maxo(pj, ). Observe
that these two points belong also to the first quadrant. Thus xi = min(xj, zk), say Xk,
and ;/ > yi. By induction there is a sink on the vertical path x = Xk starting at pj. The
fact that ;/ > yi implies that this sink is also on the vertical path x = Xi = Xk staring at
pi. A similar argument can be made for the ycoordinate. o
Now assume that the points p and q lie in the first quadrant. The following two
lemmas are taken directly from [9]. The proofs can be found in their paper.
Lemma 3 During the construction of the SRSA, for any z > 0 and p, q e W,,
1. xp f xq and yp # y,,
2. xp < xq if and ol.i if y, > y,
3. if xp < xq, then xp + yq < z.
Lemma 4 Let p, q E W, with xp < xq. Tli, there exists a sink either on the horizontal
path between p and (xp, yp) or on the vertical path between (xq, yp) and q.
It is straight forward to prove similar results when both of the points p and q lie in
any of the other three quadrants. The following theorem provides an upper bound for
the traffic generated for the multicast tree by the heuristic. Its proof is similar to the
proof of the upper bound provided in [9].
Theorem 1 l(SRSA) < 21(RSMA).
Proof:
First, note that for any RSA A, 1(A) = Ez(AnLz). We know that I LnA I>1 MC(D, z)
for any RSA A. Thus it is sufficient to show that  SRSA n L I< 2  MC(D, z)
for any z.
For any given z, order the points in Wz into p1,p2,... ,PlWz circularly as follows:
first take the nodes in the first quadrant and order them by increasing values of the
xcoordinates (with x1 > 0), then the nodes in the second quadrant by decreasing order
of the xcoordinate, and so on.
It can be shown that MC(D, z) must contain distinct points for each pair of points
P2i1,P2i, for i = 1,2,..., [L W /2]. Consider the two pairs of points (/'. _1,p2i), and
(/'. +, P2i+2), for any given i in the above range. Assume, for simplicity, that these points
lie in the first quadrant. By Lemma 4 there must exist a sink on the horizontal path
y = ;,i _1 between p2iI and (2i, ;/. 1) or on the vertical path x = x2i between (x2i, ; 1. 1)
and p2i. Hence MC(D, z) must contain a point whose xcoordinate lies between z ;/. 1
and x2i. Also, there is a sink on the horizontal path y = ;/. +[ between p2i+1 and
(x2i+2, ;/. +) or on the vertical path x = x2i+2 between (x2i+2, +I) and p2i+2. Hence
MC(D, z) must contain a point whose xcoordinate lies between z ;/. +[ and x2i+2.
Since x2i + ;.. +I < z by Lemma 3, then the above two points are different. A similar
result holds no matter where the points lie.
Thus MC(D,z) contains at least [ W, 1 /2] points. This implies that if W, I is even,
then the SRSA generated by the heuristic intersects L, at most 21 MC(D, z) I times.
If  W I is odd, then consider pi.
Case 1: Xp1, 0.
By Lemma 2, there is a sink s on the vertical path x = Xp, starting at pi. Thus
MC(D, z) must contain a point whose xcoordinate is between 0 and Xp,. For the rest
of the  W,  1 points in Wz there correspond at least (I Wz 1)/2 distinct points
in MC(D, z), and it is easy to see that these points must be different from the point in
MC(D, z) corresponding to pi. 1 Thus MC(D,z) contains at least I W, 1 /2 distinct
points.
1We can assume here that II pw, < z. Otherwise, we can order the nodes circularly the other way
around, starting with pw and finishing with pi.
Case 2: xp, = 0. We can assume now that Wz contains points on or above the points
(0, z), (z, 0), (0, z), (z, 0) in the same vertical or horizontal lines. Otherwise, we could
order the points in Wz starting with the points in some other quadrant and reduce the
problem to Case 1.
Assume, w.l.g., that there are 2c points in Wz in the first quadrant, for some positive
integer c. Note that since now we are assuming that  W I is odd, at least one quadrant
must have an even number of points in W,. Thus MC(D,z) must contain at least c
points in the first quadrant.
Case 2a: MC(D, z) contains at least c + 1 points in the first quadrant.
MC(D, z) must contain at least L(I Wz 2c)/2] distinct points in the other three
quadrants. Thus MC(D, z) contains at least [L Wz /2] c c+ 1 > W, /2 distinct
points.
Case 2b: MC(D, z) contains exactly c points in the first quadrant.
We will show that at least one of the points (0, z) or (z, 0) cannot be one of these
c points in MC(D, z). Consider the first 2c 2 points in Wz in the first quadrant, not
including pi. There must be c 1 distinct points in MC(D, z) to cover them, and none of
them is (0, z) or (z, 0). Thus one of these two points is not in MC(D, z). Assume, w.l.g.,
that pi MC(D, z). Thus between xpw and 0 there is a different point in MC(D, z)
required to cover the sink on or above pwZ. For the rest of the  W I 2c 1 points
in W, there must be (I W I2c 1)/2 distinct points in MC(D, z). Thus MC(D, z)
contains at least [L W, 1 /2] c + c + 1 > W /2 distinct points.
Thus W, contains at most 2 1 MC(D, z) I points, and therefore the SRSA generated
intersects L, at most 2  MC(D, z) times. Since z is arbitrary this holds for any z, and
the theorem is proved. o
The implementation presented in [9] for their algorithm can be adapted for our al
gorithm. The key idea is that Steiner points can only be introduced by the heuristic
from adjacent points in W,. To implement the algorithm a priority queue is used con
taining all the sinks below the lines in Lz and all the  W, I 1 potential new Steiner
points maxo(p, q) for each pair of adjacent points p, q e Wz. See [9] for details of the
implementation.
To evaluate the performance of the algorithm we ran simulation programs for an 8*8
mesh both for the optimal and the heuristic algorithm. The optimal solution for 100
randomly generated groups was found by exhaustive search of all shortestpath trees,
and compared to the suboptimal solution found by the heuristic algorithm for the same
multicast groups. The traffic is the number of links in the multicast tree. The results
are shown in the graph above. To get the worst case line we added to the optimal traffic
for each number of destinations the highest difference found between the optimal traffic
and the traffic computed by the heuristic. It can be seen that even in the worst case the
values computed are much closer to the optimal values than to the upper bound.
2 5 8 16 32 40
Number of Destinations
48 56 64
Figure 1: Optimal Algorithm vs Heuristic
References
[1] Foulds L.R., Graham R.L., "The Steiner Problem in Phylogeny is NPComplete",
Advances in Applied Mathematics, Vol. 3, 1982, pp. 4349.
120.0
100.0
80.0
60.0
40.0
20.0
0.0
[2] Garey M.R., Graham R., Johnson D.S., "The Complexity of Computing Steiner
Minimal Trees", Siam J. of Applied Mathematics, Vol. 32, 1977, pp. > ;','.
[3] Garey M.R., Johnson D.S., Computers and Intracl',1'.1.l. W.H. Freeman and Com
pany, San Francisco, 1979.
[4] Garey M.R., Johnson D.S., "The Rectilinear Steiner Tree Problem is NPComplete",
SIAM J. of Applied Mathematics, Vol. 32, No. 4, June 1977, pp. '1.834.
[5] Hakimi S.L., "Steiner's Problem in Graphs and its Impli, ., l,,1", Networks, Vol. 1,
1971, pp. 113133.
[6] Hanan M., "On Steiner's Problem with Rectilinear Distance", Siam J. of Applied
Mathematics, Vol. 14, 1966, pp. 255265.
[7] Hwang F.K., "The Rectilinear Steiner Problem", J. Design and Automation Fault
Tolerance Anal, Vol. 2, 1978, pp. 303310.
[8] Hwang F.K., Richards D.S., "Steiner Tree Probl. n ", Networks, Vol. 22, 1992, pp.
5589.
[9] Rao S.K., Sadayappan P., Hwang F., Shor P.W., "The Rectilinear Steiner Arbores
cence Problem", Algorithmica, 7, 1992, pp. 2772".
[10] Winter P., "Steiner Problem in Networks: A Survey", Networks, Vol. 17, 1987, pp.
129167.
