## A polynomial time approximation scheme for the MRCT problem

^{∗}Bang Ye Wu Kun–Mao Chao

**1** **Further improvement**

*Let S be a minimal δ-separator of bT . The strategy of algorithms shown in our previous note on*
*3/2-approximation is to “guess” the structure of S and to construct a general star with the guessed*
*structure as the core. If T* *∈star(S), by the lemmas in the previous note,*

*C(T )≤ 2n* ∑

*v**∈V (G)*

*d**G**(v, S) + (n*^{2}*/2)w(S),*

and

*C( bT )≥ 2(1 − δ)n*∑

*v**∈V*

*d*_{T}_{b}*(v, S) + 2δ(1− δ)n*^{2}*w(S).*

The approximation ratio, by comparing the two inequalities, is max{ 1

1*− δ,* 1
*4δ(1− δ)}.*

*The ratio achieves its minimum when the two terms coincide, i.e., δ = 1/4, and the minimum ratio*
*is 4/3. In fact, by using a general star and a (1/4)-separator, it is possible to approximate an*
*MRCT with ratio (4/3) + ε for any constant ε > 0 in polynomial time. The additional error ε is*
due to the diﬀerence between the guessed and the true separators.

*By this strategy, the approximation ratio is limited even if S was known exactly. The limit of*
the approximation ratio may be mostly due to that we consider only general stars. In a general star,
the vertices are always connected to their closest vertices of the core. In extreme cases, roughly
*half of the vertices connected are to both sides of a costly edge. This results in the cost (n*^{2}*/2)w(S)*
in the upper bound of a general star. To make a breakthrough, the restriction that each vertex is
connected to the closest vertex of the core needs to be relaxed.

A metric graph is a complete graph with triangle inequality, i.e., each edge is a shortest path
of its two endpoints. If the input graph is a metric graph, the core will be a two-edge path, and
each vertex is adjacent to one of the “critical vertices”— a centroid and the two endpoints of a
*path separator. Deﬁne k-stars to be the trees with at most k internal vertices. The constructed*
*approximation solution is a 3-star. More importantly, k-stars have no such restriction like general*
stars and can be used to approximate an MRCT more precisely. Later in this chapter we shall see
how it works.

*However, k-stars work only for metric graphs. The class of metric graphs is an important*
subclass of graphs. Solving the MRCT problem on metric graphs is itself meaningful. Before
considering the approximation problem on metric graphs, two questions come to our minds:

*∗*An excerpt from the book “Spanning Trees and Optimization Problems,” by Bang Ye Wu and Kun-Mao Chao
(2004), Chapman & Hall/CRC Press, USA.

*• What is the computational complexity of the MRCT problem on metric graphs, NP-hard or*
polynomial-time solvable?

*• If it is NP-hard, does its approximability diﬀer from that of the general problem?*

We shall answer the questions in the next section.

**2** **A Reduction to the Metric Case**

In this section, we shall show that the MRCT problem on general inputs can be reduced to the same problem with metric inputs. The reduction is done by a transformation algorithm.

* Definition 1: The metric closure of a graph G = (V, E, w) is the complete graph ¯G = (V, V×V, ¯w)*
in which ¯

*w(u, v) = d*

*G*

*(u, v) for all u, v∈ V .*

*Let G = (V, E, w) and ¯G = (V, V* *× V, ¯w) be its metric closure. Any edge (a, b) in ¯G is called*
*a bad edge if (a, b) /∈ E or w(a, b) > ¯w(a, b). For any bad edge e = (a, b), there must exist a path*
*P = SP*_{G}*(a, b)̸= e such that w(P ) = ¯w(a, b). Given any spanning tree T of ¯G, the algorithm can*
*construct another spanning tree Y without any bad edge such that C(Y )≤ C(T ). Since Y has no*
bad edge, ¯*w(e) = w(e) for all e∈ E(Y ), and Y can be thought of as a spanning tree of G with the*
same routing cost. The algorithm is listed in the following.

**Algorithm: Remove bad**
**Input: A spanning tree T of ¯**G.

**Output: A spanning tree Y of G such that C(Y )**≤ C(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 SP**G**(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)};*

**if C(Y**^{∗}*) < C(Y*^{∗∗}**) then Y***← Y*^{∗}**else Y***← Y*^{∗∗}

**(II)** *T* *← Y*

*The algorithm computes Y by iteratively replacing the bad edges until there is no bad edge. It*
*will be shown that the cost is never increased at each iteration and it takes no more than O(n*^{2})
iterations. We assume that the shortest paths obtained in the ﬁrst step have the following property:

*If SP*_{G}*(a, b) = (a, x, . . . , b), then SP*_{G}*(a, b) = (a, x)∪SP**G**(x, b). This assumption is not strong since*
almost all popular algorithms for all-pairs shortest paths output such a solution.

**Proposition 1:** *The while loop in Algorithm Remove bad is executed at most O(n*^{2}) times.

**Proof:** *For each bad edge e = (a, b), let h(e) be the number of edges in SP*_{G}*(a, b) and f (T ) =*

∑

*bad e**h(e). Since h(e)≤ n − 1, f(T ) < n*^{2} *initially. Since (a, x) is not a bad edge, it is easy to*
*check that f (T ) decreases by at least 1 at each iteration.*

*a*

*b*

*y*
*x*

*a*

*b*
*y*

*x*

*Figure 1: Remove bad edge (a, b). Case 1 (left) and Case 2 (right).*

**Proposition 2:** **Before instruction (II) is executed, C(Y )**≤ C(T ).

**Proof:** *For any node v, let S*_{v}*= V (T** _{v}*). As shown in Figure 1, there are two cases. Case 2 is

*identical to Case 1 if the tree is re-rooted at b and the roles of a and b are exchanged. Therefore,*

*only the inequality for Case 1 needs to be proved, i.e., x∈ S*

*a*

*− S*

*b*.

*If C(Y** ^{∗}*)

*≤ C(T ), the result follows. Otherwise, let U*1

*= S*

_{a}*− S*

*b*

*and U*

_{2}

*= S*

_{a}*− S*

*b*

*− S*

*x*. Since

*the distance does not change for any two vertices both in U*

_{1}

