Network Flow Spanners Feodor F. Dragan and Chenyu Yan Department of Computer Science, Kent State University, Kent, OH 44242, USA [email protected], [email protected]

Abstract. In this paper, motivated by applications of ordinary (distance) spanners in communication networks and to address such issues as bandwidth constraints on network links, link failures, network survivability, etc., we introduce a new notion of ﬂow spanner, where one seeks a spanning subgraph H = (V, E ) of a graph G = (V, E) which provides a “good” approximation of the source-sink ﬂows in G. We formulate few variants of this problem and investigate their complexities. A special attention is given to the version where H is required to be a tree.

1

Introduction

Given a graph G = (V, E), a spanning subgraph H = (V, E ) of G is called a spanner if H provides a “good” approximation of the distances in G. More formally, for t ≥ 1, H is called a t–spanner of G [5, 21, 20] if dH (u, v) ≤ t · dG (u, v) for all u, v ∈ V, where dG (u, v) is the distance in G between u and v. Sparse spanners (where |E | = O(|V |)) found a number of applications in various areas; especially, in distributed systems and communication networks. In [21], close relationships were established between the quality of spanners (in terms of stretch factor t and the number of spanner edges |E |), and the time and communication complexities of any synchronizer for the network based on this spanner. Also sparse spanners are very useful in message routing in communication networks; in order to maintain succinct routing tables, eﬃcient routing schemes can use only the edges of a sparse spanner [22]. It is well-known that the problem of determining, for a given graph G and two integers t, m ≥ 1, whether G has a t-spanner with m or fewer edges, is NP-complete (see [20]). The sparsest spanners are tree spanners. They occur in biology and can be used as models for broadcast operations. Tree t-spanners were considered in [3]. It was shown that, for a given graph G, the problem to decide whether G has a spanning tree T such that dT (u, v) ≤ t · dG (u, v) for all u, v ∈ V is N P –complete for any ﬁxed t ≥ 4 and is linearly solvable for t = 1, 2. For more information on spanners consult [1, 2, 3, 5, 6, 7, 18, 20, 21]. In this paper, motivated by applications of spanners in communication networks and to address such issues as bandwidth constraints on network links, link failures, network survivability, etc., we introduce a new notion of ﬂow spanner, where one seeks a spanning subgraph H = (V, E ) of a graph G which provides a J.R. Correa, A. Hevia, and M. Kiwi (Eds.): LATIN 2006, LNCS 3887, pp. 410–422, 2006. c Springer-Verlag Berlin Heidelberg 2006

Network Flow Spanners

411

“good” approximation of the source-sink ﬂows in G. We formulate few variants of this problem and investigate their complexities. In this preliminary investigation, a special attention is given to the version where H is required to be a tree.

2

Problem Formulations and Results

A network is a 4-tuple N = (V, E, c, p) where G = (V, E) is a connected, ﬁnite, and simple graph, c(e) are nonnegative edge capacities, and p(e) are nonnegative edge prices. We assume that graph G is undirected in this paper, although similar notions can be deﬁned for directed graphs, too. In this case, c(e) indicates the maximum amount of ﬂow edge e = (v, u) can carry (in either v to u direction or in u to v direction), p(e) is the cost that the edge will incur if it carries a non-zero ﬂow. Given a source s and a sink t in G, an (s, t)-ﬂow is a function f deﬁned over the edges that satisﬁes capacity constraints, for every edge, and conservation constraints, for every vertex, except the source and the sink. The net ﬂow that enters the sink t is called the (s, t)-ﬂow. Denote by FG (s, t) the maximum (s, t)-ﬂow in G. Note that, since G is undirected, f (v, u) = −f (u, v) for any edge e = (v, u) ∈ E and FG (x, y) = FG (y, x) for any two vertices (source and sink) x and y (by reversing the ﬂow on each edge). Let H = (V, E ) be a subgraph of G, where E ⊆ E. For any two vertices u, v ∈ G (u,v) V (G), deﬁne f low stretch(u, v) = FFH (u,v) to be the ﬂow–stretch factor between u and v. Deﬁne the ﬂow–stretch factor of H as f sH = max{f low stretch (u, v) : u, v ∈ V (G)}. When the context is clear, the subscript H will be omitted. Similarly, deﬁne the average ﬂow–stretch factor of the subgraph H as follows FG (u,v) 2 af sH = n(n−1) u,v∈V FH (u,v) . The general problem, we are interested in, is to ﬁnd a light ﬂow–spanner H of as possible G, that is a spanning subgraph H such that f sH (or af sH ) is as small and at the same time the total cost of the spanner, namely P(H) = e∈E p(e), is as low as possible. The following is the decision version of this problem. Problem: Light Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), nonnegative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and total cost P(H) ≤ B, or ”there is no such spanner”.

We distinguish also few special variants of this problem. Problem: Sparse Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), unit edge costs p(e) = 1, e ∈ E(G), and two positive numbers t and B. Output: A sparse ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and P(H) = |E | ≤ B, or ”there is no such spanner”.

412

F.F. Dragan and C. Yan

Problem: Sparse Edge-Connectivity–Spanner Instance: An undirected graph G = (V, E), unit edge capacities c(e) = 1, unit edge costs p(e) = 1, e ∈ E(G), and two positive numbers t and B. Output: A sparse ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and P(H) = |E | ≤ B, or ”there is no such spanner”.

Note that here the maximum (s, t)-ﬂow in H is actually the maximum number of edge-disjoint (s, t)-paths in H, i.e., the edge-connectivity of s and t in H. Thus, this problem is named the Sparse Edge-Connectivity–Spanner problem. Spanning subgraph H provides a “good” approximation of the vertex-to-vertex edge-connectivities in G. The following is the version of this Edge-Connectivity Spanner problem with arbitrary costs on edges. Problem: Light Edge-Connectivity–Spanner Instance: An undirected graph G = (V, E), unit edge capacities c(e) = 1, arbitrary non-negative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and total cost P(H) ≤ B, or ”there is no such spanner”.

In Section 4, using a reduction from the 3-dimensional matching problem, we show that the Sparse Edge-Connectivity–Spanner problem is NP-complete, implying that all other three problems are NP-complete as well. Replacing in all four formulations “f sH ≤ t“ with “af sH ≤ t“, we obtain four more variations of the problem: Light Average Flow–Spanner, Sparse Average Flow–Spanner, Sparse Average Edge-Connectivity–Spanner and Light Average Edge-Connectivity–Spanner, respectively. These four problems are topics of our current investigations. In Section 5, we investigate two simpler variants of the problem: Tree Flow– Spanner and Light Tree Flow–Spanner problems. Problem: Tree Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), e ∈ E(G), and a positive number t. Output: A tree t-ﬂow–spanner T = (V, E ) of G, that is a spanning tree T of G with ﬂow–stretch factor f sT ≤ t, or ”there is no such tree spanner”.

Problem: Light Tree Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), nonnegative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light tree t-ﬂow–spanner T = (V, E ) of G, that is a spanning tree T of G with ﬂow–stretch factor f sT ≤ t and total cost P(T ) ≤ B, or ”there is no such tree spanner”.

In a similar way one can deﬁne also the Tree Average Flow–Spanner and Light Tree Average Flow–Spanner problems. Notice that our tree t-ﬂow-spanners are diﬀerent from the well-known Gomory-Hu trees [14]. Gomory-Hu trees represent

Network Flow Spanners

413

the structure of all s-t maximum ﬂows of undirected graphs in a compact way, but they are not necessarily spanning trees. We show that the Tree Flow–Spanner problem has easy polynomial time solution while the Light Tree Flow–Spanner problem is NP-complete. In Section 6, we propose two approximation algorithms for the Light Tree Flow–Spanner problem.

3

Related Work

In [11], a network design problem, called smallest k-ECSS problem is considered, which is close to our Sparse Edge-Connectivity–Spanner problem. In that problem, given a graph G along with an integer k, one seeks a spanning subgraph H of G that is k-edge-connected and contains the fewest possible number of edges. The problem is known to be MAX SNP-hard [9], and the authors of [11] give a polynomial time algorithm with approximation ratio 1 + 2/k (see also [4] for an earlier approximation result). It is interesting to note that a sparse kedge-connected spanning subgraph (with O(k|V |) edges) of a k-edge-connected graph can be found in linear time [19]. In our Sparse Edge-Connectivity–Spanner problem, instead of trying to guarantee the k-edge-connectedness in H for all vertex pairs, we try to closely approximate by H the original (in G) levels of edge-connectivities. Paper [12] deals with the survivable network design problem (SNDP) which can be considered as a generalization of our Light Edge-Connectivity–Spanner problem. In SNDP, we are given an undirected graph G = (V, E), a non-negative cost p(e) for every edge e ∈ E and a non-negative connectivity requirement rij for every (unordered) pair of vertices i, j. One needs to ﬁnd a minimumcost subgraph in which each pair of vertices i, j is joined by at least rij edgedisjoint paths. The problem is NP-complete since the Steiner Tree Problem is a special case, and [13] gives an eﬃcient approximate solution. If connectivity requirements are at most k (for some integer k), then a solution found is within a factor 2H(k) = 2(1 + 12 + 13 + . . . + k1 ) of optimal. See also [10, 12, 16, 24] for some earlier results. By setting rij := FG (i, j)/t for each pair of vertices i, j, our Light Edge-Connectivity–Spanner problem (with given ﬂow–stretch factor t) can be reduced to SNDP. Another related problem, which deals with the maximum ﬂow, is investigated in [8, 17]. In that problem, called MaxFlowFixedCost, given a graph G = (V, E) with non-negative capacities c(e) and non-negative costs p(e) for each edge e ∈ E, a source s and a sink t, and a positive number B, one must ﬁnd an edge subset E ⊆ E of total cost e∈E p(e) ≤ B, such that in spanning graph H = (V, E ) of G the ﬂow from s to t is maximized. Paper [8] shows that 1− this problem, even with uniform edge-prices, does not admit a 2log n -ratio appolylog n proximation for any constant > 0 unless N P ⊆ DT IM E(n ). In [17], a polynomial time F ∗ -approximation algorithm for the problem is presented, where F ∗ denotes the maximum total ﬂow. In our Sparse Flow–Spanner problem

