A combinatorial approximation algorithm for the ... - Semantic Scholar

0 downloads 0 Views 316KB Size Report
Aug 14, 2002 - and later an algorithm with a similar ratio by by Zosin and Khuller ZK02]. ...... ZK02] Leonid Zosin and Samir Khuller, On directed Steiner trees, ...
A combinatorial approximation algorithm for the group Steiner problem Chandra Chekuri 

Guy Even y August 14, 2002

Guy Kortsarz z

Abstract

In the group Steiner problem we are given a graph with edge weights w(e) and m subsets of S vertices gi m . Each subset g is called a group and the vertices in g are called terminals. It i i i=1 is required to nd a minimum weight tree that contains at least one terminal from every group. We present the rst combinatorial poly-logarithmic ratio approximation for this problem when the input graph is a tree, answering an open P problem posed in [GKR98]. For every xed constant " > 0, our algorithm gives an O((log i gi )1+" log m) approximation in polynomial time. Our algorithm is a recursive greedy algorithm adapted from the greedy algorithm for the directed Steiner tree problem [KP99, CCC+99]. As pointed out in [GKR98], approximation algorithms on trees can be extended to arbitrary undirected graphs by probabilistically approximating the graph by tree metrics [B96, B98]. Reducing the graph to a tree incurs an additional O(log V log log V ) factor in the approximation ratio, where V is the number of vertices in the graph. Previous algorithms for this problem are based on solving linear programming relaxations: the rst one by Garg et al. [GKR98] who gave an O(log(maxi gi ) log m)-approximation and later an algorithm with a similar ratio by by Zosin and Khuller [ZK02]. f

g

j

j

j

j

j

j



j

j

j

 y z

j 

Bell Labs, 600 Mountain Ave., Murray Hill, New Jersey 07974, USA. E-mail:[email protected] Department of Electrical-Engineering, Tel-Aviv University, Israel. E-mail:[email protected] Computer Sciences Department, Rutgers University - Camden. E-mail:[email protected]

1 Introduction The (undirected) Steiner tree problem is among the fundamental problems in network design [GJ79]. The input to the Steiner tree problem is an undirected graph G = (V; E ) with edge weights w(e) and a set of terminals T  V . The objective is to nd a minimum weight tree T that spans the terminals in T . The Steiner tree problem is known to be NP-hard [GJ79] and also APX-hard. In this paper we consider the group Steiner problem which is a generalization of the Steiner tree problem. The input to this problem also consists of an edge-weighted graph G = (V; E ), however instead of a set of terminals we are given a collection of subsets of vertices fgi gi . Each subset gi is called a group. The objective is to nd a minimum weight subgraph that contains at least one vertex each group. Throughout, we use m to denote the number of groups, n to denoted Pmi=1 jgfrom i j, and N to denote maxi jgi j. The group Steiner problem was introduced by Reich and Widmayer [RW90] motivated by applications to wire routing with multi-port terminals in physical VLSI design. See Garg et al. [GKR98] for additional references to this problem. The problem is of interest not only because of its applications but also because of its relation to the Steiner tree problem in both undirected and directed graphs. The search for good approximation algorithms for this problem has inspired new technical ideas [GKR98, KR00, KRS01, ZK02]. The group Steiner problem is a strict generalization of the Steiner tree problem, and in [GKR98] it is shown that very special cases of the group Steiner problem are harder to approximate than the Steiner tree problem: in particular it is shown that the set cover problem can be reduced to the group Steiner problem on star graphs. From the hardness of approximating set cover [F98, RS97], it follows that the group Steiner problem on stars, and hence trees, is NP-hard to approximate to within a factor better than c ln m for some constant c, or to a factor better than (1 ? o(1)) ln m unless NP  DTIME (nlog log n ). p In terms of upper bounds the rst sub-linear approximation ratio for this problem was an O( m) ratio given by Bateman et al.[BHRZ97]. Garg et al.[GKR98] improved this substantially and obtained the rst poly-logarithmic approximation ratio for this problem. They gave an O(log N log m) approximation algorithm for the problem on trees based on an elegant randomized rounding of the natural linear programming relaxation for the problem. It should be mentioned that their algorithm achieves a ratio of O(minfh; log N g log m) on trees of height h. They extended their algorithm on trees to general undirected graphs by using Bartal's [B96, B98] probabilistic approximation of metrics by tree metrics. In approximating an arbitrary graph by a tree an additional factor of O(log jV j log log jV j) is incurred in the approximation ratio where jV j is the number of vertices in the graph. Zosin and Khuller [ZK02] achieved very similar results in a later paper, again using the natural LP relaxation, however their algorithm is dual based and is substantially di erent from the primal based algorithm in [GKR98]. In [CCGG98] the algorithm of [GKR98] is derandomized to give a deterministic algorithm achieving the same approximation ratio. Approximation algorithms for the group Steiner problem have been obtained through a di erent direction by reducing it to the directed Steiner tree problem. The directed Steiner tree problem is a generalization of the Steiner tree problem to directed graphs and is de ned as follows. We are given an edge-weighted directed graph G = (V; A), a set of terminals T  V and a special vertex r 2 V called the root. The objective is to nd a minimum weight tree T rooted at r in which r has a directed path to every terminal. The directed group Steiner problem is also de ned similarly as a generalization of the group Steiner problem: we are given a root in addition to the groups and the goal is to nd a min-weight tree such that there is a directed path from the root to at least one vertex of each group. It is an easy observation that the directed Steiner tree problem 1