*(or both in S*

*), we have*

_{b}*C(T )* *<* *C(Y** ^{∗}*)

*⇒* ∑

*u**∈U*1

∑

*v**∈S**b*

*d*_{T}*(u, v)* *<* ∑

*u**∈U*1

∑

*v**∈S**b*

*d*_{Y}*∗**(u, v).*

*Since for all u* *∈ U*1 *and v* *∈ S**b**, d**T**(u, v) = d**T**(u, a) + ¯w(a, b) + d**T**(b, v) and d**Y*^{∗}*(u, v) =*
*d**T**(u, x) + ¯w(x, b) + d**T**(b, v),*

∑

*u**∈U*^{1}

∑

*v**∈S**b*

*(d**T**(u, a) + ¯w(a, b) + d**T**(b, v))*

*<* ∑

*u**∈U*1

∑

*v**∈S**b*

*(d*_{T}*(u, x) + ¯w(x, b) + d*_{T}*(b, v))*

*⇒ |S**b**|* ∑

*u**∈U*1

*d*_{T}*(u, a) +|U*1*||S**b**| ¯w(a, b)*

*<|S**b**|* ∑

*u**∈U*^{1}

*d**T**(u, x) +|U*1*||S**b**| ¯w(x, b)*

*⇒* ∑

*u**∈U*1

*d*_{T}*(u, a) +|U*1*| ¯w(a, b) <* ∑

*u**∈U*1

*d*_{T}*(u, x) +|U*1*| ¯w(x, b).*

*Note that S*_{b}*̸= ∅ since the inequality holds. By the deﬁnition of the metric closure, ¯w(a, b) =*

¯

*w(a, x) + ¯w(x, b), and then*

∑

*u**∈U*1

*(d*_{T}*(u, a)− d**T**(u, x)) <−|U*1*| ¯w(a, x).* (1)

*Now consider the cost of Y** ^{∗∗}*.

*(C(Y** ^{∗∗}*)

*− C(T )) /2 =*∑

*u**∈U*2

∑

*v**∈S*^{x}

*(d*_{Y}*∗∗**(u, v)− d**T**(u, v))*

+ ∑

*u**∈U*1

∑

*v**∈S**b*

*(d*_{Y}*∗∗**(u, v)− d**T**(u, v)) .*

*Since d*_{Y}*∗∗**(u, v)≤ d**T**(u, v) for u* *∈ U*1 *and v* *∈ S**b*, the second term is not positive. By observing
*that d*_{T}*(u, v) = d*_{T}*(u, x) + d*_{T}*(x, v) and d*_{Y}*∗∗**(u, v) = d*_{T}*(u, a) + ¯w(a, x) + d*_{T}*(x, v) for any u∈ U*2

*and v∈ S**x*, we obtain

*(C(Y** ^{∗∗}*)

*− C(T )) /2*

*≤* ∑

*u**∈U*^{2}

∑

*v**∈S*^{x}

*(d**T**(u, a) + ¯w(a, x)− d**T**(u, x))*

= *|S**x**|* ∑

*u**∈U*2

*(d*_{T}*(u, a) + ¯w(a, x)− d**T**(u, x))*

= *|S**x**|* ∑

*u**∈U*2

*(d*_{T}*(u, a)− d**T**(u, x)) +|U*2*||S**x**| ¯w(a, x)*

*≤ |S**x**|* ∑

*u**∈U*^{1}

*(d**T**(u, a)− d**T**(u, x)) +|U*2*||S**x**| ¯w(a, x)* (2)

*<* *−|U*1*||S**x**| ¯w(a, x) +|U*2*||S**x**| ¯w(a, x)* (3)

*≤ 0.*

*(2) is obtained by observing that U*1 *− U*2 *= S**x* *and d**T**(u, a) > d**T**(u, x) for any u* *∈ S**x*. (3) is
*derived by applying (1). Therefore, C(Y*^{∗∗}*) < C(T ) and the result follows.*

*The next lemma follows Propositions 1 and 2, and that each iteration can be done in O(n) time.*

**Lemma 1:** For any spanning tree ¯*T of ¯G, it can be transformed into a spanning tree T of G in*
*O(n*^{3}*) time and C(T )≤ C( ¯T ).*

*The above lemma implies that C(mrct(G))≤ C(mrct( ¯G)). It is easy to see that C(mrct(G))≥*

*C(mrct( ¯G)). Therefore, we have the following corollary.*

**Corollary 2:** *C(mrct(G))=C(mrct( ¯G)).*

Let ∆MRCT denote the MRCT problem with metric inputs. We have the next theorem.

**Theorem 3:** *If there is a (1 + ε)-approximation algorithm for ∆MRCT with time complexity*
*O(f (n)), then there is a (1 + ε)-approximation algorithm for MRCT with time complexity O(f (n) +*
*n*^{3}).

**Proof:** *Let G be the input graph for the MRCT problem.* The metric closure ¯*G can be*
*constructed in time O(n*^{2}*log n + mn).* *If there is a (1 + ε)-approximation algorithm for the*

*∆MRCT problem, a spanning tree T of ¯G can be computed in time O(f (n)) such that C(T )* *≤*
*(1 + ε)C(mrct( ¯G)). Using Algorithm Remove bad, a spanning tree Y of G can be constructed*
*such that C(Y )≤ C(T ) ≤ (1 + ε)C(mrct( ¯G))= (1 + ε)C(mrct(G)). The overall time complexity is*
*then O(f (n) + n*^{3}).

**Corollary 4:** The ∆MRCT problem is NP-hard.

**3** **A Polynomial Time Approximation Scheme**

**3.1** **Overview**

*We sketch a Polynomial Time Approximation Scheme (PTAS) for the MRCT problem in this*
section.

*As described previously, the fact that the costs w may not obey the triangle inequality is*
irrelevant, since we can simply replace these costs by their metric closure. Therefore, in this section
*we may assume that G = (V, E, w) is a metric graph.*

*We use k-stars, i.e., trees with no more than k internal nodes, as a basis of our approximation*
*scheme. In Section 3.5 we show that for any constant k, a minimum routing cost k-star can be*
*determined in polynomial time. In order to show that a k-star achieves a (1 + ε) approximation,*
*we show that, for any tree T and constant δ≤ 1/2:*