414

F.F. Dragan and C. Yan

we require from spanning subgraph H to approximate maximum ﬂows for all vertex pairs simultaneously. To the best of our knowledge our spanner-like all-pairs problem formulations are new.

4

Hardness of the Flow–Spanner Problems

This section is devoted to the proof of the NP-completeness of the Sparse EdgeConnectivity–Spanner problem and other Flow–Spanner problems. Theorem 1. Sparse Edge-Connectivity–Spanner problem is NP-complete. Proof. It is obvious that the problem is in NP. To prove its NP-hardness, we will reduce the 3-dimensional matching (3DM) problem to this one, by extending a reduction idea from [10]. Let M ⊆ W × X × Y be an instance of 3DM, with |M | = p and W = {wi |i = 1, 2, · · · , q}, X = {xi |i = 1, · · · , q} and Y = {yi |i = 1, · · · , q}. One needs to check if M contains a matching, that is, a subset M ⊆ M such that |M | = q and no two triples of M share a common element from W ∪ X ∪ Y . Deﬁne Deg(a) to be the number of triples in M that contain a, a ∈ W ∪ X ∪ Y . We construct a graph G = (V, E) as follows (see Fig. 1). For each triple (wi , xj , yk ) ∈ M , there are four corresponding vertices aijk , aijk , dijk and dijk in V . dijk and dijk are called dummy vertices. Denote D := {dijk |(wi , xj , yk ) ∈ M }, D := {dijk |(wi , xj , yk ) ∈ M }, A := {aijk |(wi , xj , yk ) ∈ M }, A := {aijk |(wi , xj , yk ) ∈ M }. Additionally, for each a ∈ X ∪ Y , we deﬁne a vertex a and 2Deg(a) − 1 dummy vertices d1 (a), · · · , d2Deg(a)−1 (a) of a. For each wi ∈ W , we deﬁne a vertex wi and 4Deg(wi )− 3 dummy vertices d1 (wi ), · · · , d4Deg(wi )−3 (wi )

w1

d 111 d 111

a 111 a 111

w2 x1

d 222

v d 222

a 222

d122

a 122

d 122

a 122

x2 y1

y2

a 222

Fig. 1. Graph created for a 3DM instance: M = {(w1 , x1 , y1 ), (w2 , x2 , y2 ), (w1 , x2 , y2 )}, W = (w1 , w2 ), X = (x1 , x2 ) and Y = (y1 , y2 ). The edges from Ed are shown in bold.

Network Flow Spanners

415

of wi . There is an extra vertex v in V . Let Nd be the dummy vertices (note that D, D ⊂ Nd ). So, the vertex set V of G is V = {v} ∪ W ∪ X ∪ Y ∪ A ∪ A ∪ Nd . For each dummy vertex di (a) ∈ Nd (a ∈ W ∪ X ∪ Y ) put (a, di (a)), (v, di (a)) into Ed . Also put (wi , dijk ), (dijk , aijk ), (wi , dijk ), (dijk , aijk ) into Ed . Now, the edge set E of G is E = Ed ∪ {(aijk , aijk ), (aijk , xj ), (aijk , yk )|(wi , xj , yk ) ∈ M }. This completes the description of G = (V, E). Clearly, each dummy vertex has exactly two neighbors in G, and each vertex of A ∪ A has exactly 3 neighbors in G. Also, each wi has 4Deg(wi ) − 3 + 2Deg(wi ) = 6Deg(wi ) − 3 neighbors and each a ∈ X ∪ Y has 2Deg(a) − 1 + Deg(a) = 3Deg(a) − 1 neighbors in G. Set t = 3/2 and B = |Ed | + p + q. We claim that M contains a matching M if and only if G has a ﬂow–spanner H = (V, E ) with ﬂow–stretch factor ≤ t and with B edges. Proof of this claim is presented in the journal version.

Corollary 1. The Light Flow–Spanner, the Sparse Flow–Spanner and the Light Edge-Connectivity–Spanner problems are NP-complete.

5

Tree Flow–Spanners

In this section, we show that the Light Tree Flow–Spanner problem is NPcomplete while the Tree Flow–Spanner problem can be solved eﬃciently by any Maximum Spanning Tree algorithm. Theorem 2. The Light Tree Flow–Spanner problem is NP-complete. Proof. The problem is obviously in NP. One can non-determenistically choose a spanning tree and test in polynomial time whether it satisﬁes the cost and the ﬂow–stretch bounds. To prove its NP-hardness, we will reduce the 3SAT problem to this one. Let xi be a variable in the 3SAT instance. Without loss of generality, assume that the 3SAT instance does not have clause of type (xi ∨ xi ∨ xj ) (note j may be equal to i). Since such a clause is always true no matter what value xi gets, it can be eliminated without aﬀecting the satisﬁability. From a 3SAT instance one can construct a graph G = (V, E) as follows. Let x1 , x2 , · · · , xn be the variables and C1 , · · · , Cq be the clauses of 3SAT. Let ki be the number of clauses containing either literal xi or literal xi . Create 2ki vertices for each variable xi in G. Denote those vertices by V (xi ) = {x1i , x2i , · · · , xki i } and V (xi ) = {x1i , · · · , xki i }. All these vertices are called variable vertices. Put an edge (xli , xli ) into E(G), for 1 ≤ l ≤ ki . Set p(xli , xli ) = c(xli , xli ) = 1. For each integer l+1 l l, where 1 ≤ l < ki , put (xli , xl+1 i ) and (xi , xi ) into E(G) and set their prices and capacities to be 2. For each clause Cj , create a clause vertex Cj in G. At the beginning, mark all the vertices corresponding to the variables as “free”. Do the following for j = 1, 2, . . . , q. If xi (or xi ) is in Cj , then ﬁnd the smallest integer l such that xli (or xli ) is “free” and put (Cj , xli ) ((Cj , xli ), respectively) into E(G). Mark xli and xli as “busy”. Set c(Cj , xli ) = p(Cj , xli ) = 3 (respectively, c(Cj , xli ) = p(Cj , xli ) = 3).

416

F.F. Dragan and C. Yan

Graph G has also an extra vertex v. For each variable xi , put edges (v, x1i ) and (v, x1i ) into E(G). Set their prices and capacities to 2. This completes the description of G. Obviously, the transformation can be done in polynomial time. For each variable xi , let Hi be the subgraph of G induced by vertices {v, x1i , · · · , xki i , x1i , · · · , xki i }. Name all the edges with capacity 2 assignment edges, the edges with capacity 1 connection edges and the edges with capacity 3 consistent edges. The path (v, x1i , x2i , · · · , xki i ) is called positive path of Hi and the path (v, x1i , · · · , xki i ) is called negative path of Hi . Let N = k1 + k2 + · · · + kn . Set B = 3N + 3q and f sT = 8. We need to show that the 3SAT is satisﬁable if and only if the graph G has a tree ﬂow–spanner with total cost less than or equal to B and ﬂow–stretch factor at most 8. Here, we prove the “only if” direction. A proof for the “if” direction is presented in the journal version. Let T be a tree ﬂow–spanner of G such that f sT ≤ 8 and e∈E(T ) p(e) ≤ B. Obviously, T must have at least q consistent edges. Assume T has r assignment edges, s connection edges and t+ q consistent edges. Clearly, r, s, t ≥ 0 and, since T has 2N + q edges (because G has 2N + q + 1 vertices), r + s + t = 2N . From e∈E(T ) p(e) ≤ B = 3N + 3q we conclude also that 2r + s + 3t ≤ 3N . Hence, 2r + s + 3t − 2(r + s + t) ≤ −N , i.e., t ≤ s − N . If s < N , then t < 0, which is impossible. Therefore, T must include all N connection edges of G, implying s = N and r + t = N , 2r + 3t ≤ 2N . From 2r + 3t − 2(r + t) ≤ 0 we conclude that t ≤ 0. So, t must be 0, and therefore, T contains exactly q consistent edges, exactly N assignment edges and all N connection edges. This implies that, for x 11

x 21 2 1

1 2

x 12

2 2

v

3

x 22

C1

3 3

2 1

1

2

3

2

x 12

2 2

x

2 2

x 21

x 11

2

3

x 22

3

C2

1 3

1 3

x 13 x 14 1

x 14

Fig. 2. Graph created from expression (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x4 )

Network Flow Spanners

417

