• Aucun résultat trouvé

Steiner Trees

Dans le document Algorithms and Computation in Mathematics • (Page 135-138)

Spanning Trees

4.6 Steiner Trees

Assume that we are faced with the problem of connecting n points in the Euclidean plane by a network of minimal total length; for a concrete example we may think of connectingn cities by a telephone network. Of course, we might just view the given points as the vertices of a complete graph and determine a minimal spanning tree with respect to the Euclidean distance.

However, Example 3.2.4 suggests that it should be possible to do better if we are willing to add some new vertices—in our concrete example, we might introduce some switch stations not located in any of the n cities. A plane tree which is allowed to contain—in addition to the n given vertices—an arbitrary number of further vertices, the so-called Steiner points, is called a Steiner tree. The Euclidean Steiner problem (called the geometric Steiner tree problem in [GarJo76]) is the problem of finding a minimal Steiner tree for the givennvertices.2

In the last century Jacob Steiner, among others, studied this problem, which accounts for its name. Actually, the Steiner tree problem for n= 3 goes back to Fermat.3A fundamental paper on Steiner trees is due to Gilbert and Pollak [GilPo68]; these authors suggested the problem of finding a lower bound ρ for the ratio between the total length of a minimal Steiner tree and the total length of a minimal spanning tree for a given set of vertices.

They were able to showρ≥12—a result we will prove in Theorem 15.4.9—

and suggested theSteiner ratio conjecture:ρ≥√

3/2. This bound is optimal, as can be seen rather easily by considering an equilateral triangle; it was finally shown to be correct by Du and Hwang [DuHw90a, DuHw90b]. Thus a minimal Steiner tree for a given set ofnvertices is at most (roughly) 14 %

2Beware: some authors use the termSteiner treefor what we call aminimal Steiner tree.

As an exercise, the reader might try to settle the geometric Steiner tree problem for the vertices of a unit square: here one gets two Steiner points, and the minimal Steiner tree has length 1 +

3. See [Cox61], Sect. 1.8, or [CouRo41], p. 392.

3Here is an exercise for those who remember their high school geometry. Prove that the Fermat pointof a triangle in which no angle exceeds 120is the unique point from which the three sides each subtend a 120angle. See, for example, [Cox61], Sect. 1.8.

better than a minimal spanning tree. We note that minimal Steiner trees are difficult to determine: the Euclidean Steiner tree problem is NP-complete, see [GarGJ77]. In contrast, it is easy to find minimal spanning trees. For practical applications, one will therefore be satisfied with minimal spanning trees or with better, but not necessarily minimal, Steiner trees. A relatively good algorithm for determining minimal Steiner trees can be found in [TriHw90];

heuristics for finding good Steiner trees are in [DuZh92].

The Steiner problem has also been studied extensively for other metric spaces. In this section, we consider a graph theoretic version, the Steiner network problem. Here one is given a network (G, w) with a positive weight function w, where the vertex set V of G is the disjoint union of two sets R and S. Now a minimal Steiner tree is a minimal spanning tree T for an induced subgraph whose vertex set has the form R∪S with S⊂S. The vertices inS are again calledSteiner points.

Note that the Steiner network problem is a common generalization of two problems for which we have already found efficient solutions: the caseS= is the problem of determining a minimal spanning tree; and for|R|= 2, the problem consists of finding a shortest path between the two given vertices.

Nevertheless, the general Steiner network problem is NP-hard, a result due to [Kar72]. [Law76] gave an algorithm whose complexity is polynomial in the cardinalitysof S but exponential in the cardinalityr ofR. Before pre-senting this algorithm, we prove a further result due to [GilPo68]: one needs only a relatively small number of Steiner points, provided that we are in the metric case, whereGis complete andwsatisfies the triangle inequality (met-ric Steiner network problem). Then we will show how to reduce the general Steiner network problem to the metric case.

Lemma 4.6.1 Let G= (V, E) be a complete graph whose vertex set is the disjoint unionV =R∪. S of two subsets.Moreover,letw be a positive weight function on E satisfying the triangle inequality. Then there is a minimal Steiner tree for the network (G, w) which contains at most |R| −2 Steiner points.

Proof Write r=|R|, and let T be a minimal Steiner tree for (G, w) with exactlypSteiner points. Let us denote the average degree of a vertex ofRin T byx; similarly,y denotes the average degree of a vertex ofS in T. Then the number of all edges inT satisfies

r+p−1 =rx+py

2 .

