Approximation algorithms for some optimum communication spanning tree problems

22  Download (0)

Full text

(1)

Approximation algorithms for some optimum communication spanning tree problems

Bang Ye Wu

a

, Kun-Mao Chao

b;∗

, Chuan Yi Tang

c

aChung-Shan Institute of Science and Technology, P.O. Box No. 90008-6-8, Lung-Tan, Taiwan

bDepartment of Life Science, National Yang-Ming University, Taipei, Taiwan

cDepartment of Computer Science, National Tsing Hua University, Hsinchu, Taiwan Received 23 January 1998; revised 22 January 1999; accepted 6 July 1999

Abstract

Let G = (V; E; w) be an undirected graph with nonnegative edge length function w and non- negative vertex weight function r. The optimal product-requirement communication spanning tree (PROCT) problem is to nd a spanning tree T minimizingP

u;v ∈ Vr(u)r(v)dT(u; v), where dT(u; v) is the length of the path between u and v on T. The optimal sum-requirement commu- nication spanning tree (SROCT) problem is to nd a spanning tree T such that P

u;v ∈ V(r(u) + r(v))dT(u; v) is minimized. Both problems are special cases of the optimum communication spanning tree problem, and are reduced to the minimum routing cost spanning tree (MRCT) prob- lem when all the vertex weights are equal to each other. In this paper, we present an O(n5)-time 1.577-approximation algorithm for the PROCT problem, and an O(n3) time 2-approximation algorithm for the SROCT problem, where n is the number of vertices. We also show that a 1.577-approximation solution for the MRCT problem can be obtained in O(n3)-time, which im- proves the time complexity of the previous result. ? 2000 Elsevier Science B.V. All rights reserved.

Keywords: Approximation algorithms; Spanning trees; Network design

1. Introduction

Consider the following network design problem proposed by Hu in [3]. Let G = (V; E; w) be an undirected graph with nonnegative edge length function w. The vertices may represent cities and the edge lengths represent the distances. We are also given the

Corresponding author.

E-mail addresses: bangye@ms16.hinet.net (B.Y. Wu), kmchao@ym.edu.tw (K. Chao), cytang@

cs.nthu.edu.tw (C.Y. Tang)

0166-218X/00/$ - see front matter ? 2000 Elsevier Science B.V. All rights reserved.

PII: S0166-218X(99)00212-7

(2)

requirements (u; v) for each pair of vertices, which may represent the number of telephone calls between the two cities. For any spanning tree T of G, the communi- cation cost between two cities is de ned to be the requirement multiplied by the path length of the two cities on T, and the communication cost of T is the total commu- nication cost summed over all pairs of vertices. Our goal is to construct a spanning tree with minimum communication cost. That is, we want to nd a spanning tree T such that P

u;v ∈ V(u; v)dT(u; v) is minimized, where dT(u; v) is the distance between u and v on T.

The above problem is called the optimum communication spanning tree (OCT) prob- lem. Let r be a given nonnegative vertex weight function. We consider the following two special cases of the OCT problem in this paper.

• The requirement between a pair of vertices is assumed to be the product of their vertex weights, i.e., (u; v) = r(u) × r(v). The product-requirement communication (p.r.c.) cost of a tree T is de ned by Cp(T)=P

u;vr(u)r(v)dT(u; v). Given a graph G, the optimal product-requirement communication spanning tree (PROCT) problem is to nd a spanning tree T of G such that Cp(T) is minimum among all possible spanning trees. If a vertex v represents a city, then r(v) may be thought of as the population of that city. The communication requirement of a pair of vertices is assumed proportional to the product of the populations of the two cities.

• The requirement between a pair of vertices is de ned to be the sum of their vertex weights, i.e., (u; v) = r(u) + r(v). The sum-requirement communication (s.r.c.) cost of a tree T is de ned by Cs(T) =P

u;v(r(u) + r(v))dT(u; v). Given a graph G, the optimal sum-requirement communication spanning tree (SROCT) problem is to nd a spanning tree T of G such that Cs(T) is minimum among all possible spanning trees. The SROCT problem may arise in the following situation: For each node in the network, there is an individual message to be sent to every other node and the amount of the message is proportional to the weight of the receiver. With this assumption, the communication cost of a spanning tree T isP

u;vr(v)dT(u; v), which is exactly one half of Cs(T).

The two communication costs between a pair of vertices are illustrated in Fig. 1.

When the vertex weights are all equal, e.g., r(v) = 1 for each vertex v, both the PROCT and the SROCT problems are reduced to the minimum routing cost span- ning tree (MRCT) problem (also called the shortest total path length spanning tree problem). The MRCT problem was shown to be NP-hard in [4] (also listed in [2]).

Thus the two problems are also NP-hard. In [6], a 2-approximation algorithm for the

Fig. 1. The p.r.c. and s.r.c. costs.

(3)

Fig. 2. The relationship of the OCT, PROCT, SROCT, and MRCT problems.

MRCT was presented. Recently, a polynomial time approximation scheme (PTAS) for the MRCT problem was proposed and an application to computational biology was discussed in [7]. In this paper, we present a 1.577-approximation algorithm for the PROCT problem, and a 2-approximation algorithm for the SROCT problem. The relationship of the four problems is shown in Fig. 2.

The PTAS for the MRCT problem in [7] was obtained by showing the following properties:

1. The MRCT problem with general inputs is equivalent to the problem with metric inputs (complete graphs in which edge lengths obey the triangle inequality).

2. A k-star is a spanning tree with at most k internal nodes. The minimum routing cost k-star is a ((k + 3)=(k + 1))-approximation solution for the metric MRCT problem.

3. For a xed k, the minimum routing cost k-star on a metric can be found in poly- nomial time.

In fact, the rst and the second properties remain true for the PROCT problem.

They can be obtained by straightforward generalizations of the previous results. Con- sequently, a polynomial time algorithm for the minimum p.r.c. cost k-star is a PTAS for the PROCT problem. However, there is no obvious way to generalize the algor- ithm for the minimum routing cost k-star to that for the minimum p.r.c. cost k-star.

In this paper, we show that the minimum p.r.c. cost 2-star can be found in O(n5) time by solving a series of min-cut problems. By the result in [7], such a 2-star is a

53-approximation solution of the PROCT problem. With a more precise analysis, we shall show that such a 2-star is in fact a 1.577-approximation solution. This result also improves the approximation ratio of the minimum routing cost 2-star for the MRCT problem from 53 to 1.577.