*1. It is possible to determine a δ-separator, and the separator can be cut into several δ-paths*
such that the total number of cut nodes and leaves of the separator is at most *⌈*^{2}_{δ}*⌉ − 3.*

(Lemma 5)

*2. Using the separator, T can be converted into a (⌈*^{2}_{δ}*⌉ − 3)-star X, whose internal nodes are*
*just those cut nodes and leaves. The routing cost of X satisﬁes C(X)* *≤ (1 +* _{1}_{−δ}^{δ}*)C(T ).*

(Lemma 7)

*By using T = bT =mrct(G), δ =* _{1+ε}* ^{ε}* and ﬁnding the best (

*⌈*

^{2}

_{δ}*⌉−3)-star K, we obtain the desired*approximation

*C(K)≤ (1 +* *δ*

1*− δ)C( bT ) = (1 + ε)C( bT ).*

Before going into the details of the general case, take a look at how to ﬁnd a 3/2-approximation of an MRCT and its performance analysis.

Recall that a centroid of a tree is the vertex whose removal cuts the tree into components of
*no more than n/2 vertices. Let bT be an MRCT of a metric graph G. Root bT at its centroid*
*r. For an edge (u, v) with parent v, the routing load of the edge is 2x(n− x), in which x is the*
*number of descendants of u. (For convenience, we assume that a vertex is also a descendant of*
*itself.) For a desired positive δ* *≤ 1/2, removing all vertices with number of descendants no more*
*than δn, we may obtain a connected subgraph S of T . The subgraph S is a minimal δ-separator.*

*In the case that δ = 0.5, S contains only the centroid. If the δ-separator S of the MRCT is given*
*and, for each vertex not in S, its lowest ancestor in S is also known, we may easily construct a*
*1/(1− δ)-approximation Y of the MRCT as follows:*

*• S ⊂ Y .*

*• For each vertex u not in S, connect it to its lowest ancestor v in S by adding edge (u, v).*

*The approximation ratio of Y can be shown by the following two observations.*

*• For each edge in S, the routing load in Y is the same as that in bT .*

*• For each edge (u, v) not in S, the routing load in Y is 2(n − 1). However, there is a path from*
*u to v in bT of which each edge has routing load no less than 2(1− δ)n, and the length of the*
*path is at least the same as the edge (u, v).*

*V*_{ar}*r*

*a*

*V*_{a}

*b*
*V*_{r}

*V*_{b}*V*_{br}

*a* *r* *b*

*V*_{ar}*V*_{br}

*a* *r* *b*

*V*_{ar}*V*_{br}

*a* *r* *b*

*V*_{ar}*V*_{br}

*a* *r* *b*

*V*_{ar}*V*_{br}

Figure 2: An MRCT and the four 3-stars.

*For example, consider the simplest case that δ = 1/2. A 1/2-separator contains only one*
*vertex. Assume that r be such a vertex on an MRCT bT . For every other vertex, the ancestor in*
*the separator is r. Connecting all other nodes to r, we obtain a star Y . The routing cost of Y*
*is the sum of all edges (v, r) multiplied by its routing load 2(n− 1). For each vertex v, there is*
*a path from v to r in bT . Since r is a 1/2-separator of bT , the routing load of the path is at least*
*n and the path is no shorter than the edge (v, r) by the triangle inequality. Consequently Y is a*
2-approximation of the MRCT b*T . Since the separator contains only one vertex, we may try all*
*possible vertices and it leads to an O(n*^{2}) time 2-approximation of the MRCT problem on metric
graphs.

*But when δ < 1/2, the separator may contain as many as Ω(n) vertices, and it is too costly*
to enumerate all possible separators. However, instead of the entire separator, we may achieve the
*same ratio by knowing only some critical vertices of the separator. In the following, we shall take*
*δ = 1/3 as an example to show that we only need to know three critical vertices of the separator*
to construct a 3/2-approximation.

Root the MRCT b*T at its centroid r. There are at most two subtrees which contain more than*
*n/3 nodes. Let a and b be the lowest vertices with at least n/3 descendants. We ignore the cases*
*where r = a or r = b. For such cases, the ratio can be shown similarly. Let P be the path from a*
*to b. Obviously the path contains r and is a minimal 1/3-separator. We shall transform bT into a*
*3-star with internal nodes a, b, and r such that its routing cost is no more than 3/2 of that of bT .*
*As shown in Figure 2, let us partition all the vertices into V*_{a}*, V*_{b}*, V*_{r}*, V*_{ar}*, and V*_{br}*. The sets V** _{a}*,

*V*

_{b}*, and V*

*r*

*contain the vertices whose lowest ancestor on P is a, b, and r, respectively. The set V*

*ar*

*(and V*_{br}*) consists of the vertices whose lowest ancestor on P is between a and r (and between b*
*and r, respectively).*

*First replace P with edges (a, r) and (b, r). For each vertex v in V**a* *(or V**b**, V**r**), edge (v, a) (or*
*(v, b), (v, r) respectively) is added. For the vertices in V** _{ar}*, we consider two cases. Either all of them

*are connected to a or all of them are connected to r. The vertices in V*

*are connected similarly.*

_{br}The four possible 3-stars are illustrated in Figure 2.

Now consider the routing cost of b*T . For each vertex v, the routing load of the path from v to*
*P is no less than 4n/3 since P is a 1/3-separator. For each edge e of P , since there are at least*
*n/3 nodes on either side of it, the routing load is no less than 2(n/3)(2n/3) = 4n*^{2}*/9. Therefore we*
have the following lower bound of the routing cost of the MRCT:

*C( bT )≥ (4n/3)*∑

*v*

*d*_{T}_{b}*(v, P ) + (4/9)n*^{2}*w(P ).*

*In either of the 3-stars constructed above, for each vertex v in V**a**∪ V**r**∪ V**b*, the routing load of
*the edge incident to v is 2(n− 1), and the edge length is at most the same as the path from v to*

*P on bT . For each node v in V** _{ar}*, by the triangle inequality, we have

*(w(v, a) + w(v, r))/2≤ d*

_{T}_{b}

*(v, P ) + d*