and the directed group Steiner problem are equivalent. For the directed Steiner tree problem, the current best known approximation algorithm is by Charikar et al.[CCC+99]. They gave an algorithm that achieves an O(i3 m1=i )-approximation1 but has a running time of O(ni ). Hence an O(m") approximation can be obtained in polynomial time for any xed ". More interestingly an O(log3 m) approximation can be obtained in quasi-polynomial time. These results carry over to the group Steiner problem. We note that the algorithm in [CCC+99] is a combinatorial algorithm based on a greedy framework [Z97, KP99, CCC+99].

Our Results: The two known poly-logarithmic approximation algorithms for the group Steiner problem are both based on rounding a solution to the linear programming relaxation [GKR98, ZK02]. In [GKR98] the following open question is asked: is there a combinatorial poly-logarithmic approximation algorithm for the group Steiner problem? In this paper we answer their question and give such an algorithm for trees. The approximation ratio obtained by our algorithm is O( 1"  (log n)1+"  log m) which is only slightly worse than the ratio of O(log N log m) given in [GKR98, ZK02] (note that log n  log N + log m). We note that our algorithm on trees allows us to obtain a combinatorial algorithm for general graphs2 via the algorithm of Charikar et al. [CCGGP98]. Given an input graph, the combinatorial and deterministic algorithm in [CCGGP98] produces an explicit distribution of dominating tree metrics with expected distortion O(log jV j log log jV j). We run our algorithm for trees on each of the trees in the distribution constructed by the algorithm in [CCGGP98]. Even and Kortsarz [EK02] recently claimed a combinatorial approximation algorithm for the group Steiner problem on trees with an approximation ratio of O(log2 n= log log n). The algorithm presented in [EK02] is incorrect. We still rely on some of the methods used in [EK02], among them: the greedy framework [Z97, KP99, CCC+99], geometric search, and avoiding small trees. The greedy algorithms in [KP99, CCC+99] run in quasi-polynomial time to obtain a poly-logarithmic ratio. In this paper we use several technical ideas to reduce the running time to be polynomial when the input graph is a tree. Some of our ideas are relevant for the directed Steiner tree problem. It is our belief that further ideas along these lines may yield a polynomial time algorithm with a poly-logarithmic ratio for the directed Steiner tree problem. In Section 6 we also point out how we can obtain an O(log2 n= log log n) ratio in quasi-polynomial time. This is of interest in light of the recent result in [HKK+02] that shows an (log2 n) lower bound in the integrality gap of the natural LP relaxation. We also indicate how our ideas lead to a combinatorial algorithm for the covering Steiner problem [KR00, KRS01]. Techniques: Our algorithm follows the greedy methodology of [KP99, CCC+99]. The density

of a partial solution F is the ratio of the weight of F divided by the number of groups covered by F . If an algorithm guarantees a partial solution with density at most times the density of the optimal tree, then this algorithm can be used iteratively to nd a tree that covers all groups and the resulting approximation ratio will be O( log m). Given a tree of height h, the algorithm in [CCC+99] yields a partial solution with density O(h) times the density of the optimal tree. However the running time of the algorithm is exponential in h. Obtaining polynomial running time requires modi cations that reduce both the exponent (i.e. the height) and the base (i.e. number of iterations, number of demand values per iteration, and 1 In [CCC+99], a ratio of O(i2 m1=i ) is claimed but this relied on an erroneous lemma in [Z97]. The lemma in [Z97] when xed results in a worsening of the approximation ratio claimed in [CCC+99]. 2 Bartal's [B98] result uses linear programming although it might be possible to solve the linear program in his paper using combinatorial methods.

2

number children per node). We accomplish this using using several ideas. The rst of these involve preprocessing the input tree to satisfy certain height and degree requirements.  Height reducing transformation: for any we give a transformation that reduces the height of the tree to O(log n) while incurring a multiplicative factor of O( ) in the weight of the optimal solution.  Degree reducing transformation: given a parameter we reduce the maximum degree of the tree to while increasing the height of the tree by O(log =2 n) and not increasing the weight of the optimal solution. By choosing = log" n and = log n we obtain a tree with height O(log n= log log n) and maximum degree O(log n). Further, we are guaranteed that there is a solution in this tree of weight at most O(log" n) times the weight of an optimal solution in the input tree. Finally, the greedy algorithm is modi ed so as to reduce the number of recursive calls by using geometric search and avoiding small trees. These modi cations combined with the preprocessing mentioned above result in a polynomial time combinatorial algorithm. Although our algorithm runs in polynomial time, it is not ecient. Our goal is to investigate the greedy approach to this problem and we have not made much e ort to choose the best possible parameters to optimize the running time. Our height reduction procedure is non-trivial and we use it to obtain an algorithm for trees. However, for arbitrary graphs our rst step is to reduce the graph to a tree via probabilistic approximation. The trees returned by the algorithms in [B96, B98, CCGGP98] are HSTs (hierarchically well separated) and height reduction for these structured trees that achieves the same bounds as our procedure is straight forward. For an example of this latter kind of height reduction, see Bartal et al. [BCR01].