(4)

The previous result in [7] give us an O(n4) time algorithm for the minimum routing cost 2-star. We shall show that the minimum routing cost 2-star can be solved in O(n3log n) time. Combined with the improvement on the approximation ratio, this leads to an ecient 1.577-approximation algorithm for the MRCT problem. Furthermore, we show that it is possible to nd a 1.577-approximation solution for the MRCT problem in O(n3) time by constructing a special 2-star instead of the minimum routing cost 2-star.

For the SROCT problem, an O(n3) time 2-approximation algorithm is given in this paper. For any graph, we show that there exists a vertex v such that the shortest-path tree rooted at v is a 2-approximation solution of the SROCT problem.

The remaining sections are organized as follows: In Section 2, some de nitions and notations are given. The PROCT problem is discussed in Section 3, and the fast approximation algorithm for the MRCT problem is presented in Section 4. The ap- proximation algorithm for the SROCT problem is proposed in Section 5. Finally, we give concluding remarks in Section 6.

2. Preliminaries

In this paper, a graph is a simple, connected and undirected graph. By G =(V; E; w), we denote a graph G with vertex set V , edge set E, and edge length function w. Both the edge length function and the vertex weight function are assumed to be nonnegative.

For any graph G, V (G) denotes its vertex set and E(G) denotes its edge set. Let w be an edge length function on a graph G. For a subgraph H of G, we de ne w(H) = w(E(H)) =P

e ∈ E(H)w(e). Similarly, let r be a vertex weight function and U ⊂ V (G). We de ne r(U) =P

v ∈ Ur(v) and r(H) = r(V (H)) for any subgraph H of G. We shall also use n and R to denote |V (G)| and r(G).

Deÿnition 1. Let G = (V; E; w) be a graph. For u; v ∈ V , SPG(u; v) denotes a short- est path between u and v on G. The shortest path length is denoted by dG(u; v) = w(SPG(u; v)).

Deÿnition 2. Let H be a subgraph of G. For a vertex v ∈ V (G), we use dG(v; H) to denote the shortest distance from v to H, i.e., dG(v; H) = minu ∈ V (H)dG(v; u).

The p.r.c. cost and the s.r.c cost of a tree are de ned in the previous section. We now de ne the routing cost of a tree.

Deÿnition 3. For a tree T, the routing cost of T is de ned by C(T) = P

u;v ∈ V (T)

dT(u; v).

Deÿnition 4. Let T be a tree and e ∈ E(T). Assume X and Y be the two subtrees resulted by deleting e from T. We de ne the routing load on edge e to be l(T; e) = 2|V (X )| × |V (Y )|.

(5)

Lemma 1. For a tree T with edge length function w; C(T) =P

e ∈ E(T)l(T; e)w(e). In addition; C(T) can be computed in O(n) time; where n is the number of vertices in T.

Proof.

C(T) = X

u;v ∈ V (T)

dT(u; v)

= X

u;v ∈ V (T)

 X

e ∈ SPT(u;v)

w(e)

= X

e ∈ E(T)

 X

u ∈ V (T)

|{v|e ∈ SPT(u; v)}|

 w(e)

= X

e ∈ E(T)

l(T; e)w(e):

To compute C(T), we only need to nd the routing load on each edge. This can be done in O(n) time by rooting T at any node and traversing T in a postorder sequence.

Similarly, we de ne the product-requirement communication load (p.r.c. load) and the sum-requirement communication load (s.r.c. load) as follows:

Deÿnition 5. Let T be a tree with vertex weight function r and e ∈ E(T). Assume X and Y be the two subtrees resulted by deleting e from T. The p.r.c. load on edge e is de ned by lp(T; r; e) = 2r(X )r(Y ). The s.r.c. load on edge e is de ned by ls(T; r; e) = 2(|V (X )|r(Y ) + |V (Y )|r(X )).

The following corollaries are similar to Lemma 1.

Corollary 2. For a tree T with edge length function w and vertex weight function r;

Cp(T) =P

e ∈ E(T)lp(T; r; e)w(e). In addition; Cp(T) can be computed in O(n) time;

where n is the number of vertices in T.

Corollary 3. For a tree T with edge length function w and vertex weight function r; Cs(T) =P

e ∈ E(T)ls(T; r; e)w(e). In addition; Cs(T) can be computed in O(n) time;

where n is the number of vertices in T.

For example, let T be the tree in Fig. 1. The p.r.c. load of edge (b; c) is 2(3 + 0)(1 + 2 + 1) = 24 and the p.r.c. cost of T can be computed as follows:

Cp(T) = 2 × 3 × 4 × w(a; b) + 2 × 3 × 4 × w(b; c)

+ 2 × 5 × 2 × w(c; d) + 2 × 6 × 1 × w(c; e) = 172:

(6)

The s.r.c. load of edge (b; c) is 2(2)(1 + 2 + 1) + 2(3 + 0)(3) = 34 and the s.r.c. cost of T can be computed by

Cs(T) = 32 × w(a; b) + 34 × w(b; c) + 26 × w(c; d) + 20 × w(c; e) = 238:

Deÿnition 6. A metric graph is a complete graph whose edge lengths satisfy the triangle inequality.

Deÿnition 7. The metric closure of a graph G is the complete graph with vertex set V (G) and edge length function , where (u; v) = dG(u; v) for any pair of vertices u and v.

Note that the metric closure of a graph is a metric graph.

Deÿnition 8. Let T be a rooted tree. For any v ∈ V (T); Tv denotes the subtree with root v.

Deÿnition 9. The centroid of a tree T is a vertex m ∈ V (T) such that if we root T at m, then |V (Tv)|6|V (T)|=2 for any vertex v 6= m.

The existence of the centroid of a tree can be easily proved. If we root a tree T at any vertex, then there must exist a vertex m such that |V (Tm)| ¿ |V (T)|=2 and

|V (Tv)|6|V (T)|=2 for any v ∈ V (Tm) \ {m}. Since |V (T)| − |V (Tm)| is also no more than |V (T)|=2, we conclude that m is the centroid. Similarly, we de ne the r-centroid of a tree with vertex weight function r.

Deÿnition 10. Let T be a tree with vertex weight function r. The r-centroid of a tree T is a vertex m ∈ V (T) such that if we root T at m, then r(Tv)6r(T)=2 for any vertex v 6= m.

