Packing Steiner trees Abstract 1 Introduction - CiteSeerX

6 downloads 0 Views 216KB Size Report
4 c if k is odd. Proof: We give the proof for the case that k is even. The proof for odd values of k is very similar. Create three vertices u, v, and w, and connect u.
Packing Steiner trees Kamal Jain Microsoft Research One Microsoft Way Redmond, WA 98052

[email protected]

Mohammad Mahdian  Lab for Computer Science M.I.T. Cambridge, MA 02139 [email protected]

Abstract

Mohammad R. Salavatipour y Department of computer Science University of Toronto [email protected]

The problem in its full generality (where for each Steiner tree, a di erent set of terminals is given) has applications in VLSI circuit design In this application, a Steiner tree is needed to share an electric signal by a set of terminal nodes. Another application, which is also our primary focus, arises in Internet domain. Imagine that a given graph represents a network. Suppose one of the node in the graph is the broadcaster. All other nodes are either users or routers(also called switches). The broadcaster wants to broadcast as many streams of movies as possible, so that the users have the maximum number of choices. Each stream of movie is broadcasted via a Steiner tree connecting all the users with the broadcaster. Since we allow parallel edges, we can also assume that each link can carry only one broadcast. So in essence we need to nd the maximum number of edge disjoint Steiner trees connecting all the users and the broadcaster. From theoretical perspective, both extremes of this problem are fundamental theorems in combinatorics. One extreme of the problem is when we have only two terminals. In this case a Steiner tree is just a path between the terminals, so the problem becomes the well known Menger theorem [8]. The other extreme is when all the vertices are terminals. In this case a Steiner tree is just a spanning tree of the graph, so the problem becomes the classical Nash-Williams-Tutte theorem [9, 11].

The Steiner packing problem is to nd the maximum number of edge-disjoint subgraphs of a given graph G that connect a given set of required points S . This problem is motivated by practical applications in VLSI-layout and broadcasting, as well as theoretical reasons. In this paper, we study this problem and present an algorithm with an asymptotic approximation factor of jS j=4. This gives a sucient condition for the existence of k edgedisjoint Steiner trees in a graph in terms of the edge-connectivity of the graph. We will show that this condition is the best possible if the number of terminals is 3. At the end, we consider the fractional version of this problem, and observe that it can be reduced to the minimum Steiner tree problem via the ellipsoid algorithm.

1 Introduction In the Steiner tree packing problem the objective is to nd the maximum number of edge disjoint Steiner trees in a given graph (See Section 2 for the de nitions). In this paper we study the version in which all the Steiner trees are required to connect the same set of terminal vertices (a.k.a. required vertices). This problem is motivated by both practical as well as theoretical considerations.  Research supported by Microsoft Research Theory

Group, as part of the summer internship program y Supported by Research Assistantship, Department of computer science, and University open fellowship, University of Toronto.

Theorem 1 [9, 11] Graph G(V; E ) contains k 1

give a lower bound for the number of edge disjoint S -Steiner trees, by showing that: if S is k-edge connected in G and jS j  2, then G has at least b( 32 )jV ?Sj kc edge-disjoint S -Steiner trees. In this paper, we will present an algorithm for the Steiner tree packing problem which shows that if a subset S in a graph is k-edge-connected, then there are jS j k edge-disjoint Steiner trees for S , where s is a sequence that tends to 4s as s tends to in nity. We will also show that this result is tight when S consists of 3 points. The novel idea of the algorithm is in trying to combine a collection of edge-disjoint paths with a collection of edgedisjoint Steiner trees by modifying the paths and trees in several (polynomial) iterations. We also study the problem of packing the maximum number of Steiner trees fractionally. We show that if there is an -approximation algorithm A for nding the minimum weight Steiner tree in a given graph for a given set of required points, then there is a polynomial time -approximation algorithm for nding the maximum fractional packing of Steiner trees in a given graph for a given set of required points.

edge-disjoint spanning trees if and only if

EG (P )  k(t ? 1) for every partition P = fV1; : : :; Vtg of V into non-empty subsets, where EG (P ) denotes the number of edges between distinct classes of P .