Organization Section 2 contains the formal problem de nition and useful notation for the rest

of the paper. In Section 3 we present our greedy algorithm with geometric search and analyze its performance. The running time of the algorithm in Section 3 is shown to be polynomial for trees with height and degree appropriately bounded. Sections 4 and 5 show how any given tree can be transformed into one with these restrictions. We conclude in Section 6 with some remarks.

2 Preliminaries

Problem Formulation The group Steiner problem restricted to trees is de ned as follows. The

input consists of (a) a rooted tree T = (V; E ) with a root r, (b) non-negative edge weights w(e), and (c) a collection of vertex subsets fgi gi . The subsets gi are referred to as groups and vertices in [i gi are referred to as terminals. A group gi is covered by a subtree T 0 if gi \ T 0 6= . A cover of the groups is a a tree T 0 such that T 0 contains the root r and at least one terminal from every group. The goal is to nd a minimum weight cover. Note that we are de ning a rooted version of the group Steiner problem. This is without loss of generality, the unrooted version and the rooted version are polynomially equivalent. A tree T 0  T is z -cover if it covers z groups. We consider also the problem of nding a minimum weight z -cover. Following [GKR98] we make several assumptions, without loss of generality, about the structure of input. We may assume that all the terminals are leaves and vice versa: if an internal vertex v is a terminal we can hang a dummy terminal v0 o v with a zero cost edge and make v0 a terminal in 3

place of v. A leaf that is not a terminal can be removed. Moreover, we assume that the groups are disjoint: if a leaf terminal v is in multiple groups, we can hang distinct terminals with zero cost edges o v, one for each of the groups that contains v. Furthermore, we may contract paths, the interior nodes of which have degree two, so the degree of every node that is not a leaf or a root is at least 3. Note that the assumptions above rely on zero weight edges. The height reducing transformation (see Sec. 4) assumes that the weights are at least 1. This con ict can be solved by rst applying the height reducing transformation and only then introducing the zero cost edges needed to make the groups disjoint and the terminal set equal the leaf set.

Notation and De nitions The tree T is rooted at r. A child-parent relation and an ancestor-

descendant partial relation is induced over the vertices. The parent of a non-root node v is denoted by p(v). The subtree rooted at a node v is denoted by Tv . Let e = (u; v) be an edge where u is the parent of v. The subtree induced by the edge (u; v) is the tree Tv [ f(u; v)g, namely, the tree Tv in addition to the edge (u; v) and the node u. We denote the subtree induced by the edge (u; v) by T(u;v) . P Let m denote the number of di erent groups, and n = mi=1 jgi j denote the number of terminals. We denote the number of terminals in a subtree T 0 by n(T 0 ). For a rooted subtree Tu , we denote n(Tu ) simply by nu. The number of groups that contain terminals in T 0 is denoted by m(T 0 ). The sum of the edge weights in a subtree T 0 is denoted by w(T 0 ). The density of a subtree tree T 0 is de ned as w(T 0 ) :

(T 0 ) =4 m (T 0 )

We interpret every subtree T 0 that contains the root r as a partial cover. Namely, T 0 covers a subset of the required groups. A partial cover transforms a problem instance into a residual problem. The residual problem is obtained by removing the terminals of the groups covered by T 0. Observe that if T  covers the groups in T , then T  covers the groups in the residual problem. Hence the weight of an optimal solution to the residual problem is no greater than the weight of an optimal solution to the initial problem.

Preprocessing As discussed in Section 1 we pre-process the input tree to reduce its height and

degree before applying our greedy algorithm. The preprocessing is encapsulated in terms of a height reducing transformation and a degree reducing transformation. These transformations preserve the root and the leaves. Since a cover of the groups is de ned by a subset of the leaves, it follows that a cover of groups in the transformed tree can be trivially interpreted as a cover of groups in the original tree. We encapsulate these transformations in the following claims.

Claim 2.1 Given an instance of the group Steiner problem on a tree T with n leaves and and

an integer parameter , there is a linear time algorithm to transform T into a tree T 0 with height O(log n) such that the weight of the optimum solution in T 0 is no more than O( ) times the weight of the optimum solution in T .

Claim 2.2 Given an instance of the group Steiner problem on a tree T with n leaves and height h(T ), and an integer parameter  2, there is a linear time algorithm to transform T into a tree T 0 with height O(h(T ) + log =2 n) and maximum degree O( ). Further, the weight of the optimum solution in T 0 is the same as that in T . Claims 2.1 and 2.2 are shown in Sections 4 and 5 respectively. 4

3 A Recursive Greedy Algorithm with Geometric Search In this section we present our greedy recursive algorithm which is a similar to the greedy algorithms in [KP99, CCC+99]. The main di erence is that we use geometric search to reduce the number of recursive calls. Together with height and degree reducing transformations this results in a polynomial running time. To motivate and explain our modi cation we rst describe the algorithm in [CCC+99] for the directed Steiner tree problem specializing it to the case of the group Steiner problem on trees. The notation and description are only super cially di erent from those in [CCC+99].

3.1 Greedy Algorithm from [CCC+99]

Algorithm Group-Steiner gets as an input a subtree Tr0 rooted at r0 , edge weights w(e), groups of terminals fgi gi , and a covering demand z 0 . To simplify notation, we refer to the input as a pair (Tr0 ; z 0 ). The algorithm computes a z 0 -cover of Tr0 . A listing of Algorithm Group-Steiner appears as Algorithm 1. The stopping condition of the algorithm is when the input subtree consists of a single leaf, in which case the subtree is returned as the cover. When the input subtree is not a single leaf, the algorithm nds a z 0 -cover by adding augmenting trees, one by one, until a z 0 -cover is found. The variable z res equals the residual demand, namely, the number of groups that still need to be covered. The residual tree T res is the tree Tr0 minus the terminals of groups that have been already covered. The while-loop in lines 3-7 iterates while the union of the augmenting trees found so far is not a z 0 -cover. Each iteration of the while loop consists of three stages: recursion, selection, and update. In line 4, the algorithm is called recursively for all the subtrees hanging from children of r0 and for all demand values z 00 in the range [1; z res ]. The tree computed by Group-Steiner(Tu ; z 00 ) is denoted by Cu;z00 . In line 5, an augmenting tree, Taug , is selected as follows. For every tree Cu;z00 , the weight of the edge (r0 ; u) is added to the weight of Cu;z00 , and Taug is picked to be a tree of lowest density among these trees. In line 6 updating takes place. The updating adds the selected augmenting tree Taug to the cover found so far, and the residual demand z res and residual tree T res are updated. When the residual demand is zero, the union of the augmenting trees is a z 0 -cover, and the algorithm returns this cover. The following two lemmas adapted from [CCC+99] summarize the analysis of the above algorithm which yields an O(h(Tr0 ) log m) approximation in time O(nO(h(Tr0 )) ). Lemma 3.1 The running time of Algorithm 1 is bounded by O(nO(h)) where h = h(Tr0 ). res ) denote a min-weight z res -cover in T res Let Group-Steiner (Trres 0 ;z r0 . The following lemma res ). shows that the density of Taug is at most h(Tr0 ) times the density of Group-Steiner (Trres 0 ;z Note that augmenting trees are computed only if r0 is not a leaf. If r0 is a leaf, then the density of Tr0 is zero, and is obviously optimal.

Lemma 3.2

res )):