For example, both the centroid and the r-centroid of the tree in Fig. 1 are vertex c.

If r(b) = 2 instead of zero, the r-centroid will be vertex b.

3. The PROCT problem

In this section, we discuss the PROCT problem. Let G=(V; E; w) and vertex weight r be the input of the PROCT problem. Our algorithm works as follows:

• Construct the metric closure G of G.

• Find the minimum p.r.c. cost 2-star T of G.

• Transform T into a spanning tree Y of G with Cp(Y )6Cp(T).

The result for the PROCT problem is stated in the following theorem:

Theorem 4. There is a 1:577-approximation algorithm with time complexity O(n5) for the PROCT problem.

(7)

To prove the correctness of the theorem, we show the following in the next subsec- tions:

• Given any spanning tree T of G, we can compute from T a spanning tree Y of G such that Cp(Y )6Cp(T).

• For any  ¿ 0, if T is a (1 + )-approximation solution of the PROCT problem with input G, then Y is a (1 + )-approximation solution of the PROCT problem with input G, where the PROCT problem has the same de nition as the PROCT problem except that the input is always a metric graph.

• The minimum p.r.c. cost 2-star T is a 1.577-approximation solution of the PROCT problem with input G.

• The overall time complexity is O(n5).

3.1. A reduction from the general to the metric case

In this subsection, we discuss the transformation algorithm and the related results.

The algorithm comes from Wu et al. [7]. It was developed for the MRCT problem, and we show that it also works for the PROCT problem. Let G = (V; E; w) and G = (V; V × V; ) be the metric closure of G. Any edge (a; b) in G is called a bad edge if (a; b) 6∈ E or w(a; b) ¿ (a; b). Given any spanning tree T of G, the algorithm rst computes the shortest paths for all pairs of vertices. Then a tree Y is constructed by iteratively replacing the bad edges until there exists no bad edge. Since Y has no bad edge, (e) = w(e) for any edge e ∈ E(Y ), and Y can be thought of as a spanning tree of G with the same cost. The algorithm is listed below.

Algorithm Remove-bad

Input: a spanning tree T of G

Output: a spanning tree Y of G such that Cp(Y )6Cp(T).

Compute all-pairs shortest paths of G.

(I) while there exists a bad edge in T

Pick a bad edge (a; b). Root T at a.

= assume SPG(a; b) = (a; x; : : : ; b) and y is the parent of x= if b is not an ancestor of x then

Y= T ∪ (x; b) − (a; b); Y∗∗= Y∪ (a; x) − (x; y);

else

Y= T ∪ (a; x) − (a; b); Y∗∗= Y∪ (b; x) − (x; y);

endif

if Cp(Y) ¡ Cp(Y∗∗) then Y = Y else Y = Y∗∗ endif

(II) T = Y

endwhile

The following claim is the same as in [7]. We omit the proof.

Claim 5. The loop (I) is executed at most O(n2) times.

Claim 6. Before instruction (II) is executed; Cp(Y )6Cp(T).

(8)

Fig. 3. Remove bad edge (a; b). Case 1 (left) and Case 2 (right).

Proof. For any node v, let Sv= V (Tv). As shown in Fig. 3, there are two cases.

Case 2 is identical to Case 1 if we re-root the tree at b and exchange the roles of a and b. Therefore, we only need to show the inequality for Case 1, i.e. x ∈ Sa\Sb.

If Cp(Y)6Cp(T), the result follows. Otherwise, let U1=Sa\Sb and U2=Sa\Sb\Sx. Since in Y the distance does not change for any two vertices both in U1 (or both in Sb), we have

Cp(T) ¡ Cp(Y) ⇒ X

u ∈ U1

X

v ∈ Sb

r(u)r(v)dT(u; v) ¡ X

u ∈ U1

X

v ∈ Sb

r(u)r(v)dY(u; v):

Since for all u ∈ U1 and v ∈ Sb; dT(u; v)=dT(u; a)+(a; b)+dT(b; v) and dY(u; v)=

dT(u; x) + (x; b) + dT(b; v), we have X

u ∈ U1

X

v ∈ Sb

r(u)r(v)(dT(u; a) + (a; b) + dT(b; v))

¡ X

u ∈ U1

X

v ∈ Sb

r(u)r(v)(dT(u; x) + (x; b) + dT(b; v))

⇒ r(Sb) X

u ∈ U1

r(u)dT(u; a) + r(U1)r(Sb)(a; b)

¡ r(Sb) X

u ∈ U1

r(u)dT(u; x) + r(U1)r(Sb)(x; b)

X

u ∈ U1

r(u)dT(u; a) + r(U1)(a; b) ¡ X

u ∈ U1

r(u)dT(u; x) + r(U1)(x; b):

Note that r(Sb) ¿ 0 since the strict inequality holds. By the de nition of the metric closure, we have (a; b) = (a; x) + (x; b), and then

X

u ∈ U1

r(u)(dT(u; a) − dT(u; x)) ¡ − r(U1)(a; x): (1)

Now let us consider the cost of Y∗∗. (Cp(Y∗∗) − Cp(T))=2 = X

u ∈ U2

X

v ∈ Sx

r(u)r(v)(dY∗∗(u; v) − dT(u; v))

+ X

u ∈ U1

X

v ∈ Sb

r(u)r(v)(dY∗∗(u; v) − dT(u; v)):

(9)

Since dY∗∗(u; v)6dT(u; v) for u ∈ U1 and v ∈ Sb, the second term is not positive. By observing that dT(u; v)=dT(u; x)+dT(x; v) and dY∗∗(u; v)=dT(u; a)+(a; x)+dT(x; v) for any u ∈ U2 and v ∈ Sx, we have

(Cp(Y∗∗) − Cp(T))=2

6 X

u ∈ U2

X

v ∈ Sx

r(u)r(v)(dT(u; a) + (a; x) − dT(u; x))

=r(Sx) X

u ∈ U2

r(u)(dT(u; a) + (a; x) − dT(u; x))

=r(Sx) X

u ∈ U2

r(u)(dT(u; a) − dT(u; x)) + r(U2)r(Sx)(a; x)

6r(Sx) X

u ∈ U1

r(u)(dT(u; a) − dT(u; x)) + r(U2)r(Sx)(a; x) (2)

¡ − r(U1)r(Sx)(a; x) + r(U2)r(Sx)(a; x) (3) 60:

Eq. (2) is obtained by observing that U1\U2= Sx and dT(u; a) ¿ dT(u; x) for any u ∈ Sx. Eq. (3) is derived by Eq. (1). Therefore, Cp(Y∗∗) ¡ Cp(T) and the result fol- lows.

The following lemma comes from the above two claims and the fact that the all-pairs shortest paths can be found in O(n3) time.

Lemma 7. Given a spanning tree T of G; the algorithm Remove bad constructs a spanning tree Y of G with Cp(Y )6Cp(T) in O(n3) time.

Let PROCT(G) denote the optimum solution of the PROCT problem with input graph G. The above lemma implies that Cp(PROCT(G))6Cp(PROCT( G)). It is easy to see that Cp(PROCT(G))¿Cp(PROCT( G)). Therefore, we have the following corol- lary.

Corollary 8. Cp(PROCT(G)) = Cp(PROCT( G)).

Corollary 9. If there is a (1 + )-approximation algorithm for PROCT problem with time complexity O(f(n)); then there is a (1 + )-approximation algorithm for PROCT with time complexity O(f(n) + n3).

Proof. Let G be the input graph for a PROCT problem. We can construct G in time O(n3) (see e.g. [1]). If there is a (1 + )-approximation algorithm for the PROCT

(10)

problem, we can compute in time O(f(n)) a spanning tree T of G such that Cp(T)6(1 + )Cp(PROCT( G)). Using Algorithm Remove bad, we can then construct a spanning tree Y of G such that Cp(Y )6Cp(T)6(1+)Cp(PROCT( G))=(1+)Cp(PROCT(G)).

The overall time complexity is then O(f(n) + n3).

3.2. Finding the minimum p.r.c. cost 2-star

In this subsection, we present an algorithm for nding a 2-star T of a metric graph such that Cp(T) is minimum among all possible 2-stars. In the next subsection, we shall show that T is a 1.577 approximation solution for the PROCT problem. Combining the result of Corollary 9, we obtain a 1.577-approximation algorithm for the PROCT problem. We de ne a notation for 2-stars as follows:

Deÿnition 11. Let G =(V; E; w) be a metric graph. A 2-star of G is a spanning tree of G with at most two internal nodes. Assume x ∈ X and y ∈ Y , and X ,Y be a partition of V . We use 2star(x; y; X; Y ) to denote a 2-star with edge set {(x; v) | v ∈ X; v 6= x} ∪ {(y; v) | v ∈ Y; v 6= y} ∪ {(x; y)}.

The next lemma follows immediately from Lemma 2, and we omit the proof.

Lemma 10. Let T = 2star(x; y; X; Y ) and R = r(T).

Cp(T) = 2r(X )r(Y )w(x; y) + 2X

v ∈ X

r(v)(R − r(v))w(x; v)

+ 2X

v ∈ Y

r(v)(R − r(v))w(y; v):

Before presenting our algorithm, we brie y explain why the minimum p.r.c. cost 2-star (or even k-star) cannot be found by the algorithm in [7]. Any k-star can be described by a triple (S; ; L), where S = {v1; : : : ; vk} ⊆ V is the set of k distinguished vertices which may have degree more than one,  is a spanning tree topology on S, and L = (L1; : : : ; Lk), where Li⊆ V \S is the set of vertices connected to vertex vi∈ S. Let A = (n1; : : : ; nk) be a nonnegative k-vector (a vector whose components are k nonnegative integers) such that Pk

i=1ni= n − k. We say that a k-star (S; ; L) has the con guration (S; ; A) if ni = |Li| for all 16i6k. For a xed k, the total number of con gurations is O(n2k−1) since there are nk

choices for S; kk−2 possible tree topologies on k vertices, and 

n−1k−1

 possible such k-vectors. Note that any two k-stars with the same con guration have the same routing load on their corresponding edges.

Any vertex v in V \ S that is connected to a node s ∈ S contributes to the (standard) routing cost a term of w(v; s) multiplied by its routing load of 2(n − 1). Since all these routing loads are the same, the best way of connecting the vertices in V \S to nodes

(11)

in S, is obtained by nding a minimum-cost way of matching up the nodes of V \S to those in S which obeys the degree constraints on the nodes of S imposed by the con guration, and the costs are the edge weights w. This problem can be solved in polynomial time for a given con guration (by a straightforward reduction to an instance of minimum-cost perfect matching).

The reason why we cannot nd the minimum p.r.c. cost k-star by the above method is that we do not know how to nd (in polynomial time) the best way to connect the vertices in V \ S to nodes in S even for a xed con guration. Two k-stars with the same con guration may have di erent p.r.c. loads on their corresponding edges. If we modify the de nition of the con guration so that ni = r(Li), then it may be possible to nd the best leaf connection for a xed con guration in polynomial time, but the number of con gurations will be exponential.

Another question is whether the minimum p.r.c. cost k-star can be found by an incremental method similar to the one in [7]. Let us focus on the case k = 2. For xed x and y, let Xi and Yi be the vertex sets such that 2star(x; y; Xi; Yi) is the minimum routing cost 2-star with exact i leaves connected to x for i = 0; 1; : : : ; n − 2. The key point of the incremental method in [7] is the following property: There always exists a vertex v ∈ Yi such that Xi+1= Xi∪ {v}. Therefore, instead of solving many assignment problems, all Xi can be found one by one. However, the property does not hold for the p.r.c. cost 2-star. For example, assume X1= {v1} and Y1= {v2; v3}. All vertex weights on x; y; v1 are small, and r(v2) = r(v3) = a is a large number. The vertex weights are set in such a way that the p.r.c. load on edge (x; y) will be very large if {v1; v2} or {v1; v3} is the set of leaves connected to x. The large load will force X2= {v2; v3}, and this is a counterexample of the above property.

Now let us turn to our algorithm for the minimum p.r.c. cost 2-star. If for any speci ed x and y we can nd the best partition X and Y in O(f(n)) time, then we can solve the minimum p.r.c. cost 2-star problem in O(n2f(n)) time by trying all possible vertex pairs for x and y. To nd the best partition for a speci ed pair of vertices x and y, we construct an auxiliary graph Hx;y, which is an undirected complete graph with vertex set V and edge length function h. The edge length h is de ned as follows:

1. h(x; y) = 2r(x)r(y)w(x; y).