Since the problem of nding k disjoint spanning trees in a graph is a special case of nding k disjoint bases of a matroid, Theorem 1 can be derived from Edmonds' matroid partition theorem [2]. Both these theorems, Menger as well as NashWilliam-Tutte theorem, are max-min theorems and can be generalized into a single theorem which says that the maximum number of edge-disjoint Steiner trees is the same as the integer part of G (P ) , where the minimum the minimum value of EjPj? 1 is over the set of all partitions of the vertices of graph that include at least one terminal in each class, with EG (P ) denoting the number of edges between distinct classes of P , and jPj denoting the number of classes of P . This statement is not true if we are not in the extreme cases, as shown by an example in [7]. It is an easy exercise to show using Theorem 1 that if a graph G is 2k-edge connected then it has k edge disjoint spanning trees. Therefore, NashWilliam-Tutte's and Menger's theorems give necessary and sucient conditions for the existence of k edge disjoint S -Steiner trees when S = V or jS j = 2. However, for arbitrary set S , i.e when S 6= V and jS j > 2, much less is known. In fact, there is no good general non-trivial sucient bounds, as far as we know. The special case in which V ? S is independent is considered by Kriesell [7] and Frank et al. [3]. A corollary of the main theorem of [7] is that for a graph G(V; E ) and S  V , if V ? S is an independent set and S is k(k + 1)-edge connected, then G contains k edge-disjoint S -Steiner trees. A stronger version of this appeared in [3], where they weaken the requirement for connectivity of S to 3k-edge connectedness. They also prove some generalizations of Theorem 1 to hypergraphs. For arbitrary set S , Petingi and Rodriguez [10]

2 Preliminaries We only consider undirected connected nite graphs. The edge connectivity of a connected graph G is the minimum number k of edges required to remove from G to make it disconnected. Let G(V; E ) be a graph and S  V be a set of at least two vertices. We say S is k-edge connected in G if we have to remove at least k edges from G to break G into r  2 connected components C1; : : :; Cr, such that S 6 Ci, for 1  i  r. For a graph G(V; E ) and a set S  V of at least two vertices, a S -Steiner tree is a subgraph T (V 0; E 0) of G which is a tree and S  V 0. The problem of packing Steiner trees for a given graph G(V; E ) and S  V asks to nd a set of maximum size of edge disjoint S -Steiner trees of G. 2

H i,1

fj,a

2

3

Qi

v3

Qj 1

Pi

1

v2

H i,3

Figure 1: Shortcutting procedure

Theorem 2 Let G(V; E ) be a graph and S = fv ; v ; v g be a subset of V . Assume that v and 1