Trivially, x≥1. As w satisfies the triangle inequality, we may assume that any Steiner point inT is incident with at least three edges, hencey≥3. This givesr+p−1(r+ 3p)/2; that is,p≤r−2.

Lemma 4.6.2 Let G= (V, E) be a graph whose vertex set is the disjoint unionV =R∪. S of two subsets.Moreover,letwbe a positive weight function

124 4 Spanning Trees

onE andd the distance function in the network (G, w).Then the weight of a minimal Steiner tree for the network (KV, d) is the same as the weight of a minimal Steiner tree for the original network(G, w).

Proof First letT be any Steiner tree for (G, w). Since each edgee=uvofT has weightw(uv)≥d(u, v), the minimal weight of a Steiner tree for (KV, d) is at mostw(T). Now let us replace each edgeuvin a minimal Steiner treeT for (KV, d) by the edges of a shortest path fromutov in G. We claim that this yields a Steiner treeT of the same weight for (G, w), which will prove the assertion. To justify our claim, we just note that no edge can occur twice and that there cannot be a cycle after replacing the edges, because otherwise we could obtain a Steiner tree fromT by discarding superfluous edges. As we would have to discard at least one edge, this would give an upper bound

< w(T) for the weight of a minimal Steiner tree for (KV, d) by the first part of our argument, contradicting the minimality ofT. Algorithm 4.6.3 Let G= (V, E) be a connected graph with a positive weight functionw:E→R, where the vertex setV ={1, . . . , n}is the disjoint unionV =R∪. S of two subsets. Write|R|=r. The algorithm constructs a minimal Steiner treeT forRin (G, w).

Procedure STEINER(G, R, w;T) (1) W← ∞; T← ∅; H←Kn; (2) FLOYD(G, w;d, p);

(3) fori= 1to r−2 do

(4) forS⊂S with|S|=i do (5) PRIM(H|(R∪S), d;T, z);

(6) ifz < W thenW←z;T←T

(7) od

(8) od

(9) fore=uv∈T do

(10) ife /∈E orw(e)> d(u, v)

(11) thenreplaceein T by the edges of a shortest path from uto v inG

(12)

(13) od

Here FLOYD is a modified version of the procedure given in Sect. 3.9 which uses a function p (giving the predecessor as in Algorithm 3.10.1) to deter-mine not only the distance between two vertices, but a shortest path as well.

We need this shortest path in step (11). Similarly, the procedure PRIM is modified in an obvious way to compute not only a minimal spanning tree, but also its weight.

Theorem 4.6.4 Algorithm 4.6.3 constructs a minimal Steiner tree for (G, R;w) with complexityO(|V|3+ 2|S||R|2).

Proof In view of Lemma4.6.1, Lemma4.6.2and its proof, and the correctness of the procedures FLOYD and PRIM, Algorithm 4.6.3is correct. The pro-cedure FLOYD called in step (2) has complexityO(|V|3) by Theorem 3.9.2.

Each call of the procedure PRIM in step (5) has complexity O(|R|2) by Theorem 4.4.4; note here that PRIM is applied to O(|R|) vertices only, by Lemma4.6.1. The number of times PRIM is called is obviously

r2

i=0

|S| i

2|S|.

This establishes the desired complexity bound.

In particular, Theorem 4.6.4 shows that Algorithm 4.6.3 is polynomial in |V| for fixed s. However, the estimate for the complexity given in the proof of Theorem4.6.4is rather bad if we assumerto be fixed; in that case the number of calls of PRIM should better be estimated as about |V|r2. Thus Algorithm4.6.3 is polynomial for fixedr as well. Altogether, we have proved the following result which generalizes the fact that the Steiner network problem can be solved efficiently for the casesr= 2 ands= 0, as noted above.

Corollary 4.6.5 For fixed r or for fixeds the Steiner network problem can be solved with polynomial complexity.

We conclude this section with some recommendations for further reading.

A version of the Steiner network problem for digraphs is considered in the survey [Mac87], and an extensive exposition of the various Steiner problems can be found in the book [HwaRW92]; more recent books on the subject are [Cie98, Cie01] and [ProSt02]; there is also an interesting collection of ar-ticles [DuSR00]. Steiner trees have important applications in VLSI layout;

see [KorPS90], [Len90], or [Mar92]. In this context, one is particularly inter-ested in good heuristics; for this topic, we refer to [Vos92], [DuZh92], and [BerRa94]. As this by no means exhaustive collection of references shows, Steiner trees constitute a large and very active area of research.

Dans le document Algorithms and Computation in Mathematics • (Page 135-138)