_{T}_{b}

*(a, r)/2.*

*Note that there are no more than n/6 nodes in V**ar**. For edge (a, r), the routing load is no more than*
*2(n/2)(n/2) = n*^{2}*/2. (Note: For this simple case that δ = 1/3, this bound is enough. However, a*
*more precise analysis of the incremental routing load is required for smaller δ.)*

*For the nodes in V** _{br}*, we may obtain a similar result. In summary, the minimum routing cost
of the constructed 3-stars is no more than

*2(n− 1)*∑

*v*

*d*_{T}_{b}*(v, P ) + (n*^{2}*/6)(d*_{T}_{b}*(a, r) + d*_{T}_{b}*(b, r)) + (1/2)n*^{2}*w(P )*

*≤ 2n*∑

*v*

*d*_{T}_{b}*(v, P ) + (2/3)n*^{2}*w(P ).*

The approximation ratio, by comparing with the lower bound of the optimal, is 3/2.

*The method can be extended to any δ* *≤ 0.5. Let S be a δ-separator of T . The critical vertex*
*set, deﬁned as the cut and leaf set in the next section, to construct a 1/(1−δ)-approximation k-star*
consists of the following vertices.

*• The leaves of S as a and b in the above example.*

*• The vertices with more than two neighbors on S.*

*• Some additional vertices such that all the critical vertices cut the separator into edge-disjoint*
*paths and the number of vertices whose lowest ancestors on S belong to the same path is no*
*more than δn/2. Such a path is deﬁned as a δ-path in the next section. In the above example,*
*r is such a vertex. The vertices a, b and r cut the separator into two paths, and the number*
*of vertices in either V**ar* *or V*_{br}*is no more than n/6.*

*We shall show that the number of the necessary critical vertices is at most 2/δ* *− 3 for any*
*δ* *≤ 0.5. Consequently there exists a (2/δ − 3)-star which is an approximation of an MRCT with*
*ratio 1/(1− δ). The PTAS is to construct the (2/δ − 3)-star of minimum routing cost.*

*The core of a tree is the subgraph obtained by removing all its leaves. The core of a k-star*
*contains no more than k vertices and therefore the number of all possible cores is polynomial to k.*

For each possible core, the algorithm ﬁnds the best way to connect the leaves to one of the vertices
*of the core. A k-component integer vector (n*1*, n*2*, . . . , n**k*) is used to indicate how many leaves will
*be connected to each of the k vertices of the core, in which*∑

*i**n**i**= n− k. There are O(n*^{k}* ^{−1}*) such
vectors. For each core and each vector, the routing load on each core edge is ﬁxed since the number
of vertices on both sides of the edge are speciﬁed by the core and the vector. Therefore the best
leaf connection is determined by the leaf edges subject to the numbers of leaves to be connected to

*the vertices of the core. Such a problem can be solved by solving an assignment problem in O(n*

^{3})

*time. Consequently the minimum routing cost k-star can be constructed in time polynomial to k*

*and n.*

*Consider an example for k = 3. For a 3-star, the core is a 3-vertex path. There are O(n*^{3})
*possible cores. For each possible core (a, b, c), use a three-component integer vector (x, y, z) to*
*indicate how many leaves will be connected to a, b, and c, in which x + y + z = n− 3 and x, y, z are*
*nonnegative integers. There are O(n*^{2}) such vectors. For a speciﬁed core and a speciﬁed vector, the
*routing load on each core edge is also ﬁxed. That is, the routing load on (a, b) is 2(x + 1)(n− x − 1)*
*and on (b, c) is 2(z + 1)(n− z − 1). Therefore the best leaf connection is determined by the leaf*

B_{3}
B2

B1

B_{7}
B5

B_{6}
B4

*i* *P*

*j*

*r*_{1}*r*_{2}

*r*_{3}

*Figure 3: B*1*, . . . , B*7 *are branches of P . V B(T, P, i) =* *{i} ∪ V (B*1)*∪ V (B*2)*∪ V (B*3*). P** ^{c}* is the
number of vertices in

*{r*1

*, r*

_{2}

*, r*

_{3}

*} ∪ V (B*4)

*∪ V (B*5)

*∪ V (B*6).

*edges subject to the numbers of leaves to be connected to a, b, c. Such a problem can be solved*
*by solving an assignment problem in O(n*^{3}*) time. The total time complexity is O(n** ^{2k+2}*), which is

*polynomial for constant k. In fact we need not solve the individual assignment problem for the best*leaf connection of each vector. The best leaf connection of one vector can be found from that of another vector by solving a shortest path problem if the two vectors are adjacent. Two vectors are adjacent if one can be obtained from the other by increasing a component by one and decreasing a

*component by one, e.g., (5, 4, 2) and (5, 3, 3). With this result, the time complexity is reduced to*

*O(n*

*).*

^{2k}**3.2** **The δ-spine of a tree**

*Let P = SP*_{T}*(i, j) in which* *|V B(T, P, i)| ≥ |V B(T, P, j)|. We shall use the following notations to*
simplify the expressions.

*• P** ^{a}*=

*|V B(T, P, i)|.*

*• P** ^{b}*=

*|V B(T, P, j)|.*

*• P*^{c}*= n− |V B(T, P, i)| − |V B(T, P, j)|.*

*• Q(P ) =* ∑

1*≤x≤h**|V B(T, P, r**x*)*| × d**T**(r**x**, i), where P = (i, r*1*, r*2*, . . . , r*_{h}*, j).*

*P*^{a}*and P** ^{b}* are the numbers of vertices that are hanging at the two end points of the path. Note

*that we always assume P*

^{a}*≥ P*

^{b}*. In the case that P contains only one edge, P*

*= 0. The notations are illustrated in Figure 3.*

^{c}**Definition 2: Let 1***≤ k ≤ n. A k-star is a spanning tree of G which has no more than k internal*
*nodes. An optimal k-star is the k-star with the minimum routing cost.*

*We now turn to the notions of δ-paths and δ-spines. Informally, a δ-path is a path such that not*
*too many nodes (at most δn/2) are hanging at its internal nodes. A δ-spine is a set of edge-disjoint*
*δ-paths, whose union is a minimal δ-separator. That is, a δ-spine is obtained by cutting a minimal*
*δ-separator into δ-paths. In the case that the minimal δ-separator contains just one node, the only*
*δ-spine is the empty set.*