every variable xi , exactly one edge from {(x1i , v), (x1i , v)} is in E(T ). Since in T each clause vertex must be adjacent to at least one variable vertex and there are q consistent edges in T , each clause vertex is a pendant vertex of T (is adjacent in T to exactly one variable vertex). By construction of G, for each variable vertex xli , any path between xli and v in G either totally lies in Hi or has to use at least one clause vertex. Since all clause vertices are pendant in T , the path between xli and v in T must totally lie in Hi . Similarly, the path between xli and v in T must totally lie in Hi . Now, we show how to assign true/false to the variables of the 3SAT instance to satisfy all its clauses. For each variable xi , if (x1i , v) ∈ E(T ) then assign true to xi , otherwise assign false to xi . We claim that, if a clause vertex Cj is adjacent to a variable vertex xli (or to a variable vertex xli ) in T , then xi is assigned true (false, respectively). The claim can be proved by contradiction. Assume xi is assigned false, i.e., (x1i , v) ∈ E(T ) and (x1i , v) ∈ / E(T ), but Cj is adjacent to a variable vertex xli in T . As it was mentioned in the previous paragraph, the path PT (xli , v) between xli and v in T must totally lie in Hi . Since (x1i , v) ∈ / E(T ), edge (x1i , v) l cannot be in PT (xi , v). By construction of Hi , any path in Hi from xli to v not using edge (x1i , v) must contain at least one connection edge. This means that the path PT (Cj , v) contains at least one connection edge, too. Since all connection edges have capacity 1, FT (Cj , v) = 1. On the other hand, FG (Cj , v) = 9. Hence, f low stretch(Cj , v) = 9 > 8, contradicting with f sT ≤ 8. This contradiction proofs the claim. Now, since every clause contains at least one true literal (note (xli , Cj ) ∈ E(G) implies clause Cj contains xi ), the 3SAT instance is satisﬁable. This completes the proof of the theorem.

Let G = (V, E) be graph of an instance of the Light Tree Flow–Spanner problem. Let c∗ be the maximum edge capacity of G and c∗ be the minimum edge capacity ∗ of G. Note that, if cc∗ = 1, then the Light Tree Flow–Spanner problem can be solved in polynomial time by simply ﬁnding a minimum spanning tree Tp of G, where the weight of an edge e ∈ E(G) is p(e). From the proof of Theorem 2, ∗ one concludes that when cc∗ ≥ 3, the Light Tree Flow–Spanner problem is NPcomplete. Now we turn to the Tree Flow-Spanner problem on a graph G = (V, E) (recall that in this problem p(e) = 1 for any e ∈ E). Lemma 1. Let Tc be a maximum spanning tree of a graph G (with edge weights c(·)) and T be an arbitrary spanning tree of G. Then, for any two vertices u, v ∈ V (G), FTc (u, v) ≥ FT (u, v). Lemma 1 implies that a maximum spanning tree Tc of a graph G, where the edge capacities are interpreted as edge weights, is an optimal tree ﬂow–spanner of G. Hence, the following theorem holds. Theorem 3. Given an undirected graph G = (V, E), with non-negative capacities on edges, and a number t > 0, whether G admits a tree ﬂow–spanner with ﬂow–stretch factor at most t can be determined in polynomial time (by any maximum spanning tree algorithm).

418

6

F.F. Dragan and C. Yan

Approximation Algorithms

In this section, we present some approximation algorithms for the Light Tree Flow–Spanner problem. Let G = (V, E) be an undirected graph with nonnegative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G). For given two positive numbers t and B we want to check if a spanning tree T ∗ of G with ﬂow–stretch factor f sT ∗ ≤ t and total cost P(T ∗ ) ≤ B exists or not. If such a tree exists then we say that the Light Tree Flow–Spanner problem on G has a solution. We will say that a spanning tree T of a graph G gives an (α, β)-approximate solution to the Light Tree Flow–Spanner problem on G if the inequalities f sT ≤ αt and P(T ) ≤ βB hold for T . A polynomial time algorithm producing an (α, β)-approximate solution to any instance of the Light Tree Flow–Spanner problem admitting a solution is called an (α, β)-approximation algorithm for the Light Tree Flow–Spanner problem. ∗

Lemma 2. If cc∗ ≤ k, where c∗ := max{c(e) : e ∈ E} and c∗ := min{c(e) : e ∈ E}, then there is a (k, 1)-approximation algorithm for the Light Tree Flow– Spanner problem. This result will be used in our main approximation algorithm. Let G = (V, E) be an undirected graph with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G). Assume that G has a spanning tree T ∗ with f sT ∗ ≤ t and P(T ∗ ) ≤ B. In what follows, we describe a polynomial time algorithm which, given a parameter (any real number) r larger than 1 and smaller than t (1 < r ≤ t − 1), produces a spanning tree T of G such that f sT ≤ r(t − 1)t and P(T ) ≤ 1.55 logr (r(t − 1))B. Thus, it is an (r(t − 1), 1.55 logr (r(t − 1)))approximation algorithm for the Light Tree Flow–Spanner problem. Assume that the edges of G are ordered in a non-decreasing order of their capacities, i.e., we have an ordering e1 , e2 , · · · , em of the edges of G such that c(e1 ) ≤ c(e2 ) · · · ≤ c(em ). Let 1 < r ≤ t − 1. If c(em )/c(e1 ) ≤ r(t − 1), then Lemma 2 suggests to construct a minimum spanning tree of G using p(e)s as the edge weights. This tree is an (r(t − 1), 1)-approximate solution, and hence we are done. Assume now that c(em )/c(e1 ) > r(t − 1). We cluster all the edges of G into groups as follows. First group consists of all the edges whose capacities are in the range [l1 = c(em )/r, h1 = c(em )]. Then, we ﬁnd the largest capacity c(ei ) such that c(ei ) < c(em )/r and form the second group of edges. It consists of all edges whose capacities are in the range [l2 = c(ei )/r, h2 = c(ei )]. We continue this process until a group of edges whose capacities are in the range [lk , hk ] with c(e1 ) ≥ lk is formed. Let Gi = (V, Ei ) be a subgraph of G formed by Ei = {e ∈ E(G) : li ≤ c(e) ≤ h1 }. Let Gi1 , Gi2 , · · · , Gipi be those connected components of Gi which contain at least two vertices. Consider another subgraph Gi = (V, Ei ) of G formed by i i Ei = {e ∈ E(G) : hi /(r(t − 1)) ≤ c(e) ≤ h1 }. Gi 1 , G2 , · · · , Gqi are used to denote those connected components of Gi which contain at least two vertices. Let u, v ∈ V (G) be two arbitrary vertices. Choose the minimum i such that u and v are connected in Gi and let Gij be the connected component of Gi which

Network Flow Spanners

419

i i contains u and v. Let Gi j be the connected component of Gi such that Gj ⊆ Gj (clearly, such a connected component exists). The following lemma holds (proof is presented in the journal version).

Lemma 3. If G has a tree ﬂow–spanner T ∗ with ﬂow–stretch factor ≤ t, then the path PT ∗ (u, v) connecting u and v in T ∗ must totally lie in Gi j . From Lemma 3, our approximation algorithm for the Light Tree Flow–Spanner problem is obvious. PROCEDURE 1. Construct a light tree ﬂow–spanner for a graph G Input: An undirected graph G with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G); positive real numbers t and 1 < r ≤ t − 1. Output: A spanning tree T of G. Method: set Gf := (V, Ef ), where Ef = {e ∈ E(G) : p(e) = 0}; for i = 1 to k do let Gi := (V, Ei ) be a subgraph of G with Ei := {e ∈ E(G) : li ≤ c(e) ≤ h1 }; let Gi1 , · · · , Gipi be those conn. comp. of Gi which contain at least two vertices; hi let Gi := (V, Ei ) be a subgraph of G with Ei := {e ∈ E(G) : r(t−1) ≤ c(e) ≤ h1 }; i i let G1 , · · · , Gqi be those conn. comp. of Gi which contain at least two vertices; set Vt := 1≤j≤pi V (Gij ); in each conn. comp. Gi j (1 ≤ j ≤ qi ), ﬁnd an approximate minimum weight Steiner tree Tji where terminals are V (Gi j ) ∩ Vt and p(e)s are the edge weights; { 1≤j≤qi {e ∈ E(Tji ) : p(e) > 0}}; set Ef := Ef for each edge e ∈ 1≤j≤pi E(Gij ), set p(e) := 0; ﬁnd a maximum spanning tree T of Gf using the capacities as the edge weights; return T .

Ë

Ë Ë Ë

Below, the quality of the tree T constructed by above procedure is analyzed. Lemma 4. If G admits a tree t-ﬂow–spanner, then f sT ≤ r(t − 1)t. Proof. Let u, v ∈ V (G) be two arbitrary vertices and T ∗ be a tree t-ﬂow–spanner of G. Choose the smallest integer i such that u and v are connected in Gi . Let PG (u, v) be an arbitrary path between u and v in G and e ∈ PG (u, v) be an edge on the path with smallest capacity. By the choice of i, we have c(e) ≤ hi . Without loss of generality, assume u, v ∈ Gij . According to Procedure 1, u and v will be connected by a path PTji (u, v) in Tji . Let e ∈ PTji (u, v) be an edge with minimum capacity in PTji (u, v). It is easy to see that c(e ) ≥ hi /(r(t − 1)). We claim that after iteration i, there is a path PGf (u, v) between u and v in Gf such that for any edge e ∈ PGf (u, v), the inequality c(e) ≥ hi /(r(t−1)) holds. We prove this claim by induction on i. All edges of PTji (u, v) with current p(e) greater than 0 are added to Ef . Ef contains also each edge for which original p(e) was 0. Therefore, if Gf does not contain an edge e = (a, b) ∈ E(PTji (u, v)), then current p(e) of e was 0, and this implies c(e) > hi . According to Procedure 1, a, b must be in a connected component of Gl where 1 ≤ l < i. Hence, by induction,