2. h(x; v) = 2r(v)(R − r(v))w(y; v) + 2r(v)r(x)w(x; y), and

h(y; v) = 2r(v)(R − r(v))w(x; v) + 2r(v)r(y)w(x; y) for any vertex v 6∈ {x; y}.

3. h(u; v) = 2r(u)r(v)w(x; y) for all u; v 6∈ {x; y}.

Let V1 and V2 be two subsets of V . We say that (V1; V2) is an x–y cut of Hx;y if (V1; V2) forms a partition of V and x ∈ V1 and y ∈ V2: The cost of an x–y cut (V1; V2) is de ned to be h(V1; V2) =P

u ∈ V1;v ∈ V2h(u; v). The following lemma comes directly from the above construction. Note that the 2-star is de ned on the metric graph G and the cost of the cut is de ned on the auxiliary graph Hx;y.

Lemma 11. If (V1; V2) is an x–y cut of graph Hx;y; then h(V1; V2) = Cp(2star (x; y; V1; V2)).

(12)

Proof.

h(V1; V2) = X

u ∈ V1;v ∈ V2

h(u; v)

= X

v ∈ V2−{y}

h(x; v) + X

u ∈ V1−{x}

h(u; y) + X

u ∈ V1−{x}

X

v ∈ V2−{y}

h(u; v) + h(x; y)

= X

v ∈ V2−{y}

(2r(v)(R − r(v))w(y; v) + 2r(v)r(x)w(x; y))

+ X

u ∈ V1−{x}

(2r(u)(R − r(u))w(x; u) + 2r(u)r(y)w(x; y))

+ X

u ∈ V1−{x}

X

v ∈ V2−{y}

2r(u)r(v)w(x; y) + 2r(x)r(y)w(x; y)

= X

v ∈ V2−{y}

2r(v)(R − r(v))w(y; v) + X

v ∈ V1−{x}

2r(v)(R − r(v))w(x; v)

+ 2r(V1)r(V2)w(x; y)

= Cp(2star(x; y; V1; V2)):

The above lemma implies that the minimum p.r.c. cost 2-star can be found by solving the minimum cut problems on O(n2) di erent auxiliary graphs. Since the minimum cut of a graph can be found in O(n3) (e.g. [1]), we have the following lemma:

Lemma 12. The minimum p.r.c. cost 2-star can be found in O(n5) time.

3.3. The approximation ratio

In this subsection, we shall investigate the approximation ratio of the minimum p.r.c.

cost 2-star for the PROCT problem. Let G=(V; E; w) and r be the input metric graph and the vertex weight of a PROCT problem, respectively. Also let T be the optimal spanning tree of the PROCT problem and m be the r-centroid of T. Root T at its r-centroid m and let 13¡ q ¡ 0:5 be a real number to be determined later. Consider all possible vertices x such that r(Tx)¿qR and r(Tu) ¡ qR for any u ∈ V (Tx)\{x}. By the de nition of the r-centroid, there are three cases:

• there are two such vertices a and b;

• there is only one such vertex a 6= m;

• m is the only one such vertex.

For each case, we select two vertices. For the rst case, a and b are selected. For the second case, a and m are selected, and the third case can be thought of as a special case in which the two vertices are both m. Without loss of generality, assume the two vertices be a and b, and M = SPT(a; b) = (a = m1; m2; : : : ; mk= b) be the path on T.

(13)

Fig. 4. Notations for showing the approximation ratio.

Also let Ui be the set of vertices which are connected to M at mi for i = 1; 2; : : : ; k.

The notations are illustrated in Fig. 4. We have the following lemma:

Lemma 13. Cp(T)¿2(1 − q)RP

xr(x)dT(x; M) + 2q(1 − q)R2w(M).

Proof. For any vertex x, let SB(x) = {u|SPT(x; u) ∩ M = ∅}. Note that r(SB(x)) ¡ qR by the construction of M. If x ∈ Ui and y ∈ Uj, de ne g(x; y) = dT(mi; mj). Then,

Cp(T) =X

x

X

y

r(x)r(y)dT(x; y)

¿X

x

X

y 6∈ SB(x)

r(x)r(y)dT(x; y)

=X

x

X

y 6∈ SB(x)

r(x)r(y){dT(x; M) + dT(y; M) + g(x; y)}

= 2X

x

X

y 6∈ SB(x)

r(x)r(y)dT(x; M) +X

x

X

y 6∈ SB(x)

r(x)r(y)g(x; y)

¿ 2(1 − q)RX

x

r(x)dT(x; M) +X

x

X

y 6∈ SB(x)

r(x)r(y)g(x; y):

Without loss of generality, we assume r(U1)¿r(Uk). For the second term, X

x

X

y 6∈ SB(x)

r(x)r(y)g(x; y)

=2X

i¡j

r(Ui)r(Uj)dT(mi; mj)

¿2r(U1)r(Uk)dT(m1; mk) + 2Xk−1

i=2

r(Ui)(r(U1)dT(m1; mi) + r(Uk)dT(mk; mi))

¿2r(U1)r(Uk)w(M) + 2k−1X

i=2

r(Ui)r(Uk)w(M)

= 2w(M)r(Uk)(R − r(Uk)):

(14)

By the construction of M and q ¡ 0:5, we have r(U1)¿r(Uk)¿qR, and then qR6 r(Uk)6(1 − q)R. Thus r(Uk)(R − r(Uk))¿q(1 − q)R2 and this completes the proof.

Construct two 2-stars T= 2star(a; b; V − Uk; Uk) and T∗∗= 2star(a; b; U1; V − U1).

We claim that one of the two 2-stars is an approximation solution with approximation ratio max{1=(1 − q); (1 − 2q2)=(2q(1 − q))}. First, we show the following lemma:

Lemma 14. Cp(T) + Cp(T∗∗)64RP

v ∈ Vr(v)dT(v; M) + 2(1 − 2q2)R2w(M).

Proof. By Lemma 10, Cp(T) = 2 X

v 6∈ Uk

r(v)(R − r(v))w(v; a) + 2 X

v ∈ Uk

r(v)(R − r(v))w(v; b) + 2r(Uk)(R − r(Uk))w(a; b)

6 2R X

v 6∈ Uk

r(v)w(v; a) + 2RX

v ∈ Uk

r(v)w(v; b) + 2r(Uk)(R − r(Uk))w(a; b):

Similarly,

Cp(T∗∗)62R X