**Definition 3:** *Given a spanning tree T of G, and 0 < δ* *≤ 0.5, a δ-path of T is a path P such*
*that P*^{c}*≤ δn/2.*

*v*_{5}*v*_{1}

*v*_{2}

*v*_{3}

*v*_{4}*v*_{5}*v*_{1}*v*_{1}

vertices hung at
*v*_{2}

vertices hung at a path

(b)
*S*

*v*_{5}*v*_{1}

*v*_{2}

*v*_{3}

*v*_{4}

*>n/4*

*>n/4*

*>n/4*
(a)

*Figure 4: Separator, spine and CAL. Each triangle represents a subtree with no more than n/4*
vertices.

**Definition 4:** *Let 0 < δ* *≤ 0.5. A δ-spine Y = {P*1*, P*2*, ..., P*_{h}*} of T is a set of pairwise edge-*
*disjoint δ-paths in T such that S =*∪

1*≤i≤h**P*_{i}*is a minimal δ-separator of T . Furthermore, for any*
*pair of distinct paths P*_{i}*and P** _{j}* in the spine, we require that either they do not intersect or, if they
do, the intersection point is an endpoint of both paths.

**Definition 5: Let Y be a δ-spine of a tree T . CAL(Y ) (which stands for the cut and leaf set of Y )***is the set of the endpoints of the paths in Y . In the case that Y is empty, the cut and leaf set contains*
*only one node which is a δ-separator of T . Formally CAL(Y ) ={u, v|∃P = SP**T**(u, v)∈ Y } if Y is*
*not empty, and otherwise CAL(Y ) ={u|u is a minimal δ-separator }.*

**Example 1: In Figure 4(a), S (bold lines) is a minimal 1/4 separator of the tree. Vertex v**_{1} is a
*centroid, and vertices v*2*, v*3*, and v*4 *are leaves in S. In (b), the separator is cut into a 1/4-spine of*
the tree. The CAL of the spine is *{v*1*, v*2*, v*3*, v*4*, v*5*}. The path between v*1 *and v*4 is cut at vertex
*v*_{5} *to ensure that the number of vertices hung at each path is no more than n/8.*

**Lemma 5:** *For any constant 0 < δ≤ 0.5, and a spanning tree T of G, there exists a δ-spine Y of*
*T such that* *|CAL(Y )| ≤ ⌈2/δ⌉ − 3.*

**Proof:** *Let S be a minimal δ-separator of T . S is a tree. Let U*1 *be the set of leaves in S, U*2

*be the set of vertices which have more than two neighbors in S, and U = U*_{1}*∪ U*2*. Let h =|U*1*|.*

Clearly, *|U| ≤ 2h − 2. Let Y*1 *be the set of paths obtained by cutting S at all the vertices in U*2.
*For example, for the tree on the right side of Figure 4, U*1 =*{v*2*, v*3*, v*4*}; U*2 = *{v*1*}; Y*1 contains
*SP*_{T}*(v*_{1}*, v*_{2}*), SP*_{T}*(v*_{1}*, v*_{3}*) and SP*_{T}*(v*_{1}*, v*_{4}*). For any P* *∈ Y*1*, if P*^{c}*> δn/2 then P is called a heavy*
*path. It is easy to check that Y*1 *satisﬁes the requirements of a δ-spine except that there may exist*
*some heavy paths. Suppose P is not a δ-path. We can break it up into δ-paths by the following*
*process. First ﬁnd the longest preﬁx of P starting at one of its endpoints and ending at some*
*internal vertex, say i, in the path, that determines a δ-path. Now we break P at vertex i. Then we*
*repeat the breaking process on the remaining suﬃx of P starting at i, stripping oﬀ the next δ-path*

*and so on. In this way P can be cut into δ-paths by breaking it up at no more than⌈2P*^{c}*/ (δn)⌉ − 1*
*vertices. Since there are at least δn nodes hung at each leaf,*

∑

*P**∈Y*1

*P*^{c}*< n− hδn.*

*Let U*_{3}*be the minimal vertex set for cutting the heavy paths to result in a δ-spine Y of T . We have*

*|U*3*| ≤ ⌈2 (n − hδn) / (δn)⌉ − 1 = ⌈2/δ⌉ − 2h − 1.*

So,*|CAL(Y )| = |U| + |U*3*| ≤ ⌈2/δ⌉ − 3.*

**Example 2: For any tree, there always exist a (1/3)-spine and a (1/4)-spine whose cut and leaf**
*set contains no more than 3 and 5 vertices, respectively, as illustrated in Figure 4. Taking δ = 1/5,*
it follows that there exists a (1/5)-spine whose cut and leaf set has no more than 7 vertices.

**3.3** **Lower bound**

*We are going to establish a more precise lower bound. We substituted l(T, e) by 2δ(1− δ)n*^{2}.
*C(T )≥ 2(1 − δ)n*∑

*v**∈V*

*d*_{T}*(v, S) +* ∑

*e**∈E(S)*

*l(T, e)w(e).*

*Now we give a more careful analysis of the last term. Let Y be a δ-spine of a spanning tree T of*
*G and S =* ∪

*P**∈Y* *P be a minimal δ-separator of T . Rewriting in terms of δ-spine and recalling*
*l(T, e) = 2e*^{a}*e** ^{b}*, we have ∑

*e**∈E(S)*

*l(T, e)w(e) = 2* ∑

*P**∈Y*

∑

*e**∈P*

*e*^{a}*e*^{b}*w(e).*

*Assume P = (r*_{0}*, r*_{1}*, r*_{2}*, . . . , r** _{h}*) in which

*|V B(T, P, r*0)

*| ≥ |V B(T, P, r*

*h*)

*|. Let |V B(T, P, r*

*i*)

*| = n*

*i*

for 1*≤ i ≤ h − 1 and e**i* *= (r*_{i}_{−1}*, r** _{i}*) for 1

*≤ i ≤ h.*

∑

*e**∈P*

*e*^{a}*e*^{b}*w(e)*