420

F.F. Dragan and C. Yan

at lth iteration, a and b must be connected by a path PGf (a, b) such that, for each edge e ∈ PGf (a, b), the inequality c(e) ≥ hl /(r(t − 1)) > hi /(r(t − 1)) holds. By concatenating such paths and the edges put into Gf during ith iteration, one can ﬁnd a path between u and v which satisﬁes the claim. Since T is a maximum spanning tree of Gf (where the edge weights are their capacities), similarly to the proof of Lemma 1, one can show that for any edge e ∈ PT (u, v), c(e) ≥ hi /(r(t − 1)) holds. This implies FT ∗ (u, v) ≤ hi ≤ r(t − 1)FT (u, v). Since T ∗ has ﬂow–stretch factor ≤ t, we have FG (u, v) ≤ tFT ∗ (u, v), (u,v) ≤ r(t − 1)t. This concludes our proof.

and therefore FFG T (u,v) Lemma 5. If G has a tree t-ﬂow–spanner T ∗ with cost P(T ∗ ), then P(T ) ≤ 1.55 logr (r(t − 1))P(T ∗ ). Proof. By Lemma 3, one knows that for any two vertices u, v of Gij , PT ∗ (u, v) i i ∗ totally lies in Gi j where Gj ⊆ Gj . Hence, the smallest subtree of T spanning i all vertices of Vt ∩ Gi j is totally contained in Gj . We can use in Procedure 1 an 1.55-approximation algorithm of Robins and Zelikovsky [23] to construct an approximation to a minimum weight Steiner tree in Gi j spanning terminals ∗ Vt ∩ V (Gi ). It is easy to see that P (G ) ≤ 1.55 P (T ), where Pi (Gf ) is the i f i j total cost of the Steiner trees constructed by Procedure 1 on ith iteration and Pi (T ∗ ) is the total cost of the edges from T ∗ which have capacities in the range [h vertices in Vt . Therefore, P(Gf ) ≤ i /(r(t − 1)), hi ] and are used to connect ∗ ∗ P (G ) ≤ 1.55 P (T ). We will prove that P i f i 1≤i≤k 1≤i≤k 1≤i≤k i (T ) ≤ ∗ ∗ 1))P(T ). To see this, we show that each edge of T appears at most logr (r(t − 1 l times in 1≤i≤k Pi (T ∗ ), where r1l ≥ r(t−1) . Then l ≤ logr (r(t − 1)) will follow. Consider an edge e ∈ Gi with p(e) = 0. We have hi /(r(t − 1)) ≤ c(e) ≤ hi . According to Procedure 1, after ith iteration, all the edges with capacity in [hi /r, hi ] have 0 cost. After (i + 1)th iteration, all the edges with capacity in [hi /r2 , hi ] have 0 cost. After (i + l − 1)th iteration, all the edges with capacity in [hi /rl , hi ] have 0 cost. To have p(e) > 0, the inequality hi /rl ≥ hi /(r(t−1)) must hold. So, l ≤ logr (r(t − 1)) and therefore P(Gf ) ≤ 1.55 logr (r(t − 1)) P(T ∗ ). Since T is a spanning tree of Gf , the lemma clearly follows.

In the remaining part, we describe how to get a tree ﬂow–spanner T of G with ﬂow–stretch factor ≤ t and total cost at most (n − 1)P(T ∗ ), provided G has a tree t-ﬂow–spanner T ∗ . The algorithm is as follows. PROCEDURE 2. Construct a light tree t-ﬂow–spanner for a graph G Input: An undirected graph G with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G); a positive real number t. Output: A tree t-ﬂow–spanner T of G. Method: set Gf := (Vf , Ef ), where Vf = V, Ef = ∅; construct a complete graph G = (V, E ); for each (u, v) ∈ E , let w(u, v) := FG (u, v) be the weight of the edge; construct a maximum spanning tree T of the weighted graph G ;

Network Flow Spanners

421

for each edge (u, v) ∈ E(T ) do let Gw(u,v) be a subgraph of G obtained from G by removing all edges e with c(e) < w(u, v)/t; ﬁnd a connected component Gu,v of Gw(u,v) such that u, v ∈ V (Gu,v ); if we cannot ﬁnd such a connected component, then return ”G does not have any ﬂow tree t-spanner”; ﬁnd a shortest (w.r.t. the costs of the edges) path PGu,v (u, v) between u and v; set Ef := Ef ∪ E(PGu,v (u, v)); ﬁnd a maximum spanning tree T of Gf using the edge capacities as their weights; return T .

The following lemma is true (proof is presented in the journal version). Lemma 6. f sT ≤ t and P(T ) ≤ (n − 1) P(T ∗ ). Summarizing the discussion of this section, we state Theorem 4. There exist (r(t−1), 1.55 logr (r(t−1)))-approximation and (1, n− 1)-approximation algorithms for the Light Tree Flow–Spanner problem.

References 1. I. Alth¨ ofer, G. Das, D. Dobkin, D. Joseph, and J. Soares, On sparse spanners of weighted graphs, Discrete Comput. Geom., 9 (1993), 81–100. 2. S. Baswana and S. Sen, A simple linear time algorithm for computing a (2k − 1)spanner of o(n1+1/k ) size in weighted graphs, ICALP’03, LNCS 2719, pp. 384–396. 3. L. Cai and D.G. Corneil, Tree spanners, SIAM J. Discr. Math., 8 (1995), 359–387. 4. J. Cheriyan and R. Thurimella, Approximating Minimum-Size k-Connected Spanning Subgraphs via Matching, SIAM J. Comput., 30 (2000), 528-560. 5. L.P. Chew, There are planar graphs almost as good as the complete graph, J. of Computer and System Sciences, 39 (1989), 205–219. 6. M. Elkin and D. Peleg, (1 + , β)-spanner constructions for general graphs, STOC’01, pp. 173–182, 2001. 7. Y. Emek and D. Peleg, Approximating Minimum Max-Stretch spanning Trees on unweighted graphs, SODA’04, pp. 261-270, 2004. 8. G. Even, G. Kortsarz, and W. Slany, On network design problems: ﬁxed cost ﬂows and the Covering Steiner Problem, to appear in Transactions on Algorithms. 9. C.G. Fernandes, A Better Approximation Ratio for the Minimum Size k-EdgeConnected Spanning Subgraph Problem, J. Algorithms, 28 (1998), 105-124. 10. G.N. Frederickson and J. J´ aJ´ a, Approximation algorithms for several graph augmentation problems, SIAM Journal on Computing, 10 (1981), 270-283. 11. H.N. Gabow, M.X. Goemans, E. Tardos, and D.P. Williamson, Approximating the smallest k-edge connected spanning subgraph by LP-rounding, SODA 2005, pp. 562–571, 2005. 12. H.N. Gabow, M.X. Goemans, D.P. Williamson, An eﬃcient approximation algorithm for the survivable network design problem, Math. Program., 82 (1998), 13-40. ´ Tardos, D.P. 13. M.X. Goemans, A.V. Goldberg, S.A. Plotkin, D.B. Shmoys, E. Williamson, Improved Approximation Algorithms for Network Design Problems, SODA 1994, 223–232.

422

F.F. Dragan and C. Yan

14. R.E. Gomory, T.C. Hu, Multi-terminal network ﬂows, J. SIAM, 9 (1961), 551–570. 15. R. Hassin and A. Levin, Minimum restricted diameter spanning trees, Proc. 5th Int. Workshop on Approx. Algorithms for Combinatorial Optimization, LNCS 2462, 2002, 175-184. 16. S. Khuller and U. Vishkin, Biconnectivity Approximations and Graph Carvings, STOC’92, pp. 759-770, 1992. 17. S.O. Krumke, H. Noltemeier, S. Schwarz, H.-C. Wirth, and R. Ravi, Flow Improvement and Network Flows with Fixed Costs. OR’98, Springer, 1998. ftp://www.mathematik.uni-kl.de/pub/scripts/krumke/or98-ﬂow.pdf 18. A.L. Liestman, T. Shermer, Additive graph spanners, Networks, 23(1993), 343-364. 19. H. Nagamochi, T. Ibaraki, A Linear-Time Algorithm for Finding a Sparse kConnected Spanning Subgraph of a k-Connected Graph, Algorithmica, 7 (1992), 583–596. 20. D. Peleg and A.A. Sch¨ aﬀer, Graph Spanners, J. Graph Theory, 13 (1989), 99-116. 21. D. Peleg and J.D. Ullman, An optimal synchronizer for the hypercube, In Proc. 6th ACM SPDC, Vancouver, 1987, 77–85. 22. D.Peleg and E.Upfal, A tradeoﬀ between space and eﬃciency for routing tables, STOC’98, 43-52, 1988. 23. G. Robins and A. Zelikovsky, Improved Steiner tree approximation in graphs, SODA’00, 770–779, 2000. 24. D.P Williamson, M.X. Goemans, M. Mihail, and V.V. Vazirani, A primal-dual approximation algorithm for generalized Steiner network problems, STOC’93, pp. 708–717, 1993.

Abstract. In this paper, motivated by applications of ordinary (distance) spanners in communication networks and to address such issues as bandwidth constraints on network links, link failures, network survivability, etc., we introduce a new notion of ﬂow spanner, where one seeks a spanning subgraph H = (V, E ) of a graph G = (V, E) which provides a “good” approximation of the source-sink ﬂows in G. We formulate few variants of this problem and investigate their complexities. A special attention is given to the version where H is required to be a tree.

1

Introduction

Given a graph G = (V, E), a spanning subgraph H = (V, E ) of G is called a spanner if H provides a “good” approximation of the distances in G. More formally, for t ≥ 1, H is called a t–spanner of G [5, 21, 20] if dH (u, v) ≤ t · dG (u, v) for all u, v ∈ V, where dG (u, v) is the distance in G between u and v. Sparse spanners (where |E | = O(|V |)) found a number of applications in various areas; especially, in distributed systems and communication networks. In [21], close relationships were established between the quality of spanners (in terms of stretch factor t and the number of spanner edges |E |), and the time and communication complexities of any synchronizer for the network based on this spanner. Also sparse spanners are very useful in message routing in communication networks; in order to maintain succinct routing tables, eﬃcient routing schemes can use only the edges of a sparse spanner [22]. It is well-known that the problem of determining, for a given graph G and two integers t, m ≥ 1, whether G has a t-spanner with m or fewer edges, is NP-complete (see [20]). The sparsest spanners are tree spanners. They occur in biology and can be used as models for broadcast operations. Tree t-spanners were considered in [3]. It was shown that, for a given graph G, the problem to decide whether G has a spanning tree T such that dT (u, v) ≤ t · dG (u, v) for all u, v ∈ V is N P –complete for any ﬁxed t ≥ 4 and is linearly solvable for t = 1, 2. For more information on spanners consult [1, 2, 3, 5, 6, 7, 18, 20, 21]. In this paper, motivated by applications of spanners in communication networks and to address such issues as bandwidth constraints on network links, link failures, network survivability, etc., we introduce a new notion of ﬂow spanner, where one seeks a spanning subgraph H = (V, E ) of a graph G which provides a J.R. Correa, A. Hevia, and M. Kiwi (Eds.): LATIN 2006, LNCS 3887, pp. 410–422, 2006. c Springer-Verlag Berlin Heidelberg 2006

Network Flow Spanners

411

“good” approximation of the source-sink ﬂows in G. We formulate few variants of this problem and investigate their complexities. In this preliminary investigation, a special attention is given to the version where H is required to be a tree.

2

Problem Formulations and Results

A network is a 4-tuple N = (V, E, c, p) where G = (V, E) is a connected, ﬁnite, and simple graph, c(e) are nonnegative edge capacities, and p(e) are nonnegative edge prices. We assume that graph G is undirected in this paper, although similar notions can be deﬁned for directed graphs, too. In this case, c(e) indicates the maximum amount of ﬂow edge e = (v, u) can carry (in either v to u direction or in u to v direction), p(e) is the cost that the edge will incur if it carries a non-zero ﬂow. Given a source s and a sink t in G, an (s, t)-ﬂow is a function f deﬁned over the edges that satisﬁes capacity constraints, for every edge, and conservation constraints, for every vertex, except the source and the sink. The net ﬂow that enters the sink t is called the (s, t)-ﬂow. Denote by FG (s, t) the maximum (s, t)-ﬂow in G. Note that, since G is undirected, f (v, u) = −f (u, v) for any edge e = (v, u) ∈ E and FG (x, y) = FG (y, x) for any two vertices (source and sink) x and y (by reversing the ﬂow on each edge). Let H = (V, E ) be a subgraph of G, where E ⊆ E. For any two vertices u, v ∈ G (u,v) V (G), deﬁne f low stretch(u, v) = FFH (u,v) to be the ﬂow–stretch factor between u and v. Deﬁne the ﬂow–stretch factor of H as f sH = max{f low stretch (u, v) : u, v ∈ V (G)}. When the context is clear, the subscript H will be omitted. Similarly, deﬁne the average ﬂow–stretch factor of the subgraph H as follows FG (u,v) 2 af sH = n(n−1) u,v∈V FH (u,v) . The general problem, we are interested in, is to ﬁnd a light ﬂow–spanner H of as possible G, that is a spanning subgraph H such that f sH (or af sH ) is as small and at the same time the total cost of the spanner, namely P(H) = e∈E p(e), is as low as possible. The following is the decision version of this problem. Problem: Light Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), nonnegative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and total cost P(H) ≤ B, or ”there is no such spanner”.