v ∈ U1

r(v)w(v; a) + 2RX

v 6∈ U1

r(v)w(v; b) + 2r(U1)(R − r(U1))w(a; b):

By the triangle inequality, w(x; y)6dT(x; y) for any vertices x and y. Therefore, for any vertex v ∈ U1; w(v; a)6dT(v; M). Similarly, w(v; b)6dT(v; M) for any vertex v ∈ Uk. For any vertex v 6∈ U1 ∪ Uk, by the triangle inequality, w(v; a) + w(v; b)6 2dT(v; M) + w(M). We have

Cp(T) + Cp(T∗∗) 6 4RX

v ∈ V

r(v)dT(v; M) + 2R X

v 6∈ U1∪Uk

r(v)w(M)

+ 2r(Uk)(R − r(Uk))w(a; b) + 2r(U1)(R − r(U1))w(a; b)

= 4RX

v ∈ V

r(v)dT(v; M) + 2(R2− r(U1)2− r(Uk)2)w(M)

6 4RX

v ∈ V

r(v)dT(v; M) + 2(1 − 2q2)R2w(M):

Lemma 15. There is a 2-star which is a 1:577-approximation solution of the

PROCT problem.

Proof. Trivially, T and T∗∗ are both 2-stars. By Lemma 14, we have min{Cp(T); Cp(T∗∗)}62RX

v ∈ V

r(v)dT(v; M) + (1 − 2q2)R2w(M):

By Lemma 13, the approximation ratio is max{1=(1 − q); (1 − 2q2)=(2q(1 − q))} in which 13¡ q ¡12. By setting q = (

3 − 1)=2 ' 0:366, we get the ratio 1.577.

(15)

Corollary 16. The minimum p.r.c. cost 2-star of the input graph is a 1:577- approximation solution of the PROCT problem.

4. An ecient approximation algorithm for the MRCT problem

In this section, an ecient 1.577-approximation algorithm for the MRCT problem shall be presented. Since the MRCT problem is identical to the PROCT problem with all vertex weights equal, by Lemma 15 and Corollary 9, we have the following corollary:

Corollary 17. If there is an O(f(n)) time algorithm for ÿnding the minimum routing cost 2-star of a metric graph; then the MRCT problem can be approximated with ratio 1:577 in O(f(n) + n3) time.

In [7], there is an O(n2k) time algorithm for nding the minimum routing cost k-star of a metric graph. Consequently it leads to an O(n4) time 1.577-approximation algorithm for the MRCT problem. We shall show that the time complexity can be reduced to O(n3log n) by observing the following property:

Lemma 18. Let T = 2star(x; y; X; Y ) be the minimum routing cost 2-star of a metric graph G = (V; E; w). For any u ∈ X and v ∈ Y; w(x; u) − w(y; u)6w(x; v) − w(y; v).

Proof. Similar to Lemma 10, the routing cost of the 2-star T can be computed by the following formula:

C(T) = 2|V (X )||V (Y )|w(x; y) + 2(n − 1) X

v ∈ X

w(x; v) +X

v ∈ Y

w(y; v)

! :

When |V (X )| and |V (Y )| are xed, C(T) depends only on P

v ∈ Xw(x; v) and P

v ∈ Yw(y; v). If the inequality does not hold, we can move u to Y and v to X and obtain another 2-star with smaller routing cost.

The next lemma shows the time complexity for nding the minimum routing cost 2-star.

Lemma 19. The minimum routing cost 2-star of a metric graph can be found in O(n3log n) time.

Proof. Assume that 2star(x; y; X; Y ) is the minimum routing cost 2-star with xed internal nodes x and y. De ne a function fx;y(v) = w(x; v) − w(y; v) for all v ∈ V . By sorting the values of fx;y(v), we relabel the vertices such that V = {x; y; 1; 2; : : : ; n − 2}

and fx;y(i)6fx;y(i +1) for i =1; 2; : : : ; n−3. By Lemma 18, we have fx;y(u)6fx;y(v) for any u ∈ X and v ∈ Y . Therefore, there must exist an integer k ∈ {0 : : : n − 2} such that X = {x; 1 : : : k} and Y = {y; k + 1 : : : n − 2}.

(16)

To determine the integer k, we compute the routing costs of the (n − 1) 2-stars. Let g(i) denote the routing cost of 2star(x; y; {x; 1 : : : i}; {y; i + 1 : : : n − 2}). We have

g(0) = 2(n − 1) X

16v6n−2

w(y; v) + 2(n − 1)w(x; y)

and

g(i + 1) = g(i) + 2(n − 1)fx;y(i + 1) + 2(n − 2i − 3)w(x; y)

for i = 1; 2; : : : ; n − 3. Thus for speci ed x and y, the best partition (X; Y ) can be determined in O(n) time, plus the (dominating) cost O(n log n) of the sorting procedure.

Consequently, the total time complexity is O(n3log n) since there are O(n2) such pairs of vertices x and y.

The next corollary directly comes from Corollary 17 and Lemma 19.

Corollary 20. The MRCT problem can be approximated with ratio 1:577 in O(n3log n) time.

In the rest of this section, we shall show that it is possible to approximate the MRCT problem with ratio 1.577 in O(n3) time. Instead of the minimum routing cost 2-star, we nd a 2-star with minimum routing cost among a subclass of 2-stars.

Let T be the minimum routing cost spanning tree on a metric graph G = (V; E; w) and q; a; b; M; Ui are de ned as in Section 3.3 except that each vertex has weight one.

Since |U1|¿qn and |Uk|¿qn, we can choose two vertex sets A ⊂ U1 and B ⊂ Uk such that a ∈ A and b ∈ B and |A| = |B| = qn. For the sake of convenience, we assume qn is an integer. Then we construct two 2-stars T= 2star(a; b; V \B; B) and T∗∗ = 2star(a; b; A; V \A). Note that when a = b, both the 2-stars degenerates to the same 1-star. Similar to Lemma 14 and Lemma 15, we claim a bound on the routing costs of T and T∗∗.

Claim 21. min{C(T); C(T∗∗)}61:577C(T).

Proof. By Lemma 1 and |B| = qn, C(T) = 2(n − 1)X

v 6∈ B

w(v; a) + 2(n − 1)X

v ∈ B

w(v; b) + 2|B|(n − |B|)w(a; b)

6 2nX

v 6∈ B

w(v; a) + 2nX