=

∑*h*
*i=1*

*P*^{a}*+ P*^{c}*−*

*h**−1*

∑

*j=i*

*n*_{j}

*P** ^{b}*+

*h**−1*

∑

*j=i*

*n*_{j}

* w(e** _{i}*)

=

∑*h*
*i=1*

*P*^{b}*(P*^{a}*+ P*^{c}*) w(e*_{i}*) + (P*^{a}*− P** ^{b}*)

∑*h*
*i=1*

*h**−1*

∑

*j=i*

*n*_{j}*w(e** _{i}*)

+

∑*h*
*i=1*

* ^{h}*∑

^{−1}*j=i*

*n*_{j}

*P*^{c}*−*

*h**−1*

∑

*j=i*

*n*_{j}

* w(e** _{i}*)

*≥ P*^{b}*(P*^{a}*+ P*^{c}*)w(P ) + (P*^{a}*− P** ^{b}*)

*h**−1*

∑

*j=1*

*n**j*

( _{j}

∑

*i=1*

*w(e**i*)
)

= *P*^{b}*(P*^{a}*+ P*^{c}*) w(P ) + (P*^{a}*− P*^{b}*)Q(P ).*

*Note that Q(P ) is deﬁned at the ﬁrst paragraph of Section 3.2. We obtain the next lemma.*

A

B

C

D

E

(a)

(d) A

B

(e) A

B A

B

(c)

A B

C D

E

(b)

*Figure 5: Constructing the k-star from an optimal tree.*

**Lemma 6 :** *Let Y be a δ-spine of a spanning tree T of G and S =* ∪

*P**∈Y* *P be a minimal*
*δ-separator of T . Then*

*C(T )≥ 2(1 − δ)n*∑

*v**∈V*

*d**T**(v, S) + 2*∑

*P**∈Y*

(

*P*^{b}*(P*^{a}*+ P*^{c}*)w(P ) + (P*^{a}*− P*^{b}*)Q(P )*
)

*.*

**3.4** **From trees to stars**

*Let δ≤ 1/2 and k = ⌈2/δ⌉ − 3. We now decompose an optimal solution bT and construct a k-star*
whose routing cost is upper bounded by ^{k+3}_{k+1}*C( bT ).*

*Let Y =* *{P**i**|1 ≤ i ≤ h} be a δ-spine of bT in which* *|CAL(Y )| ≤ ⌈2/δ⌉ − 3. Note that the*
*set of all the edges in Y forms a δ-separator S. Assume P*_{i}*= SP*_{T}_{b}*(u*_{i}*, v** _{i}*) and

*|V B( bT , P*

_{i}*, u*

*)*

_{i}*| ≥*

*|V B( bT , P*_{i}*, v** _{i}*)

*|. By the following steps, we construct a k-star whose internal nodes are exactly the*

*cut and leaf set of the δ-spine we just identiﬁed.*

1. We connect these nodes by short-cutting edges along the spine to construct a tree spanning these nodes with the same skeletal structure as the spine.

2. All vertices in subtrees hanging at the cut and leaf nodes of the spine are connected directly to their closest node in the spine.

*3. Along a δ-path in the spine, all the internal nodes and nodes in subtrees hanging at internal*
nodes are connected to one of the two endpoints of this path (note that both are in the cut
and leaf set of the spine) in such a way as to minimize the resulting routing cost.

*This is the k-star used to argue the upper bound on the routing cost.*

* Example 3 : In Figure 5, we illustrate how to construct the desired k-star from an optimal*
tree. Frame (a) is an optimal tree in which the separator is shown and the cut and leaf set is

*{A, B, C, D, E}. Frame (b) is the tree spanning the cut and leaf nodes, which has the same skeletal*

structure as the spine. Frames (c), (d) and (e) illustrate how to connect other nodes to the cut
*and leaf nodes. Frame (c) exhibits the nodes hanging at a δ-path. These nodes will be connected*
as in either Frame (d) or (e). The nodes hanging at the endpoints of the path will be connected to
the endpoints in either case. All the internal nodes of the path and nodes hanging at the internal
nodes will be connected to one of the two endpoints. Note that they are connected to the same
endpoint either as Frame (d) or Frame (e), but not connected to the two endpoints partially.

*More formally, construct a subgraph R* *⊂ G with vertex set CAL(Y ) and edge set E**r* =
*{(u**i**, v** _{i}*)

*|1 ≤ i ≤ h}. Trivially, R is a tree. Let f(i) be an indicator variable such that*

*f (i) =*