We distinguish also few special variants of this problem. Problem: Sparse Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), unit edge costs p(e) = 1, e ∈ E(G), and two positive numbers t and B. Output: A sparse ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and P(H) = |E | ≤ B, or ”there is no such spanner”.

412

F.F. Dragan and C. Yan

Problem: Sparse Edge-Connectivity–Spanner Instance: An undirected graph G = (V, E), unit edge capacities c(e) = 1, unit edge costs p(e) = 1, e ∈ E(G), and two positive numbers t and B. Output: A sparse ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and P(H) = |E | ≤ B, or ”there is no such spanner”.

Note that here the maximum (s, t)-ﬂow in H is actually the maximum number of edge-disjoint (s, t)-paths in H, i.e., the edge-connectivity of s and t in H. Thus, this problem is named the Sparse Edge-Connectivity–Spanner problem. Spanning subgraph H provides a “good” approximation of the vertex-to-vertex edge-connectivities in G. The following is the version of this Edge-Connectivity Spanner problem with arbitrary costs on edges. Problem: Light Edge-Connectivity–Spanner Instance: An undirected graph G = (V, E), unit edge capacities c(e) = 1, arbitrary non-negative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light ﬂow–spanner H = (V, E ) of G with ﬂow–stretch factor f sH ≤ t and total cost P(H) ≤ B, or ”there is no such spanner”.

In Section 4, using a reduction from the 3-dimensional matching problem, we show that the Sparse Edge-Connectivity–Spanner problem is NP-complete, implying that all other three problems are NP-complete as well. Replacing in all four formulations “f sH ≤ t“ with “af sH ≤ t“, we obtain four more variations of the problem: Light Average Flow–Spanner, Sparse Average Flow–Spanner, Sparse Average Edge-Connectivity–Spanner and Light Average Edge-Connectivity–Spanner, respectively. These four problems are topics of our current investigations. In Section 5, we investigate two simpler variants of the problem: Tree Flow– Spanner and Light Tree Flow–Spanner problems. Problem: Tree Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), e ∈ E(G), and a positive number t. Output: A tree t-ﬂow–spanner T = (V, E ) of G, that is a spanning tree T of G with ﬂow–stretch factor f sT ≤ t, or ”there is no such tree spanner”.

Problem: Light Tree Flow–Spanner Instance: An undirected graph G = (V, E), non-negative edge capacities c(e), nonnegative edge costs p(e), e ∈ E(G), and two positive numbers t and B. Output: A light tree t-ﬂow–spanner T = (V, E ) of G, that is a spanning tree T of G with ﬂow–stretch factor f sT ≤ t and total cost P(T ) ≤ B, or ”there is no such tree spanner”.

In a similar way one can deﬁne also the Tree Average Flow–Spanner and Light Tree Average Flow–Spanner problems. Notice that our tree t-ﬂow-spanners are diﬀerent from the well-known Gomory-Hu trees [14]. Gomory-Hu trees represent

Network Flow Spanners

413

the structure of all s-t maximum ﬂows of undirected graphs in a compact way, but they are not necessarily spanning trees. We show that the Tree Flow–Spanner problem has easy polynomial time solution while the Light Tree Flow–Spanner problem is NP-complete. In Section 6, we propose two approximation algorithms for the Light Tree Flow–Spanner problem.

3

Related Work

In [11], a network design problem, called smallest k-ECSS problem is considered, which is close to our Sparse Edge-Connectivity–Spanner problem. In that problem, given a graph G along with an integer k, one seeks a spanning subgraph H of G that is k-edge-connected and contains the fewest possible number of edges. The problem is known to be MAX SNP-hard [9], and the authors of [11] give a polynomial time algorithm with approximation ratio 1 + 2/k (see also [4] for an earlier approximation result). It is interesting to note that a sparse kedge-connected spanning subgraph (with O(k|V |) edges) of a k-edge-connected graph can be found in linear time [19]. In our Sparse Edge-Connectivity–Spanner problem, instead of trying to guarantee the k-edge-connectedness in H for all vertex pairs, we try to closely approximate by H the original (in G) levels of edge-connectivities. Paper [12] deals with the survivable network design problem (SNDP) which can be considered as a generalization of our Light Edge-Connectivity–Spanner problem. In SNDP, we are given an undirected graph G = (V, E), a non-negative cost p(e) for every edge e ∈ E and a non-negative connectivity requirement rij for every (unordered) pair of vertices i, j. One needs to ﬁnd a minimumcost subgraph in which each pair of vertices i, j is joined by at least rij edgedisjoint paths. The problem is NP-complete since the Steiner Tree Problem is a special case, and [13] gives an eﬃcient approximate solution. If connectivity requirements are at most k (for some integer k), then a solution found is within a factor 2H(k) = 2(1 + 12 + 13 + . . . + k1 ) of optimal. See also [10, 12, 16, 24] for some earlier results. By setting rij := FG (i, j)/t for each pair of vertices i, j, our Light Edge-Connectivity–Spanner problem (with given ﬂow–stretch factor t) can be reduced to SNDP. Another related problem, which deals with the maximum ﬂow, is investigated in [8, 17]. In that problem, called MaxFlowFixedCost, given a graph G = (V, E) with non-negative capacities c(e) and non-negative costs p(e) for each edge e ∈ E, a source s and a sink t, and a positive number B, one must ﬁnd an edge subset E ⊆ E of total cost e∈E p(e) ≤ B, such that in spanning graph H = (V, E ) of G the ﬂow from s to t is maximized. Paper [8] shows that 1− this problem, even with uniform edge-prices, does not admit a 2log n -ratio appolylog n proximation for any constant > 0 unless N P ⊆ DT IM E(n ). In [17], a polynomial time F ∗ -approximation algorithm for the problem is presented, where F ∗ denotes the maximum total ﬂow. In our Sparse Flow–Spanner problem