(Taug )  h(Tr0 )  (Group-Steiner (Trres 0 ;z

3.2 Geometric search

We now present the Modi ed-GS Algorithm. The modi cations reduce (a) the number of recursive calls per child of r0 in each iteration and (b) the number of iterations. The increase in the approximation ratio caused by these modi cations is constant. 5

Algorithm 1 Group-Steiner(Tr0 ; z0 ) - A recursive greedy algorithm for the Group Steiner Problem. 1: stopping condition: if r0 is a leaf then return (Tr0 ). 2: Initialize: cover ;, z res z 0 , and T res Tr0 . 3: while z res > 0 do 4: recurse: for every u 2 children(r0 ) and every z 00 2 [1; z res ] Cu;z00 5: 6:

7: 8:

Group-Steiner(Tures ; z 00 ):

select: (pick the lowest density tree) Taug min-densityfCu;z00 + (r0 ; u) j u 2 children(r0 ) & z 00 2 [1; z res ]g: update: (a) cover cover [ Taug . (b) zres zres ? m(Taug ). (c) remove all groups covered by Taug from T res. end while return (cover).

A listing of the Modi ed-GS-algorithm is given as Algorithm 2. The new or modi ed lines are underlined. The main change is in Line 4 where the recursive calls are with demand values that are powers of (1 + ) in the range [ deg(r0 )(1+1 1 )(1+)  z res; z res ]. This change is referred to as geometric  search since the demands are only powers of (1 + ). Small subtrees are avoided in the sense that the demand value is at least deg(r0 )(1+1 1 )(1+)  z res . The second change is that when a partial cover  that covers at least z 0 =h(Tr0 ) groups is computed for the rst time, that partial cover is stored as coverh. This modi cation is used in the proof of Lemma 3.4 instead of the simulation argument in the proof of Lemma 3.2. The nal cover that is returned is either cover or coverh, depending on which has a smaller density. Note that if coverh is returned in the top most call of Modi ed-GS, then one needs to invoke Modi ed-GS again on the residual tree until a full cover is computed. Lemma 3.3 Let  be the maximum degree of the tree and = (1 + 1=)(1 + ). The running time of Modi ed-GS(Tr0 ; z 0 ) is O(n h(Tr0 ) ) where =  h(Tr0 )  log z 0    log1+ . If h(Tr0 ) = O(log n= log log n),  = O(log n) and 1= = O(log n) the running time is polynomial in n. The following lemma proves that the modi cations have only a constant e ect of the density of the augmentation tree provided that 1=  O(h(Tr0 )).

Lemma 3.4

res )):

(Taug )  (1 + )2h(Tr0 )  h(Tr0 )  (Group-Steiner (Trres 0 ;z

We obtain the following theorem from the above two lemmas. Theorem 3.5 Let I be an instance of the group P Steiner problem on a tree T of height O(log n= log log n) and maximum degree O(log n) where n = i jgi j. Then Modi ed-GS runs in polynomial time on T and gives an O(h(T ) log m)-approximation. 6

Algorithm 2 Modi ed-GS(Tr0 ; z0 ) - Modi ed Group-Steiner Algorithm (uses geometric search). 1: stopping condition: if r0 is a leaf then return (Tr0 ). 2: Initialize: cover ;, z res z 0 , and T res Tr0 . 3: while z res > 0 do 4: recurse: for every u 2 children(r0 ) and for every z 00 power of (1 + ) in [ deg(r0 )(1+1 1 )(1+)  z res ; z res ]  Cu;z00 5:

select: (pick the lowest density tree) Taug

6:

7: 8:

Modi ed-GS(Tu ; z 00 ):

min-densityfCu;z00 + (r0 ; u)g:

update: (a) cover cover [ Taug . (b) zres zres ? m(Taug ). (c) remove all groups covered by Taug from T res. (d) if rst time m(cover)  z0=h(Tr0 ) then coverh cover. end while return (lowest density tree 2 fcover; coverhg).

Proof: We choose  = 1=h(T ) in Modi ed-GS. For this choice of  and the bounds on the height

and degree of T we see from Lemma 3.3 that Modi ed-GS runs in polynomial time. From Lemma 3.4, we obtain that (Taug )  (1+1=h(T ))2h(T ) h(T ) (Group-Steiner (T res ; z res )). Therefore (Taug )  e2 h(T ) (Group-Steiner (T res; z res )). It follows that we obtain an O(h(T ) log m) approximation. 2 1 (log n)1+" log m)-approximation Corollary 3.6 There is a combinatorial polynomial time O( 1"  log log n

algorithm for the group Steiner problem on trees.

Proof: We make use of Claims 2.1 with = log" n to transform the input tree to one with height

O(log n= log log n) and Claim 2.2 with = log n to reduce the maximum degree O(log n) while still keeping the height O(log n= log log n). In this process we lose a factor of O(log" n) approximation factor. Applying the algorithm Modi ed-GS to the transformed tree gives the desired result. 2 Now we prove Lemmas 3.3 and 3.4.

Proof of Lemma 3.3: Let t(h; z) denote the running time of Modi ed-GS on a tree of height

h and with z terminals. We obtain a recurrence relation for t(h; z) by bounding the number of recursive calls in Modi ed-GS. Let = (1 + 1=)(1 + ). In line 4 each child of r0 is called with at most log1+ values of z 00 since we do a geometric search with powers of (1 + ) in the range [z res = ; z res ]. Hence the total number of calls in line 4 is  log1+ . A call to Modi ed-GS with a covering requirement of z 0 returns a tree with either z 0 groups or z 0 =h(Tr0 ) groups. Hence in every 7

iteration of the while loop in line 3, z res is reduced by at least a factor of (1 ? 1=( h(Tr0 )). Hence the maximum number of iterations of the while loop is h(Tr0 ) log z 0 . Let be the total number of recursive calls. From the above we can bound by h(Tr0 ) log z 0   log1+ . For each recursive call the amount of processing required to compute the density of the returned tree and remove the covered groups is linear in the size of tree. Hence we can write a recurrence relation for t(h; z 0 ) as t(h; z 0 )  t(h ? 1; z 0 ) + cn for some constant c. From this we obtain t(h; z 0 )  cn h . When 1=, , and h(Tr0 ) are O(log n) it is easy to verify that is poly-logarithmic in n. If 2 h(Tr0 ) is O(log n= log log n) it follows that h(Tr0 ) is polynomial in n. Proof of Lemma 3.4: The proof is by induction on the height of Tr0 . The induction basis for h(Tr0 ) = 1 follows from the fact that the density of Taug is optimal. This follows simply by the fact that Taug is an edge to a closest leaf. The induction step is proved as follows. Let fu1 ; u2 ; : : : ; uk g denote the children of r0 . Let res ). Decompose Q into the trees Q 0   Q = Group-Steiner(Trres 0 ;z (r ;u1 ) [ Q(r0 ;u2 ) [    Q(r0 ;uk ) . Recall that Q(r0 ;ui ) is the tree Qui together with the edge (r0 ; ui ). We distinguish between \small" and \big" subtrees Q(r0 ;ui) as follows. A subtree is small if m(Q(r0 ;ui) ) < deg(r0z)res (1+1=) ; otherwise a subtree is big. Observe that the union of all small subtrees res covers at most z =(1+1=) groups. Hence the union of all big subtrees covers at least z res =(1+ ) groups. Let Qbig denote the union of big subtrees. It follows that (Qbig )  (Q )  (1 + ). By a simple averaging argument it also follows that one of the big subtrees has density no worse than that of (Qbig ). Without loss of generality we assume that Q(r0 ;u1 ) is this big subtree. Let zi = m(Q(r0 ;ui) ), namely, zi is the number of groups covered by Q(r0;ui) . Therefore we have that

(Q(r0 ;u1 ) )  (Qbig )  (1 + )  (Q ):

(1)

Let z1 denote the power of (1 + ) such that z1  z1 < (1 + )  z1 . Note that z1 is in the range of powers of (1+) considered in Line 4 (in fact, this is why the threshold between small and big subtree is divided by an extra factor of (1 + )). Consider the execution of Cu1 ;z1 Modi ed-GS(Tures 1 ; z1 ) in Line 4. The tree Cu1 ;z1 is computed by a sequence of augmenting trees, denoted by fR1 ; R2 ; : : : g. Let i denote the smallest integer such that

m([ji Rj )  h(zT1 0 ) :

(2)

r

Namely coverh = [j iRj in the execution of Modi ed-GS(Tures 1 ; z1 ). Observe that, during all the iterations of the while loop in which Cu1 ;z1 is computed, the subtree Qu1 is a cover that covers the residual demand. This implies that the weight of a min-weight cover of the residual demand is not greater than w(Qu1 ). Moreover, the residual demand when Rj is computed, for j  i, is at least z1 ? z1 =h(Tr0 ). Therefore, the the induction hypothesis when applied to Rj , for j  i, implies

w(Q )

(Rj )  (1 + )2h(Tu1 )  h(Tu1 )  z ? z =hu1(T 0 ) 1 1 r w (Qu1 ) = (1 + )2h(Tr0 )?2  (h(Tr0 ) ? 1)  z ? z =h 1 1 (Tr0 )  w(Q ) = (1 + )2h(Tr0 )?2  h(Tr0 )  z u1 : 1 8

(using h(Tu1 ) = h(Tr0 ) ? 1)

(3)

It follows that

([ji Rj )  (1 + )2h(Tr0 )?2  h(Tr0 ) 

w(Qu1 ) z1 :

(4)

Since Taug is selected to be a tree of min-density among cover and coverh in the execution of Modi ed-GS(Tures 1 ; z1 ), it follows that 0

(Taug )  w([jmi R([j ) +Rw()r ; u1 ) j i j w(Q ) r 0 ; u1 ) (by Eqs. 4 & 2)  (1 + )2h(Tr0 )?2  h(Tr0 )  z u1 + zw(=h 1 1 (Tr0 )  w(Qu1 ) w(r0 ; u1 ) 0 (by def. of z1 )  (1 + )2h(Tr0 )?2  h(Tr0 )  z  =(1 + )  + h ( T r z  =(1 + ) ) 1 1 u ) + w(r0 ; u1 ) w ( Q 1  (1 + )2h(Tr0 )?1  h(Tr0 )  z 1

(by de nition) = (1 + )2h(Tr0 )?1  h(Tr0 )  (Q(r0 ;u1 ) ) (by Eq. 1)  (1 + )2h(Tr0 )  h(Tr0 )  (Q ):

2

This proves the lemma.

4 Height reducing transformation In this section we present a height reducing transformation that proves Claim 2.1. Loosely speaking, the transformation produces a reduced height tree as follows. It nds a special subtree Q called a minimal -decomposition, the leaves of which induce subtrees that have 1= as many terminals as the whole tree. Observe that we use the term leaves here to mean leaves of Q. These leaves of Q may be internal vertices of the original tree T . The subtree Q is substituted by a height-3 tree with the same root and leaf-set. This procedure is then applied recursively to the subtrees induced by the leaves of Q. Namely, as a leaf u in Q roots a subtree Tu in T , we recursively make this modi cation in Tu . The reduction by a factor of in the number of terminals per three levels reduces the height to 3  log n. The penalty incurred by this transformation is O( ). Our transformation runs in linear time and is basic. Interestingly, setting = 8 reduces the height to log n incurring only a constant (multiplicative) penalty. 3

4.1 Preprocessing

We may assume that the edge weights are at least 1: zero weight edges can be contracted and the edge weights can be scaled by the minimum non-zero edge weight.

4.2 Faithful trees

Consider a tree T rooted at r. Every subset of leaves L  L(T ) induces a subtree TL consisting of the union of all the paths in T from the root r to the leaves in L. 3A

reduction of the tree height to log n appears also in [GKR98, Thm. 3.4 (full version)]; the reduction there is based on the values assigned to edges in a solution to the linear program.

9

De nition 4.1 Let A and B be two trees that share a root r and have the same leaf set L. The

tree B is an -faithful representation of the tree A if

8L  L : w(AL )  w(BL )   w(AL ):

Our goal is to reduce the tree T to a tree Te such that Te is an O( )-faithful representation of T and the height of Te is O(log n(T )). Note that every -approximate z-cover of Te induces an O(  )-approximate z-cover of T .

4.3 Minimal -decompositions

Loosely speaking, an -decomposition of a tree Tr0 is a partition of Tr0 into sub-trees, each subtree containing nr0 = terminals. However, such a partition may not be possible; consider, for example, the case that T 0 is a star. We therefore need to deal with the situation that there are many \light" descendants. Let u denote a descendant of r0. Let > 0. A node u is -light with respect to Tr0 if nu  nr0 = . A node u is -heavy with respect to Tr0 if nu  nr0 = . A node u is minimally -heavy if u is -heavy and v is -light, for every child v of u. Since is xed, we refer, in short, to -heavy leaves as heavy and to -light leaves as light. We denote the set of leaves of a tree T by L(T ).

De nition 4.2 A subtree Q  Tr0 is an -decomposition of Tr0 if (a) r0 2 Q, and (b) every leaf ` of Q is either -light or minimally -heavy.

Returning to the example in which Tr0 is a star, note that in this case Q = fr0 g is an -decomposition of Tr0 .

De nition 4.3 A subtree Q  Tr0 is a minimal -decomposition of Tr0 if (a) Q is an -decomposition of Tr0 , and (b) if Q0 $ Q, then Q0 is not an -decomposition of Tr0 . A minimal -decomposition of Tr0 is easy to compute. Simply search the subtree Tr0 and stop the search if a visited node u is light or all children of u are light; in the latter case u is minimally -heavy. Note that the number of heavy leaves in an -decomposition is at most . The following observation is an immediate consequence of the de nition of a minimal decomposition. This de nition essentially says that the parents of light leaves are along the path from the root r0 to some heavy leaf. Observation 4.4 Let Q denote a minimal -decomposition of Tr0 . If ` 2 L(Q) is -light, then there exists an -heavy leaf `0 2 L(Q) such that p(`) (the parent of `) is along the path from r0 to `0 . Observation 4.4 suggests the following decomposition of the edges of a minimal -decomposition Q rooted at r0 . The union of paths from the root to the heavy leaves of Q form the skeleton of Q, and the edges incident to light leaves form the u of Q.

10

4.4 Contracting minimal -decompositions

The second step of the height reducing transformation substitutes a minimal -decomposition Q of Tr0 by a tree of height 3 as follows. Let sk(Q) denote the skeleton of Q. We refer to (maximal) subpaths between branching points of the skeleton as branches. There are at most (2 ? 1) branches since there are at most leaves in sk(Q). By Observation 4.4, the edges in Q ? sk(Q) form the u of Q, namely, every light leaf of Q hangs from a node in sk(Q) ? L(Q). For every branch B in sk(Q), let L(B ) denote the set of light leaves that hang from nodes of B . The light leaves, if any, hanging from a branching point are assigned arbitrarily to one of the branches that emanate from the branching point. Fix a branch B of sk(Q). Denote the endpoint of B closer to the root of Q by v. We form bunches of light leaves that hang from B as follows. The bunch B0 is the set of light leaves that hang directly from v that have been assigned to the branch B . For every positive integer i, the i'th bunch, denoted by Bi , is de ned as follows:

Bi =4 f` 2 L(B ) j w(path(v; p(`))) 2 [2i?1 ; 2i )g: We now substitute Q with a height-3 tree Q0 over the same leaf set by promoting heavy leaves and bunches as follows. Every heavy leaf ` is connected in Q0 directly to the root r0 with an edge of weight w(path(r0 ; `)). As it turns out, dealing with light leaves in Q needs somewhat more care. Intuitively, the path from r0 to a light leaf ` is divided into 3 parts. The rst part is the path from r0 to v, the start-vertex of the bunch of `. The second part is the path from v to p(`), the parent of `, and the third part is the edge (p(`); `). This path is replaced with a path of length 3; the weight of each of these 3 edges equals the weight of the corresponding part in the path. For every branch B , the following subtree is constructed. We add a node v(B ), that corresponds to v, and an edge (r0 ; v(B )). The edge (r; v(B )) is given weight equal to the weight of the path from r0 to v. The leaves of the bunch B0 are connected to v(B ). The bunches Bi , for i > 0, are promoted as follows. For every non-empty bunch Bi , we add a new node bi that is the center of a star, the leaves of which are the light leaves in Bi . We then add the edge (v(B ); bi ). Weights are assigned as follows: (a) w(v(B ); `) w(v; `), for every ` 2 B0 , (b) w(v(B ); bi ) 2i , for every i > 0, and (c) w(bi ; `) w(p(`); `), for every ` 2 Bi . Figure 1 depicts the promotion of heavy leaves; note how the skeleton that spans the heavy leaves is substituted by a star. Figure 2 depicts the promotion of bunches along a single branch. 2

1

6 5

2

2

7

4

1

1

4

1

Figure 1: Promotion of heavy leaves in Q.

11

1

r0

v

4 3

2

8 6

7 4 1

2 2

3

8

B5

b3 1

B6

3

5

} B0 64

32

b5 2

6

4

1

b6 2

3

} } }

}

3

v(B)

B3

}

4

w(path(r0 ; v))

B0

}

5

}

1

2 1 9

B3

B5

B6

Figure 2: Promotion of bunches along a single branch.

4.5 The transformation

The height reducing transformation proceeds as follows. If r0 is a leaf, then it returns Tr0 . Otherwise, a minimal -decomposition Q is computed. The subtree Q is substituted by a depth-3 subtree. The transformation is then applied recursively to the light leaves of Q and to the children of the heavy leaves of Q.

4.6 Analysis of the height reducing transformation

Let Te denote the tree resulting when the height reducing transformation is applied to the tree T . In this section we prove that h(Te) is O(log n) and that Te is an O( )-faithful representation of T . The number of terminals hanging from subtrees in Te reduces by a factor of at least for every three levels of the tree. The following claim follows. Claim 4.5 h(Te)  3  log n. The following proves the faithfulness of the height reducing transformation. Claim 4.6 Te is an O( )-faithful representation of T . Proof: We may view the height reducing transformation as if it rst computes the minimal decompositions fQ(i)g and then substitutes height-3 trees for every minimal -decomposition Q(i). The minimal -decompositions fQ(i)g form a partitioning of the edge set of T into disjoint subtrees. Every subset of leaves L(T ) induces the tree TL . Moreover, the intersection TL \ Q(i) equals the subtree of Q(i) that is induced by the subset of leaves TL \ L(Q(i)). It follows that in order to prove 0 -faithfulness of Te, it suces to prove, for every Q(i), that the height-3 tree that substitutes Q(i) is 0 -faithful. Consider a minimal -decomposition Q rooted at r0 and a subset of leaves L  L(Q). Let Q0 denote the height-3 tree that substitutes Q. We wish to show that

w(QL )  w(Q0L)  0  w(QL ); where 0 = 4  (2 ? 1). Let L0 denote the heavy leaves in L and let L" denote the light leaves in L. Sub-additivity implies that

w(QL ) 

w(QL0 ) + w(QL" )

 2  w(QL):

(5)

We rst consider the heavy leaves L0 . The tree QL0 contains at most leaves. Consider an edge e 2 QL0 . Let c(e) denote the congestion of embedding the paths fpath(r0 ; u)gu2L0 in QL0 , namely 12

c(e) equals the number of heavy leaves in L0 that connect to the root r0 via e. The weight w(Q0L0 ) P equals e2QL0 c(e)  w(e). Since 1  c(e)  , it follows that w(QL0 )  w(Q0L0 )   w(QL0 ):

(6)

We now consider a single branch B , and use the notation used in the description of the promotion of light leaves along a single branch. To simplify notation, we denote L00 \ L(B ) by L00 (B ). We claim that

w(QL"(B) )  w(Q0L"(B) ) < 4  w(QL"(B) ):

(7)

Let `^ denote a leaf in L"(B ) whose parent p(`^) is the deepest node among fp(`)g`2L"(B) . Let BL00 denote the set of bunches for which Bi \ L00 (B ) 6= ;, for i > 0. Finally, let ^i denote the index of the bunch that `^ belongs to. We rewrite w(QL"(B) ) as follows:

w(QL"(B) ) = w(path(r0 ; v)) + w(path(v; p(`^))) + Similarly,

w(Q0L"(B) ) = w(path(r0 ; v(B ))) +

X i:Bi 2BL00

2i +

X

`2L"(B)

X `2L"(B)

w(p(`); `):

w(p(`); `):

(8)

(9)

The only di erence between w(QL"(B) ) and w(Q0L"(B) ) in the rewriting above is in the middle terms. Since `^ 2 B^i , it follows that

P

2^i?1  w(path(v; p(`^))) < 2^i :

Since 2^i  i:Bi 2BL" 2i < 2  2^i , Equation 7 follows. We now bound w(Q0L00 ) from above:

X w(Q0 ) L (B) B:L (B)6=; X w(Q