v ∈ B

w(v; b) + 2q(1 − q)n2w(a; b):

Similarly,

C(T∗∗)62nX

v ∈ A

w(v; a) + 2nX

v 6∈ A

w(v; b) + 2q(1 − q)n2w(a; b):

By the triangle inequality, w(u; v)6dT(u; v) for any vertices u and v. Therefore, for any vertex v ∈ A; w(v; a)6dT(v; M). Similarly, w(v; b)6dT(v; M) for any vertex v ∈ B.

(17)

For any vertex v 6∈ A∪B, by the triangle inequality, w(v; a)+w(v; b)62dT(v; M)+w(M).

We have

C(T) + C(T∗∗) 6 4nX

v ∈ V

dT(v; M) + 2n X

v 6∈ A∪B

w(M) + 4q(1 − q)n2w(a; b)

= 4nX

v ∈ V

dT(v; M) + 2(1 − 2q2)n2w(M):

Therefore,

min{C(T); C(T∗∗)}62nX

v ∈ V

dT(v; M) + (1 − 2q2)n2w(M): (4)

By Lemma 13,

C(T)¿2(1 − q)nX

v ∈ V

dT(v; M) + 2q(1 − q)n2w(M): (5)

By Eqs. (4) and (5) and setting q = 0:366, the ratio is 1.577.

The next Claim immediately follows Claim 21 and we omit the proof.

Claim 22. For a metric graph G; there exists a 1:577-approximation solution Y of the MRCT problem on G such that Y is either a 1-star or a 2-star with 0:366n leaves connected to one of its internal nodes.

Theorem 23. The MRCT problem can be approximated with ratio 1:577 in O(n3) time.

Proof. As shown in Corollary 9, we only need to consider the MRCT problem on a metric graph G = (V; E; w). Let Z1 denote the set of all 1-stars and Z2 denote the set {2star(x; y; V1; V2)|x; y ∈ V; |V1|=0:366n}. We shall show that the minimum routing cost spanning tree in Z1 and Z2 can be found in O(n3) time. Then the proof is completed by Claim 22.

First, the routing costs of all 1-stars can be computed in O(n2) time since there are n 1-stars whose cost can be computed in O(n) time. The MRCT in Z2 can be found by an algorithm similar to the one in Lemma 19.

For speci ed x and y, we rst compute fx;y(v)=w(x; v)−w(y; v) for all v ∈ V . Instead of sorting the values of fx;y(v), we nd a vertex i such that fx;y(i) is the (0:366n)th smallest element in the set {fx;y(v)|v 6= x; v 6= y}. We then divide V into Vx and Vy

such that |Vx| = 0:366n and fx;y(v)6fx;y(i) for all v ∈ Vx. By Lemma 18, the routing cost of 2star(x; y; Vx; Vy) is minimum among the set {2star(x; y; V1; V2)||V1| = 0:366n}.

Since the kth smallest element among n elements can be found in O(n) time [1]

and there are O(n2) such pairs of x and y, the total time complexity is O(n3).

(18)

Fig. 5. A tree with bad edges may have less s.r.c. cost.

5. The SROCT problem

For the PROCT problem, it has been shown that the optimal solution for a graph has the same value as the one for its metric closure. In other words, using bad edges cannot lead to a better solution. However, the SROCT problem has no such a property.

For example, consider the graph G in Fig. 5. The edge (a; b) is not in E(G), and T is a spanning tree of the metric closure of G. All three possible spanning trees of G are Y1; Y2 and Y3. It can be shown that the s.r.c cost of T is less than that of Yi for i = 1; 2; 3.

To compare the s.r.c costs, we can only focus on the coecient of k in the cost.

Note that only vertices a and x have nonzero weights. By Lemma 3, the s.r.c. cost of T can be computed as follows:

Cs(T) = ls(T; r; (a; b))w(a; b) + ls(T; r; (a; y))w(a; y) + ls(T; r; (y; x))w(x; y)

= 2(k(4 + 1) + 0(4k))2 + 2(k × 1 + 4 × 4k)(1) + 2(5k × 1 + 4 × 1)(1)

= 64k + · · · :

Similarly, we have Cs(Y1)=66k; Cs(Y2)=66k, and Cs(Y3)=90k. The example illustrates that it is impossible to transform any spanning tree of G to a spanning tree of G without increasing the s.r.c cost for some graph G, where G is the metric closure of G. But it should be noted that the example does not disprove the possibility of reducing the SROCT problem on general graphs to its metric version.

(19)

In this section, we shall present a 2-approximation algorithm for the SROCT problem on general graphs. Let G be a graph and m ∈ V (G). A shortest-path tree rooted at m is a spanning tree T of G such that dT(v; m) = dG(v; m) for each vertex v. That is, on a shortest-path tree, the path from the root to any vertex is a shortest path on the original graph. The shortest-path tree has been well studied and several ecient algorithms can be found in the literature, e.g. [1,5]. For each vertex v of the input graph, our algorithm nds the shortest-path tree rooted at v. Then it outputs the shortest-path tree with minimum s.r.c. cost. For the approximation ratio, we show that there always exists a vertex m such that the shortest-path tree rooted at m is a 2-approximation solution.

In the following, graph G =(V; E; w) and vertex weight r is the input of the SROCT problem, |V | = n, and R = r(V ).

Lemma 24. Let T be a spanning tree of G. For any vertex m ∈ V; Cs(T)6 2P

v ∈ V(nr(v) + R)dT(v; m).

Proof.

Cs(T) = X

u;v ∈ V

(r(u) + r(v))dT(u; v)

6 X

u;v ∈ V

(r(u) + r(v))(dT(u; m) + dT(m; v))

= 2 X

u;v ∈ V

(r(u) + r(v))dT(u; m)

6 2X

v ∈ V

(nr(v) + R)dT(v; m):

In the following, we use T to denote the optimal spanning tree of the SROCT problem, and use m1 and m2 to denote the centroid and r-centroid of T, respectively.

Also let P = SPT(m1; m2).

Lemma 25. For any edge e ∈ E(P); the s.r.c load ls(T; r; e)¿nR.

Proof. Let T1 and T2 be the two subtrees resulted by deleting e from T. Assume that m1∈ V (T1) and m2∈ V (T2). By the de nitions of centroid and r-centroid, |V (T1)|¿n=2 and r(T2)¿R=2. Then,