414

F.F. Dragan and C. Yan

we require from spanning subgraph H to approximate maximum ﬂows for all vertex pairs simultaneously. To the best of our knowledge our spanner-like all-pairs problem formulations are new.

4

Hardness of the Flow–Spanner Problems

This section is devoted to the proof of the NP-completeness of the Sparse EdgeConnectivity–Spanner problem and other Flow–Spanner problems. Theorem 1. Sparse Edge-Connectivity–Spanner problem is NP-complete. Proof. It is obvious that the problem is in NP. To prove its NP-hardness, we will reduce the 3-dimensional matching (3DM) problem to this one, by extending a reduction idea from [10]. Let M ⊆ W × X × Y be an instance of 3DM, with |M | = p and W = {wi |i = 1, 2, · · · , q}, X = {xi |i = 1, · · · , q} and Y = {yi |i = 1, · · · , q}. One needs to check if M contains a matching, that is, a subset M ⊆ M such that |M | = q and no two triples of M share a common element from W ∪ X ∪ Y . Deﬁne Deg(a) to be the number of triples in M that contain a, a ∈ W ∪ X ∪ Y . We construct a graph G = (V, E) as follows (see Fig. 1). For each triple (wi , xj , yk ) ∈ M , there are four corresponding vertices aijk , aijk , dijk and dijk in V . dijk and dijk are called dummy vertices. Denote D := {dijk |(wi , xj , yk ) ∈ M }, D := {dijk |(wi , xj , yk ) ∈ M }, A := {aijk |(wi , xj , yk ) ∈ M }, A := {aijk |(wi , xj , yk ) ∈ M }. Additionally, for each a ∈ X ∪ Y , we deﬁne a vertex a and 2Deg(a) − 1 dummy vertices d1 (a), · · · , d2Deg(a)−1 (a) of a. For each wi ∈ W , we deﬁne a vertex wi and 4Deg(wi )− 3 dummy vertices d1 (wi ), · · · , d4Deg(wi )−3 (wi )

w1

d 111 d 111

a 111 a 111

w2 x1

d 222

v d 222

a 222

d122

a 122

d 122

a 122

x2 y1

y2

a 222

Fig. 1. Graph created for a 3DM instance: M = {(w1 , x1 , y1 ), (w2 , x2 , y2 ), (w1 , x2 , y2 )}, W = (w1 , w2 ), X = (x1 , x2 ) and Y = (y1 , y2 ). The edges from Ed are shown in bold.

Network Flow Spanners

415

of wi . There is an extra vertex v in V . Let Nd be the dummy vertices (note that D, D ⊂ Nd ). So, the vertex set V of G is V = {v} ∪ W ∪ X ∪ Y ∪ A ∪ A ∪ Nd . For each dummy vertex di (a) ∈ Nd (a ∈ W ∪ X ∪ Y ) put (a, di (a)), (v, di (a)) into Ed . Also put (wi , dijk ), (dijk , aijk ), (wi , dijk ), (dijk , aijk ) into Ed . Now, the edge set E of G is E = Ed ∪ {(aijk , aijk ), (aijk , xj ), (aijk , yk )|(wi , xj , yk ) ∈ M }. This completes the description of G = (V, E). Clearly, each dummy vertex has exactly two neighbors in G, and each vertex of A ∪ A has exactly 3 neighbors in G. Also, each wi has 4Deg(wi ) − 3 + 2Deg(wi ) = 6Deg(wi ) − 3 neighbors and each a ∈ X ∪ Y has 2Deg(a) − 1 + Deg(a) = 3Deg(a) − 1 neighbors in G. Set t = 3/2 and B = |Ed | + p + q. We claim that M contains a matching M if and only if G has a ﬂow–spanner H = (V, E ) with ﬂow–stretch factor ≤ t and with B edges. Proof of this claim is presented in the journal version.

Corollary 1. The Light Flow–Spanner, the Sparse Flow–Spanner and the Light Edge-Connectivity–Spanner problems are NP-complete.

5

Tree Flow–Spanners

In this section, we show that the Light Tree Flow–Spanner problem is NPcomplete while the Tree Flow–Spanner problem can be solved eﬃciently by any Maximum Spanning Tree algorithm. Theorem 2. The Light Tree Flow–Spanner problem is NP-complete. Proof. The problem is obviously in NP. One can non-determenistically choose a spanning tree and test in polynomial time whether it satisﬁes the cost and the ﬂow–stretch bounds. To prove its NP-hardness, we will reduce the 3SAT problem to this one. Let xi be a variable in the 3SAT instance. Without loss of generality, assume that the 3SAT instance does not have clause of type (xi ∨ xi ∨ xj ) (note j may be equal to i). Since such a clause is always true no matter what value xi gets, it can be eliminated without aﬀecting the satisﬁability. From a 3SAT instance one can construct a graph G = (V, E) as follows. Let x1 , x2 , · · · , xn be the variables and C1 , · · · , Cq be the clauses of 3SAT. Let ki be the number of clauses containing either literal xi or literal xi . Create 2ki vertices for each variable xi in G. Denote those vertices by V (xi ) = {x1i , x2i , · · · , xki i } and V (xi ) = {x1i , · · · , xki i }. All these vertices are called variable vertices. Put an edge (xli , xli ) into E(G), for 1 ≤ l ≤ ki . Set p(xli , xli ) = c(xli , xli ) = 1. For each integer l+1 l l, where 1 ≤ l < ki , put (xli , xl+1 i ) and (xi , xi ) into E(G) and set their prices and capacities to be 2. For each clause Cj , create a clause vertex Cj in G. At the beginning, mark all the vertices corresponding to the variables as “free”. Do the following for j = 1, 2, . . . , q. If xi (or xi ) is in Cj , then ﬁnd the smallest integer l such that xli (or xli ) is “free” and put (Cj , xli ) ((Cj , xli ), respectively) into E(G). Mark xli and xli as “busy”. Set c(Cj , xli ) = p(Cj , xli ) = 3 (respectively, c(Cj , xli ) = p(Cj , xli ) = 3).

416

F.F. Dragan and C. Yan

Graph G has also an extra vertex v. For each variable xi , put edges (v, x1i ) and (v, x1i ) into E(G). Set their prices and capacities to 2. This completes the description of G. Obviously, the transformation can be done in polynomial time. For each variable xi , let Hi be the subgraph of G induced by vertices {v, x1i , · · · , xki i , x1i , · · · , xki i }. Name all the edges with capacity 2 assignment edges, the edges with capacity 1 connection edges and the edges with capacity 3 consistent edges. The path (v, x1i , x2i , · · · , xki i ) is called positive path of Hi and the path (v, x1i , · · · , xki i ) is called negative path of Hi . Let N = k1 + k2 + · · · + kn . Set B = 3N + 3q and f sT = 8. We need to show that the 3SAT is satisﬁable if and only if the graph G has a tree ﬂow–spanner with total cost less than or equal to B and ﬂow–stretch factor at most 8. Here, we prove the “only if” direction. A proof for the “if” direction is presented in the journal version. Let T be a tree ﬂow–spanner of G such that f sT ≤ 8 and e∈E(T ) p(e) ≤ B. Obviously, T must have at least q consistent edges. Assume T has r assignment edges, s connection edges and t+ q consistent edges. Clearly, r, s, t ≥ 0 and, since T has 2N + q edges (because G has 2N + q + 1 vertices), r + s + t = 2N . From e∈E(T ) p(e) ≤ B = 3N + 3q we conclude also that 2r + s + 3t ≤ 3N . Hence, 2r + s + 3t − 2(r + s + t) ≤ −N , i.e., t ≤ s − N . If s < N , then t < 0, which is impossible. Therefore, T must include all N connection edges of G, implying s = N and r + t = N , 2r + 3t ≤ 2N . From 2r + 3t − 2(r + t) ≤ 0 we conclude that t ≤ 0. So, t must be 0, and therefore, T contains exactly q consistent edges, exactly N assignment edges and all N connection edges. This implies that, for x 11

x 21 2 1

1 2

x 12

2 2

v

3

x 22

C1

3 3

2 1

1

2

3

2

x 12

2 2

x

2 2

x 21

x 11

2

3

x 22

3

C2

1 3

1 3

x 13 x 14 1

x 14

Fig. 2. Graph created from expression (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x4 )

Network Flow Spanners

417