{ 1 if (

*P*_{i}^{a}*− P*_{i}* ^{b}*)

*P*_{i}^{c}*w(P**i*)*≥ n (2Q(P**i*)*− P*_{i}^{c}*w(P**i*))
0 otherwise

*The indicator variable f (i) determines the endpoint of P** _{i}* to which all the internal nodes and

*nodes hanging at such internal nodes will be directly connected. We construct a spanning tree X*

*of G where the edge set E*

*x*is determined by the following rules:

*1. R⊂ X.*

*2. If q∈ V B( bT , S, r) then (q, r)∈ E**x**, for any r∈ {u**i**, v*_{i}*|1 ≤ i ≤ h}.*

*3. For the vertex set V**i* *= V* *− V B( bT , P**i**, u**i*)*− V B( bT , P**i**, v**i**), if f (i) = 1 then{(q, u**i*)*|q ∈ V**i**} ⊂*
*E*_{x}*, else{(q, v**i*)*|q ∈ V**i**} ⊂ E**x**. That is, the vertices in V*_{i}*are either all connected to u** _{i}* or all

*connected to v*

*.*

_{i}**Proposition 3:** *X is a k-star.*

*The above proposition is trivial; consider the cost of X.*

**Proposition 4:** *C(X)≤* _{1}_{−δ}^{1} *C( bT ).*

**Proof:** *Since any edge in E**x**− E**r* is incident with a leaf,
*C(X)*

2 = ∑

*e**∈E**r*

*e*^{a}*e*^{b}*w(e) + (n− 1)* ∑

*e**∈E**x**−E**r*

*w(e).*

*First, for any e = (u*_{i}*, v** _{i}*)

*∈ E*

*r*,

*e*^{a}*e*^{b}*w(e)* *≤ (P*_{i}^{a}*+ f (i)P*_{i}* ^{c}*)
(

*P*_{i}* ^{b}*+ (1

*− f(i)) P*

_{i}*)*

^{c}*w(P*

*i*)

= *P*_{i}^{a}*P*_{i}^{b}*w(P** _{i}*) +
(

*f (i)P*_{i}* ^{b}*+ (1

*− f(i)) P*

*i*

^{a})

*P*_{i}^{c}*w(P*_{i}*).*

*Second, by the triangle inequality and recalling that for subgraph S* *⊂ bT , d*^{S}_{b}

*T**(i, j) stands for*
*w(SP*_{T}_{b}*(i, j)∩ S), we have*

∑

*e**∈E**x**−E**r*

*w(e)* *≤* ∑

*v**∈V*

*d*_{T}_{b}*(v, S) +*

∑*h*
*i=1*

∑

*v**∈V**i*

(
*f (i)d*^{S}_{b}

*T**(v, u** _{i}*) + (1

*− f(i)) d*

^{S}

_{T}_{b}

*(v, v*

*) )*

_{i}= ∑

*v**∈V*

*d*_{T}_{b}*(v, S) +*

∑*h*
*i=1*

*(f (i)Q(P**i*) + (1*− f(i)) (P**i*^{c}*w(P**i*)*− Q(P**i**))) .*

Thus,
*C(X)*

2 *≤*

∑*h*
*i=1*

*P*_{i}^{a}*P*_{i}^{b}*w(P**i**) + n*∑

*v**∈V*

*d*_{T}_{b}*(v, S)*

+

∑*h*
*i=1*

min{P_{i}^{b}*P*_{i}^{c}*w(P**i**) + nQ(P**i**), P*_{i}^{a}*P*_{i}^{c}*w(P**i**) + n(P*_{i}^{c}*w(P**i*)*− Q(P**i*))}.

Since the minimum of two numbers is not larger than their weighted mean, we have
min*{P**i*^{b}*P*_{i}^{c}*w(P**i**) + nQ(P**i**), P*_{i}^{a}*P*_{i}^{c}*w(P**i**) + n (P*_{i}^{c}*w(P**i*)*− Q(P**i*))*}*

*≤* (

*P*_{i}^{b}*P*_{i}^{c}*w(P*_{i}*) + nQ(P** _{i}*)

) *P*_{i}^{a}*P*_{i}^{a}*+ P*_{i}^{b}

*+ (P*_{i}^{a}*P*_{i}^{c}*w(P**i**) + n (P*_{i}^{c}*w(P**i*)*− Q(P**i*))) *P*_{i}^{b}*P*_{i}^{a}*+ P*_{i}^{b}*.*
Then,

*C(X)*

2 *≤*

∑*h*
*i=1*

*P*_{i}^{a}*P*_{i}^{b}*w(P*_{i}*) + n*∑

*v**∈V*

*d*_{T}_{b}*(v, S) +*

∑*h*
*i=1*

(*2P*_{i}^{a}*P*_{i}^{b}*P*_{i}^{c}*+ nP*_{i}^{b}*P*_{i}* ^{c}*)

*w(P*

*)*

_{i}*P*

_{i}

^{a}*+ P*

_{i}

^{b}+

∑*h*
*i=1*

*(P*_{i}^{a}*− P*_{i}^{b}*)nQ(P** _{i}*)

*P*

_{i}

^{a}*+ P*

_{i}

^{b}= *n*∑

*v**∈V*

*d*_{T}_{b}*(v, S) +*

∑*h*
*i=1*

*w(P**i*)
*P*_{i}^{a}*+ P*_{i}^{b}

((

*P*_{i}^{a}*P*_{i}^{b}*+ P*_{i}^{b}*P*_{i}* ^{c}*
)

*n + P*_{i}^{a}*P*_{i}^{b}*P*_{i}* ^{c}*
)

+

∑*h*
*i=1*

*(P*_{i}^{a}*− P*_{i}^{b}*)nQ(P** _{i}*)

*P*

_{i}

^{a}*+ P*

_{i}

^{b}*.*

*The simpliﬁcation in the last inequality uses the observation that for any i, we have P*_{i}^{a}*+P*_{i}^{b}*+P*_{i}^{c}*= n.*

By Lemma 6,

*C(X)≤ C( bT ) max*

1*≤i≤h*

{ 1

1*− δ,* *n*

*P*_{i}^{a}*+ P*_{i}* ^{b}* +

*P*

_{i}

^{a}*P*

_{i}

^{c}*(P*_{i}^{a}*+ P*_{i}^{b}*)(P*_{i}^{a}*+ P*_{i}* ^{c}*)
}

*.*
*Since P*_{i}^{c}*≤ δn/2,*

*n*

*P*_{i}^{a}*+ P*_{i}* ^{b}* +

*P*

_{i}

^{a}*P*

_{i}

^{c}*(P*_{i}^{a}*+ P*_{i}^{b}*)(P*_{i}^{a}*+ P*_{i}* ^{c}*)

*≤* *n*

*P*_{i}^{a}*+ P*_{i}* ^{b}* +

*P*

_{i}

^{c}*P*

_{i}

^{a}*+ P*

_{i}

^{b}= *n + P*_{i}^{c}

*n− P*_{i}^{c}*≤* *2 + δ*
2*− δ* *≤* 1

1*− δ.*
This completes the proof.

*For any integer k* *≥ 1, we take δ =* _{k+3}^{2} . By the above two propositions, we have the next
lemma.

**Lemma 7: An optimal k-star of a metric graph is a (k + 3)/(k + 1) approximation of an MRCT.**

**Example 4: Taking δ = 1/3 in Lemma 7, it follows that there exists a 3-star which is a 1.5-***approximation of an MRCT, which coincides with the result stated in Section 1. Taking δ = 0.2,*
it follows that there exists a 7-star which is a 1.25-approximation.

*In the following section we will show that it is possible to determine an optimal k-star of a*
graph in polynomial time. In fact, we have the following lemma.

**Lemma 8:** *An optimal k-star of a graph G can be constructed in O(n** ^{2k}*) time.

The proof is delayed to the next section. The following theorem establishes the time-complexity of our PTAS.

**Theorem 9: There exists a PTAS for the ∆MRCT problem, which can ﬁnd a (1+ε)-approximation***solution in O(n*^{ρ}*) time complexity where ρ = 2⌈2/ε⌉ − 2.*

**Proof:** *By Lemma 7, there exists a k-star which is a (k + 3)/(k + 1) approximation of an MRCT.*

*For ﬁnding a (1+ε)-approximation solution, we take k =⌈2/ε⌉ − 1 and ﬁnd an optimal k-star. The*
*time complexity is O(n*^{ρ}*) where ρ = 2⌈2/ε⌉ − 2 from Lemma 8.*

**3.5** **Finding an optimal k-star**

*In this section we describe an algorithm for ﬁnding an optimal k-star in G for a given value of k.*

*As mentioned before, given an accuracy parameter ε > 0, we apply this algorithm for k =⌈*^{2}_{ε}*− 1⌉,*
*and return an optimal k-star as a (1 + ε)-approximate solution.*

*For a given k, to ﬁnd an optimal k-star, we consider all possible subsets S of vertices of size k,*
*and for each such choice, ﬁnd an optimal k-star where the remaining vertices have degree one.*

**3.5.1** **A polynomial-time method**

*First, we verify that the overall complexity of this step is polynomially bounded for any ﬁxed k.*

*Any k-star can be described by a triple (S, τ,L), where S = {v*1*, . . . , v*_{k}*} ⊆ V is the set of k*
*distinguished vertices which may have degree more than one, τ is a spanning tree topology on S,*
and *L = (L*1*, . . . , L**k**), where L**i* *⊆ V − S is the set of vertices connected to vertex v**i* *∈ S. For any*
*r* *∈ Z*^{+}*, an r-vector is an integer vector with r components. Let l = (l*1*, . . . , l** _{k}*) be a nonnegative

*k-vector such that*∑

_{k}*i=1**l*_{i}*= n− k. We say that a k-star (S, τ, L) has the conﬁguration (S, τ, l) if*
*l** _{i}* =

*|L*

*i*

*| for all 1 ≤ i ≤ k.*

**Example 5 : For the 3-star shown in Figure 6(a), S =***{v*1*, v*2*, v*3*}, τ is shown in (b), L*1 =
*{u*1*, u*_{2}*, u*_{3}*}, L*2 =*{u*4*}, L*3 =*{u*5*}, and l = (3, 1, 1).*

*For a ﬁxed k, the total number of conﬁgurations is O(n*^{2k}* ^{−1}*) since there are (

_{n}*k*

) choices for
*S, k*^{k}^{−2}*possible tree topologies on k vertices, and* (_{n}_{−1}

*k**−1*

) *possible such k-vectors. (To see this,*
*observe that every such vector can be put in correspondence with picking k* *− 1 among n − 1*
linearly ordered elements, and using the cardinalities of the segments between consecutively picked
*segments as the components of the vector.) Note that any two k-stars with the same conﬁguration*
*have the same routing load on their corresponding edges. We deﬁne α(S, τ, l) to be an optimal*
*k-star with conﬁguration (S, τ, l).*

*Note that any vertex v in V* *− S that is connected to a node s ∈ S contributes a term of*
*w(v, s) multiplied by its routing load of 2(n− 1). Since all these routing loads are the same, the*

*v*_{1}

(a) (b)

*v*_{3}
*v*_{2}

*v*_{3}
*v*_{2}

*v*_{1}

*u*_{1} *u*_{2} *u*_{3} *u*_{4} *u*_{5}

Figure 6: The conﬁguration of a 3-star.

*best way of connecting the vertices in V* *− S to nodes 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 distances 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 above minimum-cost perfect matching problem, also called
*the assignment problem, has been well studied and can be solved in O(n*^{3}) time (cf. [1]). Therefore,
*the overall complexity is O(n*^{2k+2}*) for ﬁnding an optimal k-star.*

**3.5.2** **A faster method**

In the PTAS, we need to solve many matching problems, each for one conﬁguration. It takes
polynomial time to solve these problems individually and this result is suﬃcient for showing the
existence of the PTAS. Although there is no obvious way to reduce the time complexity for one
matching problem, the total time complexity can be signiﬁcantly reduced when considering all these
*matching problems together. The key point is that two optimal k-stars of similar conﬁgurations*
share a large common portion in their structures. By carefully ordering the matching problems
for the conﬁgurations and exploiting the common structure of two consecutive problems, we can
obtain an optimal solution of any conﬁguration in this order by performing a single augmentation
on the optimal solution of the previous conﬁguration. Thus, we show (Lemma 10) how to compute
*α(S, τ, l) for a given conﬁguration in O(nk) time.*

*Let W*_{ab}*be the set of all nonnegative a-vectors whose entries add up to a constant b. In*
*W**ab**× W**ab*, we introduce the relation*∼ as l ∼ l** ^{′}* if there exist 1

*≤ s, t ≤ a such that*

*l*^{′}* _{i}*=

*l**i**− 1* *if i = s*
*l** _{i}*+ 1

*if i = t*

*l*

*i*otherwise

*For a pair l and l*^{′}*such as the above, we say that l*^{′}*is obtained from l by s and t.*

*Let r =* *|W**ab**| =* (_{a+b}_{−1}

*a**−1*

)*. The following proposition shows that the elements of W** _{ab}* can be

*linearly ordered as l*

^{1}

*, . . . , l*

^{r}*so that l*

^{i+1}*∼ l*

*for all 1*

^{i}*≤ i ≤ r − 1.*

**Proposition 5:** *For all positive integers a, b, there exists a permutation π*^{a,b}*of W** _{ab}* such that

*π*

_{1}

^{a,b}*is the lexicographic minimum, π*

*r*

^{a,b}*is the lexicographic maximum, and π*

^{a,b}

_{i+1}*∼ π*

_{i}*for all*

^{a,b}*i = 1, . . . , r− 1.*

**Proof:** *By induction. The claim is clearly true when a = 1 for any b. Assume the claim is true*
*for all b when a = m− 1. For a = m construct the ordering as follows. First the elements for which*