{

v1

{

In this section we show that for a graph G(V; E ) and S  V with jS j = s, if S is k-edge connected, then there are s k edge-disjoint Steiner trees for S , where s is a sequence that tends to 4s as s tends to in nity. For simplicity of exposition, we rst prove the following weaker theorem, whose proof contains the main idea that we will use later on in proving the above result.

H i,2

{

3 The Algorithm

1

v2 are k-edge connected, and v1 and v3 are k2 -edge Now we remove Pj from P and add Pj to it. By connected (in G). Then G has k2 edge disjoint S - doing this, P is sill a set of k edge disjoint paths from v3 to v1 . We call this a shortcutting of Pj on Steiner trees. Qi. We keep doing the shortcutting procedure, as k Proof: Let P = fP1; P2; : : :; P k2 g be a set of 2 long as we are in a wasteful situation. edge disjoint paths from v3 to v1. Similarly, let Let T be the total number of the edges that are Q = fQ1; Q2; : : :; Qkg be a set of k edge disjoint both in (some path in) P and in (some path in) paths from v1 to v2 . For 1  i  k2 and 1  j  k, Q, before the rst shortcutting. we denote the edges of Pi 2 P (starting from v3) by ei;1; ei;2; : : :; ei;li , and denote the edges of Lemma 3 After at most T + k2 iterations of the Qj 2 Q (starting from v1) by fj;1; fj;2; : : :; fj;l0j , shortcutting procedure, we are in a non-wasteful where li and lj0 are the lengths of Pi and Qj , re- situation. spectively. Note that the paths in P are not necessarily disjoint from the paths in Q. We say Pi and Proof: Consider a path Qi 2 Q that is intersectQj are intersecting in an edge e if e is in both ing with some paths in P . Suppose that fi;a1 2 Qi Pi and Qj . By \the rst intersection of a path is the rst intersecting edge of Qi with P , and Qi with P " we mean the rst edge in Qi (starting fi;a1 2 Pi1 . Let b1  0 be the maximum integer for which the edges Hi;1 = ffi;a1 ; fi;a1+1 ; : : :; fi;a1+b1 g from v1 ) that is also part of a path in P . of Q are also edges of P 1 . Then Hi;1 is called the Assume that there exists a path Qi 2 Q whose rst iintersecting section iof Qi. If fi;a2 2 Pi2 is the rst intersection with P is fi;a1 = ej;x 2 Pj and rst intersecting edge of Qi with after fi;a1 +b1 Pj has some edge ej;x+y 62 Qi, where y  1. and b2  0 is the maximum integerP for which the We call this situation a wasteful situation, in edges of Qi in Hi;2 = ffi;a ; : : :; fi;a +b g are also 2 2 2 which we do the following procedure, called short- edges of Pi , then Hi;2 is called the second inter2 cutting procedure: we construct a trail (some- secting section of Q . The other intersecting seci times called a walk) Pj from v3 to v1 by short- tion of Qi are de ned similarly. (see Figure 1). cutting Pj at ej;x . More speci cally, Pj = Let Ti be the number of intersecting sections of ej;1; ej;2; : : :; ej;x; fi;a1?1 ; fi;a1?2; : : :; fi;1. The only Qi. By this de nition: case in which Pj is not a simple path is when k ej;(x?1) and fi;a1?1 are incident with the same end X  Ti  T: point of ej;x . In this case we transform Pj into i =1 a path by removing ej;x from Pj . Since fi;a1 is the rst intersection of Qi with P , it is easy to see It is not dicult to see that applying the shortthat Pj is not intersecting with any path in P? Pj . cutting procedure on a path of P for the rst time 3

For simplicity assume that k is a multiple of (s ? 1). Consider a graph G(V; E ) and S  V where S = fv1 ; v2; : : :; vs g, and assume that S is k-edge connected in G. Create a new vertex u and connect it to each of v1 ; : : :; vs?1 with s?k 1 multiple edges. It is easy to see that u and vs are k-edge connected and therefore, by Menger's theorem, there are k edge-disjoint paths from vs to u. These k edge-disjoint paths can be partitioned into s ? 1 groups, called U1 ; : : :; U(s?1), such that each Ui , 1  i  s ? 1, contains s?k 1 edge-disjoint paths each of which consists of a path from vs to vi followed by an edge from vi to u. Remove u and all its incident edges. We make each of the k s?1 edge-disjoint S -Steiner trees by selecting one path from each (shortened) Ui , for 1  i  s ? 1, and combining them. There are a few points worth mentioning here. Firstly, as you may have noticed, both of these results guarantee the existence of s?k 1 S -Steiner trees all of which are stars. This is stronger than what we need, and of course, it doesn't come for free: we need relatively strong assumptions. Secondly, the argument in the preceding paragraph needs a slightly stronger assumption than what we need when using the idea of Theorem 2. In fact, as we see in the next theorem, we can get a better bound using the idea used in the proof of Theorem 2.

does not increase the number of intersecting sections of any path in Q. We show that after each iteration of the shortcutting procedure on a path of P that has been shortcut (at least) once before, Ti decreases by 1, for some 1  i  k. The proof of the lemma follows easily. Suppose that we are going to shortcut a path Pi1 2 P , which has been shortcut (at least) once before, on path Qj 2 Q. Let Qi 6= Qj be the last path in Q on which Pi1 was shortcut. This implies that the edges of Hi;1 , the rst intersecting section of Qi which includes the rst edge of Qi , are all edges of Pi1 as well. Let fj;a1 be the rst edge of the rst intersecting section of Qj . Since we are going to shortcut Pi1 on Qj , fj;a1 must be equal to some edge ei1 ;x 2 Pi1 and Pi1 must have some edge ei1 ;x+y 62 Qj , for some y  1. In particular the edges in Hi;1 are all after ei1 ;x on Pi1 . (see Figure 1). Therefore, when we shortcut Pi1 on Qj , all the edges of Pi1 after ei1 ;x will not be part of Pi1 anymore. In particular, the edges in Hi;1 will not be in Pi1 anymore. So the number of intersecting sections of Qi decreases by one. So let's assume that we are in a non-wasteful situation. To every path Qi 2 Q that has a nonempty intersection with P we associate a unique path in P , which is the path that contains the rst intersecting section of Qi with P . This is exactly the path in P whose last edge is equal to fi;1 , the rst edge of Qi . Therefore, the number of paths in Q that have an intersection with a path in P is not more than k2 (the number of paths in P ). So if we remove all the edges of the paths in P from G, there are still k2 edge disjoint paths from v1 to v2. Each such path together with a path from P forms a S -Steiner tree. By induction on S and using the shortcutting procedure, it can be proved that for a graph G(V; E ) and S  V where S = fv1; v2; : : :; vsg, if v1 and vi are i?k 1 -edge connected in G, for 2  i  s, then there are s?k 1 S -Steiner trees in G. We can guarantee the existence of the same number of S -Steiner trees, under the stronger assumption that S is k-edge connected, using the following simple argument.

Theorem 4 Let G(V; E ) be a graph and S be a subset of s vertices of G. If S is k-edge-connected in G, then there are b s kc edge-disjoint S -Steiner trees in G, where i is de ned by the following recurrence relation. 2 = 1

8i > 2; i = i? ? i? =4 1

2

1

(1)

Proof Sketch: We use induction on s. If s = 2, the theorem follows from Menger's theorem. Suppose s > 2, and let v1 ; v2; : : :; vs be the vertices in S . De ne S 0 := S n fvsg. By induction hypothesis, there is a collection T of s?1 k edge-disjoint S 0-Steiner trees in G. We denote these Steiner trees by T1 ; : : :; T s?1k . Also, from Menger's theorem, we know there are k edge-disjoint paths 4

After we shortcut all paths that intersect T1 in a red edge that is the closest red edge to one of vi 's, we perform the same procedure for T2. However, if a path Pj is shortcut at e while processing T1, the edges of Pj that are discarded in this process (i.e., edges that come after e in Pj ), are no longer considered red edges. We perform the shortcutting procedure on all trees T1 ; : : :; T s?1k . After this process, we might have paths that are shortcut twice. For example, Pj might be shortcut at an edge e while processing T1, and at an edge e0 before e while processing T2. If such a thing happens, we mark the edges of the part of Pj that is discarded during the shortcutting procedure for T2 (i.e., the edges that come after e0) as non-red edges (so e is no longer a red edge), and perform the procedure for T1 again. That is, each of the vertices vi1 ; vi2 ; : : :; vi` that had e as their closest red edge in T1 previously will have to choose their closest red edge again, with the updated set of red edges. We iterate this procedure until every Pj is shortcut for at most one tree. It is not dicult to see that this procedure ends, since in every iteration some of the edges that were originally in Pj are discarded. At the end of the above procedure, we are in a situation where each Pj is shortcut for at most one tree Ti . Let Qs denote the collection of Pj 's that are not shortcut (and therefore are still paths from vs to v1 ), let f denote the size of Q0 . Also, let xi (i = 0; : : :; s ? 1) denote the number of Tj 's that are used for shortcutting exactly i paths. For i > 0, from these trees and the paths that are shortcut through them, we get a collection of ixi path-trees, that we denote by Qi . We let Q0 denote the collection of x0 trees that are not used in shortcutting any path. From the above de nitions, since there are k ? f of Pj 's that are shortcut exactly once in the above procedure, we have

vi ei vj ej

Figure 2:

P1; P2; : : :; Pk between vs and v1. We consider these paths as paths starting from vs . So, we say an edge e appears before (after) e0 in Pj if e is closer (farther) to vs than e0 . The basic idea is to combine these trees and paths to obtain Steiner trees for S . The diculty arises when there trees and paths have some edges in common. We say that an edge e is a red edge if it is both in a tree Ti and a path Pj . Consider a tree, say T1. For each required point vi , 1  i  s ? 1, nd the closest red edge to vi in T1 . Let e be a red edge in T1, i.e., e is in T1 \ Pj for some path Pj . If e is the closest red edge to several vertices vi1 ; vi2 ; : : :; vi` in T1, then we \shortcut" the path Pj to vi1 ; vi2 ; : : :; vi` at e. That is, we remove the part of Pj after e, and add to it the paths in T1 between e and vi1 ; vi2 ; : : :; vi` . Notice that after this operation, Pj is no longer a path; it starts from vs as a path, but after reaching e it branches into several branches each ending in one of vir 's. We call such a structure a path-tree, as we want to emphasize the distinction between the part between vs and e (which comes from the original path Pj ), and the part after e (that comes from the tree T1). It is not dicult to see that the collection of Pj 's after the above short cutting procedure can be assumed to be disjoint, without loss of generality, since an intersection between Pj 's can occur after the above procedure only if the paths between two required points vi and vj and their respective closest red edges ei and ej intersect, and in such a situation we can pick ei as the closest red edge to both vi and vj (See Figure 2).

sX ?1 i=0

5

ixi = k ? f:

P For simplicity, we let xs := f=s. Therefore, the si=p+1 ixi )=pe S -Steiner trees. Similarly, from each Qi , i = p; p ? 1; : : :; 1, we get xi S -Steiner above equation can be written as trees. Therefore, the total number of S -Steiner s X ixi = k: (2) trees that we obtain is equal to i=0 pX ?1 s X ix ) =p e + xi SOL ( x ) = x + x ? d ( x ? i p 0 p 0 Also, since each of the Tj 's is counted in exactly i =p+1 i =1 one of xi 's, we have 66 7 p s i 7 X X 6 7 p ? 1 sX ?1 = 4 p x0 + xi + x (4) i5 xi = s?1 k: (3) i=p+1 p i=1 i=0 Here we have to be careful about the two special It is not hard to see that the collection of all k cases p = 0 and p = s. Using the same method, paths and path-trees in Q1 [  [Qs and x0 trees in it is not dicult to see that in these two cases we ?1 xi Q0 constitute a collection Q of k + x0 edge-disjoint get SOL0(x) = Psi=1 ixi and SOLs(x) = Psi=0 subgraphs of G. In the rest of the proof, we will S -Steiner trees, respectively. By Equations 2 and try to combine the subgraphs in Q to construct 3, we have SOL0(x) = k and SOLs (x) = s?1 k. edge-disjoint S -Steiner trees in G. Therefore, in these cases we get at least s?1 k > Ps Let p be a number such that ix < x  0 s k edge-disjoint S -Steiner trees. Thus, we may i=p+1 i Ps Pis=p ixi. If x0  sxs , we de ne p = s, and if assume without loss of generality that 1  p < s. i=1 ixi < x0 , we de ne p = 0. For every i = Now that we have computed the number of S p + 1; : : :; s ? 1, from each of the ixi path-trees in Steiner trees that our algorithm nds in terms of Qi, we pick one path from vs to one of v1; : : :; vs?1. xi's, we can analyze the worst-case behavior of our Also, Qs is by itself a collection of P sxs paths from algorithm by treating xi's as variables and solving vs to v1. Thus, we can obtain si=p+1 ixi dis- the following linear program. joint paths from vs to one of v1 ; : : :; vs?1, from p s i Qp+1 [    [ Qs . There are pxp path-trees in X p ? 1x + X minimize x + Qp, corresponding to xp trees in T P . Consider the p 0 i=1 i i=p+1 p xi (5) s path-trees corresponding to d(x0 ? i=p+1 ixi )=pe s of Psthese trees, and from each of these pd(x0 ? subject to X ixi = k i=p+1 ixi)=pe path-trees, take one path from vs i=0 to one of vP1; : : :; vs?1 . This givesPus a collection s ?1 X of pd(x0 ? si=p+1 ixi )=pe  x0 ? si=p+1 ixi paths xi = s?1k from vs to one of v1; : : :; vs?1 . Therefore, we get i=0 at least x0 edge-disjoint paths from vs to one of 8i : xi  0 v1; : : :; vs?1 at the expense of destroying the pathtrees in Qs ; Qs?1; : : :; Qp+1P , and the path-trees in This is very similar to the idea of using factorQp corresponding to d(x0 ? si=p+1 ixi)=pe trees in revealing LP's explained in [6, 5]. In order to upT . Each of these paths can be joined with one of per bound the solution of the above linear prothe trees in Q0 to formPan S -Steiner tree. The re- gram, we multiply its rst constraint by 1=p2 and maining pxp ? pd(x0 ? si=p+1 ixi )=pPe path-trees in its second constraint by (p ? 1)=p. We obtain the Qp can be grouped into xp ?d(x0 ? si=p+1 ixi)=pe following. groups, each group consisting of p path-trees that sX ?1  p ? 1 i  correspond to the same tree in T . The union + 2 xi + s2 xs = p p of the path-trees in each group is a graph that i=0 p connects all vertices in S , and therefore contains 1 + p ? 1  k (6) an S -Steiner tree. This gives us xp ? d(x0 ? p2 p s?1

6

It is easy to see that for i  p, p?p 1 + pi2  1 and Proof: We use induction on n. The statement for i > p p?p 1 + pi2 < pi . Also, ps2 < sp . Thus, since holds trivially for n = 2. Suppose n > 2 and the claim is true for all values up to n ? 1. By (8): xi  0 for every i, 1 2 1 p s i 1 X p ? 1x + X n  2 ? (n ? 1) + 4 p 0 i=1 xi + i=p+1 p xi sX ?1  p ? 1 i  = 12 ? n ? 2 2 s (n ? 1) + p2 xi + p2 xs  p i=01 p ? 1   12 ? n1 : = p2 + p s?1 k (7)

This shows that in the worst case our algorithm nds at least b( p12 + p?p 1 s?1 )kc edge-disjoint S Steiner trees. The minimum of this expression is at p = 2= s?1 . Thus, the number of edge-disjoint S -Steiner trees that our algorithm nds is at least b( s?1 ? 2s?1 =4)kc = b skc. Notice that the algorithm given in the proof of Theorem 4 can be easily implemented in polynomial time. Thus, since the edge-connectivity of the set S is an upper bound on the maximum number of edge-disjoint S -Steiner that we can pack in G, we get the following corollary.

Claim 8 For n  2: n  12 ? 41n :

Proof: Again, we use induction on n. The base

case n = 2 is trivially true. Suppose the statement holds for all values up to n ? 1. By (8) and the induction hypothesis: 2  n  12 ? 4(n 1? 1) + 14 = 12 ? 16(4nn ?? 51)2 2 n  1 ? 4n2 ? 8n + 4 = 12 ? 164nn(n??51) 2 2 16n(n ? 1)2 Corollary 5 There is a polynomial time algorithm for the Steiner tree packing problem with an = 12 ? 41n : approximation ratio of s , where s is the number of required points. Claim 8 will be used to prove the following Lemma 6 Let n be the sequence de ned by equa- stronger statement. tion (1). Then: Claim 9 For a suitable constant c (to be de ned lim n = 4 : n later): n!1

Proof: Let n = ? n , for n  2. Therefore, n  21 ? n1 + n lnc n : n = ?4 n + 2 and from equation (1) we have: Proof: For small values of n, the claim is de ( ? 4 n? + 2) nitely true if we let c to be a large enough con?4 + 2 = ?4 + 2 ? 1 2

n

n?1

4

= ?4 n2?1 ? 1 =) n = n2?1 + 41 : Claim 7 For n  2: n  21 ? n1 :

1

4

2

stant. Let's assume that n is suciently large and that the claim is true for all integers up to n ? 1. (8) From equation (8) we have: n = n2?1 + 14  n ? 1) ? c 2 + 1  12 ? (nln( ? 1) ln(n ? 1) 4 7

= 12 ? (ln(n ? 1) ? c)[(2n ?2 2) ln(n ? 1) + c] : (n ? 1) ln (n ? 1) (9) So, to prove the claim, it is enough to show that: (ln(n ? 1) ? c)[(n ? 2) ln(n ? 1) + c]  ln n ? c ; n ln n (n ? 1)2 ln2(n ? 1) or equivalently, that:

theorems is perhaps the case where the number of required points is three (jS j = 3). In this case, Theorem 4 gives the following corollary.

Corollary 10 Let G(V; E) be a graph and S be a

subset of 3 vertices of G. If S is k-edge-connected in G, then there are b 43 kc edge-disjoint S -Steiner trees in G.

The following theorem shows that the constant

3=4 in the above corollary cannot be replaced with n ln n(ln(n ? 1) ? c)[(n ? 2) ln(n ? 1) + c] 2 any larger constant. 2 ?(ln n ? c)(n ? 1) ln (n ? 1)]  0: (10) Theorem 11 For any positive value of k, there The expansion of the left-hand side of (10) is: exists a graph G(V; E ) and a set S  V with size ?cn2 ln n ln(n ? 1) + 3cn ln n ln(n ? 1) ? c2n ln n jS j = 3 such that S is k-edge connected in G and the maximum number of edge disjoint S -Steiner ? ln n ln2(n ? 1) + cn2 ln2(n ? 1) trees of G is b 34k c for the case that k is even, and 2 2 ?2cn ln (n ? 1) + c ln (n ? 1) 3k +1  cn2 ln(n ? 1)[ln(n ? 1) ? ln n] + cn ln n ln(n ? 1) b 4 c if k is odd. ?c2n ln n ? ln n ln2(n ? 1) + c ln2(n ? 1) Proof: We give the proof for the case that k is 2 even. The proof for odd values of k is very similar.  cn ln(n ? 1)[ln n ? 2] ? c n ln n u ? ln n ln2(n ? 1): (11) Create three vertices u, v , and w, and connect and v with k multiple edges. For 1  i  k2 , subLet c = 3 ln4n0 in which n0 is the smallest integer divide the i'th edge between u and v (transform it such that: into a path) by creating 2(k ? 2i + 1) new vertices on it. Name the i'th path Pi and the vertices on cn0 ln(n0 ? 1)[ln n0 ? 2] ? c2n0 ln n0 it (starting from u) u; vi;1; vi;2; : : :; vi;2(k?2i+1); v . ? ln n0 ln2(n0 ? 1)  0: Connect w to v1;2i?1 for 1  i  k2 , and to k By this de nition, the claim is true for n  n0 by v1;2j for 2  j  (k ? 1). The edges between vertices of Pi and Pi+1 , for 1  i < k2 are: Claim 8, and for n > n0 by equation (11). (vi;2; vi+1;1), (vi;4 ; vi+1;3), : : :, (vi;k?2i ; vi+1;k?2i?1 ), From Claims 7 and 9: (vi;k?2i+2 ; vi+1;k?2i), (vi;k?2i+4 ; vi+1;k?2i+2 ), : : :, 1 1 1 1 c (vi;2(k?2i)+1; vi+1;2(k?2i?1)). Call this graph G and 2 ? n  n  2 ? n + n ln n =) let S = fu; v; wg. A sample graph for k = 8 is 4 ? 4c   4 =) shown in Figure 3. n n ln n n n By corollary 10, we only have to show that if lim n = 4 : n Opt is a maximum set of edge disjoint S -Steiner n?!1 trees of G then jOptj  b 34k c. Consider such a set Opt. We can assume that each leaf of a tree in Opt is in S . Otherwise remove every leaf that is in S and we still have a S -Steiner tree. We 4 Packing Steiner trees with not partition the trees of Opt into three sets: three terminals X : Trees with only two leaves, w and either u or v . These trees are made from a (u; v ) edge The simplest case of the Steiner tree packing probplus a path from u or v to w. lem after the Menger and Nash-Williams-Tutte 8

maximize u

P4

X T 2T

xT

(12)

subject to 8e 2 E :

v

8T 2 T

X

T :e2T : xT

xT  1

2 f0; 1g By relaxing the condition xT 2 f0; 1g in the above program to xT  0, we obtain a linear program

P3 P2 P1

that formulates the fractional Steiner tree packing problem. This is a natural relaxation of the origw inal problem, and one might hope to get a good Figure 3: An extremal graph for jS j = 3 upper bound by solving this linear program. The dual of this linear program is as follows. Y : Trees whose only leaves are u and v. These X ye (13) trees are made from two vertex disjoint paths minimize e 2 E from u and v to w. X subject to 8 T 2 T : ye  1 Z : Trees whose leaves are u, v and w. These trees e2T are made from three paths from a vertex of 8e 2 E : ye  0 one of the paths P1 ; : : :; P 2k to u, v , and w. In other words, the dual LP captures the followSince each tree T 2 Z has one edge from the ing problem: Assign non-negative weights to the edges incident to u (and not incident to v ), the edges of the graph G in such a way that the minmaximum number of edge disjoint paths from u imum weight S -Steiner tree has weight at least 1, to w that don't use any edge of a tree in Z or any and the total weight of the edges is minimum. The edge between u and v is at most k2 ? jZ j. Using diculty in solving this linear program arises from a similar argument, the number of edge disjoint the fact that the separation oracle for the above paths from u to w that don't use any edge of a tree linear program is the Steiner tree problem, and in Z or any edge between u and v is at most k2 ?jZ j. is therefore NP-hard. In this section, we observe Therefore, the sum of degrees of the vertices of the that it is possible to use the known approximatrees in X and Y is: tion algorithms for the Steiner tree problem as an approximate separation oracle in the Ellipsoid al4jX j + 4jY j  2( k2 ) + 2( k2 ? jZ j) + 2( k2 ? jZ j) gorithm to nd an approximate fractional packing = 3k ? 4jZ j: of Steiner trees. This implies that jOptj = jX j + jY j + jZ j  b 34k c. Theorem 12 Assume there is a polynomial time -approximation algorithm A for nding the minimum weight Steiner tree in a given graph for a given of required points. Then there is a poly5 Packing Steiner trees fraction- nomialsettime -approximation algorithm for ndally ing the maximum fractional packing of Steiner trees in a given graph for a given set of required The Steiner tree packing problem can be formu- points. lated as the following integer program. In the following T denotes the collection of all S -Steiner Proof: We run the ellipsoid algorithm on the lintrees in the graph. ear program 13 using the algorithm A as the sepa9

ration P oracle. More precisely, we add the inequality e2E ye  R to the linear program, and use binary search to nd the smallest value of R for which the linear program is feasible. The separation oracle P acts as follows: First, it checks the inequality e2E ye  R. Next, it runs the algorithm A to nd the approximate minimum weight Steiner tree in the graph, using ye 's as the weights of the edges. If the answer that A nds has weight less than 1, then we know that ye 's are not a feasible solution of the linear program 13, and the Steiner tree of weight less than 1 gives us a separating hyperplane. If the approximate minimum Steiner tree that A nds has weight at least 1, then we accept ye 's as a feasible solution and therefore the ellipsoid algorithm decides that the linear program is feasible. Of course, since A is just an approximation algorithm, the above conclusion might be incorrect, and the linear program might actually be infeasible. However, since the approximation factor of A is at most , we know that in this case, ye 's constitute a feasible solution of the linear program, with R replaced by R. Therefore, if R is the minimum value of R for which the algorithm decides that the linear program is feasible, then we know that the linear program is infeasible for R ?  (where  depends on the precision of the algorithm) , and is feasible for R . Therefore, the optimum solution of the dual program 13 is between R and R . The above algorithm computes the approximate value of the solution of the primal program 12. In order to compute the actual solution, we use the technique used in [1]. The total number of separating hyperplanes found by the above separation oracle while running the ellipsoid algorithm for R ?  is bounded by a polynomial. These separation oracles are enough to show that the solution of the dual program 13 is at least R . Therefore, if we consider the set of primal variables that correspond to these separating hyperplanes, we get a set of polynomially many primal variables. By LPduality, if we x the values of the other variables to 0, the resulting program still has solution at least R . However, after xing the values of other variables to 0 we obtain a polynomial size linear

program, which we can solve in polynomial time, and nd the optimum solution. By the above argument this optimum solution has value at least R. Furthermore, we know that the optimum solution of the dual program 13, and therefore the primal program 12 is not more than R . The above theorem together with the algorithm of Hougardy et al. [4] for the minimum Steiner tree problem implies the following corollary.

Corollary 13 There is a 1.598-approximation al-

gorithm for the fractional Steiner tree packing problem.

6 Conclusion In this paper, we considered the problem of packing Steiner trees. It is somehow a generalization of both Nash-William-Tutte's and Menger's theorems. We gave a polynomial time algorithm that for a graph G(V; E ) and S  V with at least two vertices, if S is k-edge connected in G then it nds sk-edge disjoint S -Steiner trees, where jSj  jS4j , for large S . We showed that this is tight for the case that jS j = 3. There are several problems left open. The rst one is to improve the main result of section 3. Can we nd a better lower bound for the number of edge-disjoint Steiner trees under the same connectivity condition on S ? Can we prove something similar to Theorem 11 for larger values of jS j? In terms of the lower bounds, we know very little about the problem. It is claimed in [3] that the Steiner tree packing problem is known to be NPcomplete (We have proved this fact independently for the special case where we want to pack two edge-disjoint Steiner trees). We don't know of any inapproximibility result for this problem. Also, the NP-completeness of the fractional Steiner tree packing problem is open. Acknowledgment. We would like to thank Santosh Vempala for pointing out the technique used in [1] for nding the solution of an exponential sized linear program from its dual.

10

References [1] B. Carr and S. Vempala. Randomized metarounding. Proc. of the 32nd ACM Symposium on the theory of computing (STOC '00), 2000. [2] J. Edmonds. Minimum partition of a matroid into independent sets. J. Res. Nat. Bur. Standards Sect., 869:67{72, 1965. [3] A. Frank and T. and Kiraly. On decomposing a hypergraph into k connected sub-hypergraphs. Technical report published by the Egrevary Research Group, Budapest, Hungary. ISSN 1587-4451, 2001. [4] S. Hougardy and H.J. Promel. A 1.598 approximation algorithm for the steiner problem in graphs. Proc. of 10th ACM-SIAM Symp. on Disc. Alg. (SODA), pages 448{453, 1999. [5] K. Jain, M. Mahdian, E. Markakis, A. Saberi, and V.V. Vazirani. Approximation Algorithms for Facility Location via Dual Fitting with Factor-Revealing LP. unpublished. [6] K. Jain, M. Mahdian, and A. Saberi. A new greedy approach for facility location problems. In ACM Symposium on Theory of Computing, 2002. [7] M. Kriesell. Local spanning trees in graphs and hypergraph decomposition with respect to edge connectivity. 1999. [8] K. Menger. Zur allgemeinen kurventheorie. Fund. Math., 10:95{115, 1927. [9] C. St. J. A. Nash-Williams. Edge disjoint spanning trees of nite graphs. J. Lond. Math. Soc., 36:445{450, 1961. [10] L. Petingi and J. Rodriguez. Bounds on the maximum number of edge-disjoint steiner trees of a graph. Congressus Numerantium, 145:43{52, 2000. [11] W. T. Tutte. On the problem of decomposing a graph into n connected factors. J. Lond. Math. Soc., 36:221{230, 1961. 11