every variable xi , exactly one edge from {(x1i , v), (x1i , v)} is in E(T ). Since in T each clause vertex must be adjacent to at least one variable vertex and there are q consistent edges in T , each clause vertex is a pendant vertex of T (is adjacent in T to exactly one variable vertex). By construction of G, for each variable vertex xli , any path between xli and v in G either totally lies in Hi or has to use at least one clause vertex. Since all clause vertices are pendant in T , the path between xli and v in T must totally lie in Hi . Similarly, the path between xli and v in T must totally lie in Hi . Now, we show how to assign true/false to the variables of the 3SAT instance to satisfy all its clauses. For each variable xi , if (x1i , v) ∈ E(T ) then assign true to xi , otherwise assign false to xi . We claim that, if a clause vertex Cj is adjacent to a variable vertex xli (or to a variable vertex xli ) in T , then xi is assigned true (false, respectively). The claim can be proved by contradiction. Assume xi is assigned false, i.e., (x1i , v) ∈ E(T ) and (x1i , v) ∈ / E(T ), but Cj is adjacent to a variable vertex xli in T . As it was mentioned in the previous paragraph, the path PT (xli , v) between xli and v in T must totally lie in Hi . Since (x1i , v) ∈ / E(T ), edge (x1i , v) l cannot be in PT (xi , v). By construction of Hi , any path in Hi from xli to v not using edge (x1i , v) must contain at least one connection edge. This means that the path PT (Cj , v) contains at least one connection edge, too. Since all connection edges have capacity 1, FT (Cj , v) = 1. On the other hand, FG (Cj , v) = 9. Hence, f low stretch(Cj , v) = 9 > 8, contradicting with f sT ≤ 8. This contradiction proofs the claim. Now, since every clause contains at least one true literal (note (xli , Cj ) ∈ E(G) implies clause Cj contains xi ), the 3SAT instance is satisﬁable. This completes the proof of the theorem.

Let G = (V, E) be graph of an instance of the Light Tree Flow–Spanner problem. Let c∗ be the maximum edge capacity of G and c∗ be the minimum edge capacity ∗ of G. Note that, if cc∗ = 1, then the Light Tree Flow–Spanner problem can be solved in polynomial time by simply ﬁnding a minimum spanning tree Tp of G, where the weight of an edge e ∈ E(G) is p(e). From the proof of Theorem 2, ∗ one concludes that when cc∗ ≥ 3, the Light Tree Flow–Spanner problem is NPcomplete. Now we turn to the Tree Flow-Spanner problem on a graph G = (V, E) (recall that in this problem p(e) = 1 for any e ∈ E). Lemma 1. Let Tc be a maximum spanning tree of a graph G (with edge weights c(·)) and T be an arbitrary spanning tree of G. Then, for any two vertices u, v ∈ V (G), FTc (u, v) ≥ FT (u, v). Lemma 1 implies that a maximum spanning tree Tc of a graph G, where the edge capacities are interpreted as edge weights, is an optimal tree ﬂow–spanner of G. Hence, the following theorem holds. Theorem 3. Given an undirected graph G = (V, E), with non-negative capacities on edges, and a number t > 0, whether G admits a tree ﬂow–spanner with ﬂow–stretch factor at most t can be determined in polynomial time (by any maximum spanning tree algorithm).

418

6

F.F. Dragan and C. Yan

Approximation Algorithms

In this section, we present some approximation algorithms for the Light Tree Flow–Spanner problem. Let G = (V, E) be an undirected graph with nonnegative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G). For given two positive numbers t and B we want to check if a spanning tree T ∗ of G with ﬂow–stretch factor f sT ∗ ≤ t and total cost P(T ∗ ) ≤ B exists or not. If such a tree exists then we say that the Light Tree Flow–Spanner problem on G has a solution. We will say that a spanning tree T of a graph G gives an (α, β)-approximate solution to the Light Tree Flow–Spanner problem on G if the inequalities f sT ≤ αt and P(T ) ≤ βB hold for T . A polynomial time algorithm producing an (α, β)-approximate solution to any instance of the Light Tree Flow–Spanner problem admitting a solution is called an (α, β)-approximation algorithm for the Light Tree Flow–Spanner problem. ∗

Lemma 2. If cc∗ ≤ k, where c∗ := max{c(e) : e ∈ E} and c∗ := min{c(e) : e ∈ E}, then there is a (k, 1)-approximation algorithm for the Light Tree Flow– Spanner problem. This result will be used in our main approximation algorithm. Let G = (V, E) be an undirected graph with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G). Assume that G has a spanning tree T ∗ with f sT ∗ ≤ t and P(T ∗ ) ≤ B. In what follows, we describe a polynomial time algorithm which, given a parameter (any real number) r larger than 1 and smaller than t (1 < r ≤ t − 1), produces a spanning tree T of G such that f sT ≤ r(t − 1)t and P(T ) ≤ 1.55 logr (r(t − 1))B. Thus, it is an (r(t − 1), 1.55 logr (r(t − 1)))approximation algorithm for the Light Tree Flow–Spanner problem. Assume that the edges of G are ordered in a non-decreasing order of their capacities, i.e., we have an ordering e1 , e2 , · · · , em of the edges of G such that c(e1 ) ≤ c(e2 ) · · · ≤ c(em ). Let 1 < r ≤ t − 1. If c(em )/c(e1 ) ≤ r(t − 1), then Lemma 2 suggests to construct a minimum spanning tree of G using p(e)s as the edge weights. This tree is an (r(t − 1), 1)-approximate solution, and hence we are done. Assume now that c(em )/c(e1 ) > r(t − 1). We cluster all the edges of G into groups as follows. First group consists of all the edges whose capacities are in the range [l1 = c(em )/r, h1 = c(em )]. Then, we ﬁnd the largest capacity c(ei ) such that c(ei ) < c(em )/r and form the second group of edges. It consists of all edges whose capacities are in the range [l2 = c(ei )/r, h2 = c(ei )]. We continue this process until a group of edges whose capacities are in the range [lk , hk ] with c(e1 ) ≥ lk is formed. Let Gi = (V, Ei ) be a subgraph of G formed by Ei = {e ∈ E(G) : li ≤ c(e) ≤ h1 }. Let Gi1 , Gi2 , · · · , Gipi be those connected components of Gi which contain at least two vertices. Consider another subgraph Gi = (V, Ei ) of G formed by i i Ei = {e ∈ E(G) : hi /(r(t − 1)) ≤ c(e) ≤ h1 }. Gi 1 , G2 , · · · , Gqi are used to denote those connected components of Gi which contain at least two vertices. Let u, v ∈ V (G) be two arbitrary vertices. Choose the minimum i such that u and v are connected in Gi and let Gij be the connected component of Gi which

Network Flow Spanners

419

i i contains u and v. Let Gi j be the connected component of Gi such that Gj ⊆ Gj (clearly, such a connected component exists). The following lemma holds (proof is presented in the journal version).

Lemma 3. If G has a tree ﬂow–spanner T ∗ with ﬂow–stretch factor ≤ t, then the path PT ∗ (u, v) connecting u and v in T ∗ must totally lie in Gi j . From Lemma 3, our approximation algorithm for the Light Tree Flow–Spanner problem is obvious. PROCEDURE 1. Construct a light tree ﬂow–spanner for a graph G Input: An undirected graph G with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G); positive real numbers t and 1 < r ≤ t − 1. Output: A spanning tree T of G. Method: set Gf := (V, Ef ), where Ef = {e ∈ E(G) : p(e) = 0}; for i = 1 to k do let Gi := (V, Ei ) be a subgraph of G with Ei := {e ∈ E(G) : li ≤ c(e) ≤ h1 }; let Gi1 , · · · , Gipi be those conn. comp. of Gi which contain at least two vertices; hi let Gi := (V, Ei ) be a subgraph of G with Ei := {e ∈ E(G) : r(t−1) ≤ c(e) ≤ h1 }; i i let G1 , · · · , Gqi be those conn. comp. of Gi which contain at least two vertices; set Vt := 1≤j≤pi V (Gij ); in each conn. comp. Gi j (1 ≤ j ≤ qi ), ﬁnd an approximate minimum weight Steiner tree Tji where terminals are V (Gi j ) ∩ Vt and p(e)s are the edge weights; { 1≤j≤qi {e ∈ E(Tji ) : p(e) > 0}}; set Ef := Ef for each edge e ∈ 1≤j≤pi E(Gij ), set p(e) := 0; ﬁnd a maximum spanning tree T of Gf using the capacities as the edge weights; return T .

Ë

Ë Ë Ë

Below, the quality of the tree T constructed by above procedure is analyzed. Lemma 4. If G admits a tree t-ﬂow–spanner, then f sT ≤ r(t − 1)t. Proof. Let u, v ∈ V (G) be two arbitrary vertices and T ∗ be a tree t-ﬂow–spanner of G. Choose the smallest integer i such that u and v are connected in Gi . Let PG (u, v) be an arbitrary path between u and v in G and e ∈ PG (u, v) be an edge on the path with smallest capacity. By the choice of i, we have c(e) ≤ hi . Without loss of generality, assume u, v ∈ Gij . According to Procedure 1, u and v will be connected by a path PTji (u, v) in Tji . Let e ∈ PTji (u, v) be an edge with minimum capacity in PTji (u, v). It is easy to see that c(e ) ≥ hi /(r(t − 1)). We claim that after iteration i, there is a path PGf (u, v) between u and v in Gf such that for any edge e ∈ PGf (u, v), the inequality c(e) ≥ hi /(r(t−1)) holds. We prove this claim by induction on i. All edges of PTji (u, v) with current p(e) greater than 0 are added to Ef . Ef contains also each edge for which original p(e) was 0. Therefore, if Gf does not contain an edge e = (a, b) ∈ E(PTji (u, v)), then current p(e) of e was 0, and this implies c(e) > hi . According to Procedure 1, a, b must be in a connected component of Gl where 1 ≤ l < i. Hence, by induction,