ls(T; r; e)=2 = |V (T1)|r(T2) + |V (T2)|r(T1)

= |V (T1)|r(T2) + (n − |V (T1)|)(R − r(T2))

= 2(|V (T1)| − n=2)(r(T2) − R=2) + nR=2¿nR=2:

The next lemma shows a lower bound on the minimum s.r.c. cost. Remind that dT(v; P) denotes the shortest path length from a vertex v to path P.

(20)

Lemma 26. Cs(T)¿P

v ∈ V(nr(v) + R)dT(v; P) + nRw(P).

Proof. For any vertex u, we de ne SB(u)={v|SPT(u; v)∩P=∅}. Note that |SB(u)|6n=2 and r(SB(u))6R=2 for any vertex u by the de nitions of centroid and r-centroid:

Cs(T) = X

u;v ∈ V

(r(u) + r(v))dT(u; v)

= 2 X

u;v ∈ V

r(u)dT(u; v)

¿ 2X

u ∈ V

X

v 6∈ SB(u)

r(u)(dT(u; P) + dT(v; P))

+2 X

u;v ∈ V

r(u)w(SPT(u; v) ∩ P): (6)

For the rst term in Eq. (6),

2X

u ∈ V

X

v 6∈ SB(u)

r(u)(dT(u; P) + dT(v; P))

=2X

u ∈ V

X

v 6∈ SB(u)

r(u)dT(u; P) + 2X

u ∈ V

X

v 6∈ SB(u)

r(u)dT(v; P)

¿X

u ∈ V

nr(u)dT(u; P) + 2X

v ∈ V

X

u 6∈ SB(v)

r(u)dT(v; P)

¿X

u ∈ V

nr(u)dT(u; P) +X

v ∈ V

RdT(v; P)

=X

v ∈ V

(nr(v) + R)dT(v; P): (7)

For the second term in Eq. (6),

2 X

u;v ∈ V

r(u)w(SPT(u; v) ∩ P)

=2 X

u;v ∈ V

r(u)

 X

e ∈ SPT(u;v)∩P

w(e)

= X

e ∈ E(P)

2X

v

r({u|e ∈ E(SPT(u; v))})

! w(e)

= X

e ∈ E(P)

ls(T; r; e)w(e)

¿nRw(P) (by Lemma 25): (8)

By Eqs. (6)–(8), the proof is completed.

The main result of this section is stated in the next theorem.

(21)

Theorem 27. There exists a 2-approximation algorithm with time complexity O(n3) for the SROCT problem.

Proof. Let Y and Y∗∗ be the shortest-path trees rooted at m1 and m2, respectively.

Also, for any v ∈ V , let h1(v) = w(SPT(v; m1) ∩ P) and h2(v) = w(SPT(v; m2) ∩ P). By Lemma 24,

Cs(Y)=2 6X

v ∈ V

(nr(v) + R)dY(v; m1)

6X

v ∈ V

(nr(v) + R)(dT(v; P) + h1(v)): (9)

Similarly,

Cs(Y∗∗)=26X

v ∈ V

(nr(v) + R)(dT(v; P) + h2(v)): (10)

Since h1(v) + h2(v) = w(P) for any vertex v, by Eqs. (9) and (10), we have min{Cs(Y); Cs(Y∗∗)}

6(Cs(Y) + Cs(Y∗∗))=2

6X

v ∈ V

(nr(v) + R)(2dT(v; P) + h1(v) + h2(v))

=X

v ∈ V

(nr(v) + R)(2dT(v; P) + w(P))

=2X

v ∈ V

(nr(v) + R)dT(v; P) + 2nRw(P) 62Cs(T) (by Lemma 26):

We have proved that there exists a vertex m such that any shortest-path tree rooted at m is a 2-approximation solution. Since it takes O(n2) time to construct a shortest-path tree rooted at a given vertex and the s.r.c cost of a tree can be computed in O(n) time, by computing the shortest-path tree rooted at each vertex and choosing the one with minimum s.r.c cost, a 2-approximation solution of the SROCT problem can be found in O(n3) time.

6. Concluding remarks

As mentioned in Section 1, it can be shown that the PROCT problem can be approx- imated arbitrarily close to 1 by the minimum p.r.c. cost k-star when k is suciently large. Therefore, any polynomial time algorithm for the minimum p.r.c. cost k-star will result in a PTAS for the PROCT problem. However, it is still unknown how to con- struct the minimum k-star in polynomial time when k¿3. Another interesting related problem is the Steiner MRCT problem, in which we want to minimize the total path length summed over all pairs of vertices in a given vertex subset. The Steiner MRCT

(22)

problem is a special case of the PROCT problem, in which the vertex weights are either 0 or 1. It is not hard to generalize the PTAS for the MRCT problem to a PTAS for the Steiner MRCT problem.

For the MRCT problem, an interesting question is how to eciently nd the min- imum routing cost k-star for any xed k. This will improve the time complexity of the PTAS in [7]. In this paper, for k = 2, we have shown an algorithm which is more time ecient than the one in [7]. But we did not nd a way to generalize the idea to obtain a more time ecient algorithm for the case k ¿ 2.

For the SROCT problem, the result in this paper is only the rst attempt to its ap- proximability. Future work includes improving the approximation ratio for both general and metric inputs.

Acknowledgements

We thank the anonymous referees for their careful reading and many useful com- ments.

References

[1] T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, MIT Press, Cambridge, MA, 1994.

[2] M.R. Garey, D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman and Company, San Francisco, 1979.

[3] T.C. Hu, Optimum communication spanning trees, SIAM J. Comput. 3(3) (1974) 188–195.

[4] D.S. Johnson, J.K. Lenstra, A.H.G. Rinnooy Kan, The complexity of the network design problem, Networks 8 (1978) 279–285.

[5] R.E. Tarjan, Data Structures and Network Algorithms, SIAM Press, Philadelphia, PA, 1983.

[6] R. Wong, Worst-case analysis of network design problem heuristics., SIAM J. Algebraic Discrete Math.

1 (1980) 51–63.

[7] B.Y. Wu, G. Lancia, V. Bafna, K.M. Chao, R. Ravi, C.Y. Tang, A polynomial time approximation scheme for minimum routing cost spanning trees, SIAM J. Comput. in press. (A preliminary version of this paper appears in the Proceedings of the Ninth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA’98), 1998, pp. 21–32.)

Figure

Updating...

References

Related subjects :