420

F.F. Dragan and C. Yan

at lth iteration, a and b must be connected by a path PGf (a, b) such that, for each edge e ∈ PGf (a, b), the inequality c(e) ≥ hl /(r(t − 1)) > hi /(r(t − 1)) holds. By concatenating such paths and the edges put into Gf during ith iteration, one can ﬁnd a path between u and v which satisﬁes the claim. Since T is a maximum spanning tree of Gf (where the edge weights are their capacities), similarly to the proof of Lemma 1, one can show that for any edge e ∈ PT (u, v), c(e) ≥ hi /(r(t − 1)) holds. This implies FT ∗ (u, v) ≤ hi ≤ r(t − 1)FT (u, v). Since T ∗ has ﬂow–stretch factor ≤ t, we have FG (u, v) ≤ tFT ∗ (u, v), (u,v) ≤ r(t − 1)t. This concludes our proof.

and therefore FFG T (u,v) Lemma 5. If G has a tree t-ﬂow–spanner T ∗ with cost P(T ∗ ), then P(T ) ≤ 1.55 logr (r(t − 1))P(T ∗ ). Proof. By Lemma 3, one knows that for any two vertices u, v of Gij , PT ∗ (u, v) i i ∗ totally lies in Gi j where Gj ⊆ Gj . Hence, the smallest subtree of T spanning i all vertices of Vt ∩ Gi j is totally contained in Gj . We can use in Procedure 1 an 1.55-approximation algorithm of Robins and Zelikovsky [23] to construct an approximation to a minimum weight Steiner tree in Gi j spanning terminals ∗ Vt ∩ V (Gi ). It is easy to see that P (G ) ≤ 1.55 P (T ), where Pi (Gf ) is the i f i j total cost of the Steiner trees constructed by Procedure 1 on ith iteration and Pi (T ∗ ) is the total cost of the edges from T ∗ which have capacities in the range [h vertices in Vt . Therefore, P(Gf ) ≤ i /(r(t − 1)), hi ] and are used to connect ∗ ∗ P (G ) ≤ 1.55 P (T ). We will prove that P i f i 1≤i≤k 1≤i≤k 1≤i≤k i (T ) ≤ ∗ ∗ 1))P(T ). To see this, we show that each edge of T appears at most logr (r(t − 1 l times in 1≤i≤k Pi (T ∗ ), where r1l ≥ r(t−1) . Then l ≤ logr (r(t − 1)) will follow. Consider an edge e ∈ Gi with p(e) = 0. We have hi /(r(t − 1)) ≤ c(e) ≤ hi . According to Procedure 1, after ith iteration, all the edges with capacity in [hi /r, hi ] have 0 cost. After (i + 1)th iteration, all the edges with capacity in [hi /r2 , hi ] have 0 cost. After (i + l − 1)th iteration, all the edges with capacity in [hi /rl , hi ] have 0 cost. To have p(e) > 0, the inequality hi /rl ≥ hi /(r(t−1)) must hold. So, l ≤ logr (r(t − 1)) and therefore P(Gf ) ≤ 1.55 logr (r(t − 1)) P(T ∗ ). Since T is a spanning tree of Gf , the lemma clearly follows.

In the remaining part, we describe how to get a tree ﬂow–spanner T of G with ﬂow–stretch factor ≤ t and total cost at most (n − 1)P(T ∗ ), provided G has a tree t-ﬂow–spanner T ∗ . The algorithm is as follows. PROCEDURE 2. Construct a light tree t-ﬂow–spanner for a graph G Input: An undirected graph G with non-negative edge capacities c(e) and non-negative edge costs p(e), e ∈ E(G); a positive real number t. Output: A tree t-ﬂow–spanner T of G. Method: set Gf := (Vf , Ef ), where Vf = V, Ef = ∅; construct a complete graph G = (V, E ); for each (u, v) ∈ E , let w(u, v) := FG (u, v) be the weight of the edge; construct a maximum spanning tree T of the weighted graph G ;

Network Flow Spanners

421

for each edge (u, v) ∈ E(T ) do let Gw(u,v) be a subgraph of G obtained from G by removing all edges e with c(e) < w(u, v)/t; ﬁnd a connected component Gu,v of Gw(u,v) such that u, v ∈ V (Gu,v ); if we cannot ﬁnd such a connected component, then return ”G does not have any ﬂow tree t-spanner”; ﬁnd a shortest (w.r.t. the costs of the edges) path PGu,v (u, v) between u and v; set Ef := Ef ∪ E(PGu,v (u, v)); ﬁnd a maximum spanning tree T of Gf using the edge capacities as their weights; return T .

The following lemma is true (proof is presented in the journal version). Lemma 6. f sT ≤ t and P(T ) ≤ (n − 1) P(T ∗ ). Summarizing the discussion of this section, we state Theorem 4. There exist (r(t−1), 1.55 logr (r(t−1)))-approximation and (1, n− 1)-approximation algorithms for the Light Tree Flow–Spanner problem.

References 1. I. Alth¨ ofer, G. Das, D. Dobkin, D. Joseph, and J. Soares, On sparse spanners of weighted graphs, Discrete Comput. Geom., 9 (1993), 81–100. 2. S. Baswana and S. Sen, A simple linear time algorithm for computing a (2k − 1)spanner of o(n1+1/k ) size in weighted graphs, ICALP’03, LNCS 2719, pp. 384–396. 3. L. Cai and D.G. Corneil, Tree spanners, SIAM J. Discr. Math., 8 (1995), 359–387. 4. J. Cheriyan and R. Thurimella, Approximating Minimum-Size k-Connected Spanning Subgraphs via Matching, SIAM J. Comput., 30 (2000), 528-560. 5. L.P. Chew, There are planar graphs almost as good as the complete graph, J. of Computer and System Sciences, 39 (1989), 205–219. 6. M. Elkin and D. Peleg, (1 + , β)-spanner constructions for general graphs, STOC’01, pp. 173–182, 2001. 7. Y. Emek and D. Peleg, Approximating Minimum Max-Stretch spanning Trees on unweighted graphs, SODA’04, pp. 261-270, 2004. 8. G. Even, G. Kortsarz, and W. Slany, On network design problems: ﬁxed cost ﬂows and the Covering Steiner Problem, to appear in Transactions on Algorithms. 9. C.G. Fernandes, A Better Approximation Ratio for the Minimum Size k-EdgeConnected Spanning Subgraph Problem, J. Algorithms, 28 (1998), 105-124. 10. G.N. Frederickson and J. J´ aJ´ a, Approximation algorithms for several graph augmentation problems, SIAM Journal on Computing, 10 (1981), 270-283. 11. H.N. Gabow, M.X. Goemans, E. Tardos, and D.P. Williamson, Approximating the smallest k-edge connected spanning subgraph by LP-rounding, SODA 2005, pp. 562–571, 2005. 12. H.N. Gabow, M.X. Goemans, D.P. Williamson, An eﬃcient approximation algorithm for the survivable network design problem, Math. Program., 82 (1998), 13-40. ´ Tardos, D.P. 13. M.X. Goemans, A.V. Goldberg, S.A. Plotkin, D.B. Shmoys, E. Williamson, Improved Approximation Algorithms for Network Design Problems, SODA 1994, 223–232.

422

F.F. Dragan and C. Yan

14. R.E. Gomory, T.C. Hu, Multi-terminal network ﬂows, J. SIAM, 9 (1961), 551–570. 15. R. Hassin and A. Levin, Minimum restricted diameter spanning trees, Proc. 5th Int. Workshop on Approx. Algorithms for Combinatorial Optimization, LNCS 2462, 2002, 175-184. 16. S. Khuller and U. Vishkin, Biconnectivity Approximations and Graph Carvings, STOC’92, pp. 759-770, 1992. 17. S.O. Krumke, H. Noltemeier, S. Schwarz, H.-C. Wirth, and R. Ravi, Flow Improvement and Network Flows with Fixed Costs. OR’98, Springer, 1998. ftp://www.mathematik.uni-kl.de/pub/scripts/krumke/or98-ﬂow.pdf 18. A.L. Liestman, T. Shermer, Additive graph spanners, Networks, 23(1993), 343-364. 19. H. Nagamochi, T. Ibaraki, A Linear-Time Algorithm for Finding a Sparse kConnected Spanning Subgraph of a k-Connected Graph, Algorithmica, 7 (1992), 583–596. 20. D. Peleg and A.A. Sch¨ aﬀer, Graph Spanners, J. Graph Theory, 13 (1989), 99-116. 21. D. Peleg and J.D. Ullman, An optimal synchronizer for the hypercube, In Proc. 6th ACM SPDC, Vancouver, 1987, 77–85. 22. D.Peleg and E.Upfal, A tradeoﬀ between space and eﬃciency for routing tables, STOC’98, 43-52, 1988. 23. G. Robins and A. Zelikovsky, Improved Steiner tree approximation in graphs, SODA’00, 770–779, 2000. 24. D.P Williamson, M.X. Goemans, M. Mihail, and V.V. Vazirani, A primal-dual approximation algorithm for generalized Steiner network problems, STOC’93, pp. 708–717, 1993.