Exact Algorithms for the Steiner Tree
Problem
Organization for Scientific Research (NWO) grant 500.30.204 (exact algo-rithms) and carried out at the group of Discrete Mathematics and Mathe-matical Programming (DMMP), Department of Applied Mathematics, Fac-ulty of Electrical Engineering, Mathematics and Computer Science of the University of Twente, the Netherlands.
Netherlands Organization for Scientific Research NWO Grant 500.30.204
Exact algorithms.
UT/EWI/TW/DMMP Enschede, the Netherlands.
UT/CTIT
Enschede, the Netherlands.
The financial support from University of Twente for this research work is gratefully acknowledged. The printing of this thesis is also partly supported by CTIT, University of Twente.
The thesis was typeset in LATEX by the author and printed by W¨ohrmann
Printing Service, Zutphen.
Copyright c Xinhui Wang, Enschede, 2008. ISBN 978-90-365-2660-9
ISSN 1381-3617 (CTIT Ph.D. thesis Series No. 08-116)
All rights reserved. No part of this work may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior permis-sion from the copyright owner.
EXACT ALGORITHMS FOR THE STEINER TREE PROBLEM
DISSERTATION
to obtain
the degree of doctor at the University of Twente, on the authority of the rector magnificus,
prof. dr. W. H. M. Zijm,
on account of the decision of the graduation committee, to be publicly defended on Wednesday 25th of June 2008 at 15.00 hrs by Xinhui Wang born on 11th of February 1978 in Henan, China.
prof. dr. Gerhard J. Woeginger and the assistant promoter,
Contents
List of Figures v
List of Tables ix
1 Introduction 1
1.1 The Steiner tree problem . . . 1
1.1.1 History of the Steiner tree problem . . . 2
1.1.2 Related problems . . . 3
1.2 N P -hardness . . . 5
1.2.1 Definitions and notions . . . 5
1.2.2 The class N P . . . 6
1.3 Algorithms for the Steiner tree problem . . . 8
1.3.1 Exact algorithm . . . 8
1.3.2 Approximation algorithm . . . 11
1.4 EST problem and RST problem . . . 12
1.4.1 Algorithms for the EST problem . . . 13
1.4.2 Algorithms for the RST problem . . . 15
1.5 Overview and contributions . . . 16
2 Exact algorithm for the rectilinear Steiner tree 19 2.1 Introduction . . . 19
2.1.1 Definitions and notions . . . 19
2.1.2 Canonical tree . . . 21
2.2 The properties of a full component . . . 22
2.2.1 Hwang’s theorem . . . 22
2.2.3 Upper bounds for the short leg . . . 29
2.3 An exact algorithm . . . 31
2.3.1 Generation of full components . . . 31
2.3.2 Construction of the optimal tree . . . 32
3 Exact algorithms for the Steiner tree problem 35 3.1 The algorithm in time O∗(2.684k) . . . . 35
3.1.1 Introduction . . . 35
3.1.2 Improvement of Dreyfus-Wagner algorithm . . . 36
3.1.3 The rectilinear case . . . 43
3.1.4 Concluding remarks . . . 45
3.2 The algorithm in time O∗(2 + δ)k . . . 45
3.2.1 Improving the exponential time bound . . . 46
3.2.2 Improving the polynomial factor . . . 50
3.3 Conclusion . . . 53
4 Tree star and candidate component 55 4.1 Introduction . . . 55
4.2 Tree star . . . 57
4.3 The number of tree stars . . . 61
4.3.1 The upper bound . . . 62
4.3.2 The lower bound . . . 69
4.3.3 Remarks . . . 70
4.4 The number of candidate components . . . 71
4.4.1 Forbidden case 1 . . . 71
4.4.2 Forbidden case 2 . . . 78
4.4.3 Monotone candidate components . . . 82
4.4.4 The number of candidate components . . . 86
4.4.5 Remarks . . . 90
4.5 Two conditions for the candidate component . . . 90
4.5.1 T -branches condition . . . 90
4.5.2 Two-layer tree . . . 92
4.6 Conclusion . . . 99
CONTENTS iii A Optimum structure for a monotone tree star 103 A.1 Forbidden cases . . . 103 A.2 Optimum topological structure of an MTS . . . 114
Summary 123
Bibliography 125
Acknowledgements 135
List of Figures
2.1 Example of sliding . . . 20
2.2 Example of flipping . . . 21
2.3 Full component: type 1 . . . 22
2.4 Full component: type 2 . . . 22
2.5 Proof of Hwang’s theorem: case 1 . . . 24
2.6 Proof of Hwang’s theorem: case 2 . . . 24
2.7 Labelling the nodes in a component. . . 25
2.8 Diamonds must be empty. . . 26
2.9 Rectangles must be empty. . . 26
2.10 A nonempty rectangle. . . 27
2.11 Triangles must be empty. . . 28
2.12 Weak triangle condition. . . 28
2.13 Proof of Lemma 2.2.5. . . 29
2.14 Proof of Lemma 2.2.6. . . 30
2.15 Proof of Lemma 2.2.7 . . . 30
3.1 3-Splits . . . 42
3.2 3-Splits subtrees . . . 42
3.3 Spliting the optimum tree into components . . . 46
3.4 Subtrees . . . 46 3.5 ASC algorithm . . . 47 4.1 Hwang tree . . . 56 4.2 Terminals in a component. . . 57 4.3 Diamonds . . . 58 4.4 Rectangles . . . 58
4.5 Triangles . . . 59
4.6 T + e. . . 60
4.7 Triangle condition: case 1 . . . 61
4.8 Triangle condition: case 2 . . . 61
4.9 Empty circles. . . 62
4.10 Terminals above and below the chain. . . 62
4.11 11 is forbidden for yiyj. . . 63
4.12 10 is forbidden for yiyi+1. . . 64
4.13 Illustration of Lemma 4.3.3. . . 64
4.14 Feasible regions for yi and yi′. . . 65
4.15 A tight worst case example. . . 70
4.16 Tree star in forbidden case 1 . . . 72
4.17 Subtree T in forbidden case 1 . . . 72
4.18 Subtree T∗ in forbidden case 1 . . . 73
4.19 yiyi+1yi+2yi+3= 1001 is allowed . . . 73
4.20 yi+1yi+2yi+3yi+4= 1001 is allowed . . . 74
4.21 yi+2yi+3yi+4yi+5= 1001 is allowed . . . 75
4.22 yi+3yi+4yi+5yi+6= 1001 is allowed . . . 76
4.23 yi+5yi+6yi+7yi+8= 1001 is allowed . . . 76
4.24 Tree star in forbidden case 2 . . . 79
4.25 Subtree T in forbidden case 2 . . . 79
4.26 Subtree T∗ in forbidden case 2 . . . 80
4.27 yiyi+1yi+2yi+3= 1001 is allowed . . . 80
4.28 yi+1yi+2yi+3yi+4= 1001 is allowed . . . 81
4.29 yi+2yi+3yi+4yi+5= 1001 is allowed . . . 81
4.30 Structure tree: case 1 . . . 84
4.31 Structure tree: case 2 . . . 85
4.32 Structure tree: case 3.1 . . . 85
4.33 Structure tree: case 3.2 . . . 86
4.34 The case with d′i > d′i+1 . . . 87
4.35 Local maximal point . . . 87
4.36 Local minimal point . . . 88
4.37 The case with yj = 0 . . . 88
4.38 Local minimal point and local maximal point . . . 89
4.39 The case with j≤ i + 2 . . . . 90
LIST OF FIGURES vii
4.41 T∗ in T -branch condition . . . . 91
4.42 yj is the maximum one . . . 92
4.43 yj is the middle one . . . 92
4.44 T in the example . . . 93
4.45 T∗ in the example . . . 93
4.46 Subtree of a monotone tree star . . . 94
4.47 Above layer and below layer . . . 94
4.48 Connection to the left subtree . . . 95
4.49 Forbidden connection . . . 95
4.50 Possible connections . . . 96
4.51 yi directly connects to y′i . . . 97
A.1 Monotone tree star . . . 105
A.2 One possible case of path p . . . 105
A.3 The case j < i . . . 106
A.4 The case j > i + 2 . . . 107
A.5 yiyi+2 is forbidden . . . 107
A.6 yi+1 directly connects to yi+2 . . . 107
A.7 Horizontal segment . . . 108
A.8 mn is above the original chain . . . 108
A.9 yi′ directly connects to y′j with j > i . . . 109
A.10 y′ i directly connects to y′j with j < i . . . 109
A.11 The path is over yi−1. . . 110
A.12 mn is above the chain . . . 111
A.13 mn is below the chain . . . 111
A.14 p is over yi+1 . . . 112
A.15 p is below y′ i . . . 113
A.16 p is between yi and yi+1′ . . . 113
A.17 yi directly connects to y′i−2 . . . 114
A.18 yi directly connects to y′i . . . 115
A.19 The forbidden of yi directly connecting to y′i . . . 116
A.20 yi directly connects to yi+1 . . . 116
A.21 Topological structure of yi directly connecting to yi+1 . . . 117
A.22 yi directly connects to y′i and yi+1 . . . 117
A.23 yi directly connects to y′i and yi+1 . . . 118
A.24 yi directly connects to yi−1 and yi′ . . . 118
A.26 yi directly connects to yi−1′ , yi−1and yi′ . . . 119
A.27 yi directly connects to yi−1′ , yi−1and yi′ . . . 119
A.28 The possible structure . . . 120
A.29 yi, y′i, yi+1, yi−1and yi−1′ are a part of a tree star . . . 120
A.30 yi, y′i, yi+1, yi−1and yi−1′ contain a tree star . . . 120
List of Tables
3.1 The complexity of computing subsets . . . 37
3.2 Polynomial bound and exponential bound . . . 43
3.3 O(ǫp−1) and 1ǫ . . . 53
Chapter 1
Introduction
The definitions and the algorithms for the Steiner tree problem will be introduced in this chapter.
1.1
The Steiner tree problem
After more than 26 years of war, emperor Qinshi Huangdi finally con-quered the other six Chinese countries and built the first powerful central-ized state in 221 BC. In order to consolidate and strengthen the empire, the emperor wanted to build a road-network which would connect some main cities of the seven countries. From the economic view, the newly es-tablished road-network should be as short as possible and be built on the basis of existing roads. However, which roads should be selected then? It was a big problem for Qingshi Huangdi in his time.
Actually, Qinshi Huangdi’s problem can be transformed to a problem on an undirected graph G = (V, E, w), where V is the vertex set, E is the edge set, and w vector of edge weight. In this graph, each city is represented by a vertex v, the road between these cities are edges e, and the length of each road is the weight of the corresponding edge. The main cities that need to be connected from a subset Y of V . The set Y is called terminal set and the points in this set are called terminal points/terminals. Then Qinshi Huangdi’s problem can be treated as a kind of Steiner tree problem (STP) ([65, 70, 64, 79, 30]), which is defined as follows.
Definition 1.1.1. Given an undirected graph G = (V, E, w) and a sub-set Y of V , the Steiner tree problem is to find the shortest subtree (the shortest sum weight of edges in this tree) of G which connects all the points in Y .
The Steiner tree problem is a classical N P − hard combinatorial opti-mization problem ([70, 52]). It has wide applications in various scientific and technological fields such as Very-Large-Scale-Integration (VLSI) design ([76, 74]), communication ([77]), transportation sectors design ([78]), and perfect phylogeny in bioinformatics [5].
1.1.1 History of the Steiner tree problem
The Steiner tree problem is a combinatorial variant of the former Eu-clidean Steiner tree problem [75], which was investigated in the seventeenth century by the French mathematician Pierre Fermat as follows (A more de-tailed history of the Steiner tree problem can be found in [65]).
Problem 1.1.1. Find a point p in a triangle, such that the sum of the distances from p to the three vertices is minimized.
This problem is known as the Fermat problem. It was solved by Torricelli with a geometric solution before 1640. Several years later, Cavalieri showed an important aspect of this problem, namely that the line segments from the given three points make a 120◦ degree angle with each other.
Simpson proposed a general version of Fermat’s problem in his book “Fluxions” as
Problem 1.1.2. Find a point p in a plane with the minimum sum of distances from p to n given points.
Many mathematicians were attracted to work on Simpson’s problem. In 1934, Jarnik and K¨ossler [68] presented another kind of problem – shortest interconnection network problem as
Problem 1.1.3. Find a shortest network which interconnects n given points in a plane.
1.1.2 Related problems 3 The shortest interconnection network problem is different from the Fer-mat problem, except for the case n = 3. Courant and Robbins [24] com-bined these two problems and referred to the shortest interconnection net-work problem as the Steiner problem which is named the great German mathematician Jakob Steiner for his contribution to projective geometry, al-though Steiner’s contribution to the Steiner tree problem is unclear. Gilbert and Pollak [54] further referred to the shortest interconnection network problem in a graph as the Steiner tree problem since the shortest network in a graph should be a tree.
1.1.2 Related problems
Many different variants and generalizations of the Steiner tree problem have been investigated in the literature. Here we only list some important examples.
• Euclidean Steiner tree Problem [108, 66, 103, 29] (ESTP): Given a finite set Y of points in the (Euclidean) plane, find a point set R together with a minimal spanning tree T for R∪ Y , such that T has a minimum length in the ℓ2− norm1 (Euclidean distance).
• Rectilinear Steiner tree problem [41, 47, 58, 61, 63] (RSTP): Given a finite set Y of points in the (Euclidean) plane, find a point set R together with a minimal spanning tree T for R∪ Y , such that T has a minimum length in the ℓ1− norm2 (Manhattan/rectilinear distance).
• Directed Steiner tree problem [65, 106, 83]: Given a directed graph G = (V, A, w) where A is the set of directed arcs, a subset Y of V , and a root terminal z1, find a directed shortest subtree, such that
there is a path from z1 to any point in Y .
• Generalized Steiner tree problem [73, 69, 93]: Given an undirected graph G = (V, E, w), a subset Y of V , and partitions{Y1, Y2,· · · , Yk},
find a shortest tree T , such that at least one point from each Yi is in
T .
1For two points a = (x
1, y1) and b = (x2, y2), the distance in ℓ2− norm (Euclidean
distance) is d(a, b) =p(x1− x2)2+ (y1− y2)2. 2For two points a = (x
1, y1) and b = (x2, y2), the distance in ℓ1− norm
• Weighted Steiner tree problem [96, 33]: Given an undirected graph G = (V, E, w, c), where c is a weight vector of vertices, and a subset Y of V , find a tree T spanning all the points in Y , such that the total weight of edges and vertices in T is minimum.
Some special cases of STP which can be solved efficiently are also very interesting. For instance,
• If k = 2, STP is a shortest path problem between the two given terminals. The solution can be obtained in polynomial time in the input size [23, 25].
• If k = 3, STP is a general version of the Fermat problem. For three given points z1, z2 and z3, STP is to find a vertex v that minimizes
d(v; z1) + d(v; z2) + d(v; z3). The solution can be obtained in time O(m + nlogn).
• If k = n, STP is a minimal spanning tree problem (MSTP) of G [23, 55, 46, 34]. Here too it is still a problem to find a shortest tree that connects all the vertices. The solution can be obtained in time O(m + nlogn) ([23, 25]) as well.
Note that the difference between STP and MSTP: although they both connect the terminal points in Y , STP contains some extra points to reduce the tree length. These extra points in STP are known as the Steiner points. Various algorithms have been proposed for solving STP such as ex-act algorithms [77, 30, 13, 18, 21, 48, 49, 94, 97, 4, 6, 57], approxima-tion algorithms [17, 7, 10, 13, 102, 89, 53, 56] and heuristic algorithms [81, 19, 9, 71, 60, 13, 92]. This thesis focuses mainly on exact algorithms for the Steiner tree problem. Before explaining these algorithms, we will introduce some background of the Steiner tree problem. In Section 2, the definition of N P−hardness will be explained. In Section 3, we will describe some exact algorithms and approximation algorithms for the Steiner tree problem. Parameterized algorithms will be explained as well in Section 3 since the exact algorithms for the STP belong to such algorithms. Results of two special Steiner tree problems will be discussed in Section 4. Finally, our contributions and the structure of this thesis will be described.
1.2 N P -hardness 5
1.2
N P -hardness
Considering that the Steiner tree problem is N P− hard, we will briefly introduce the definition of N P − hard and some other related definitions and notions. For more details about N P -hardness, we refer to [52, 86].
1.2.1 Definitions and notions
In this thesis, we will focus two kinds of problems: optimization problem and decision problem. We will start with the definition of the optimization problem.
The optimization problem is a problem Π = (I, F, c), where I is a set of instances,F is a set of the satisfied solution F(I) (I ∈ I), and each instance I has an associated objective function c : F(I) → R1. An optimization
problem is either a minimization problem or a maximization problem. The minimization problem is to find the solution with the minimum objective value, i.e., to find an x ∈ F(I) such that c(x) ≤ c(y) for all y ∈ F(I), while the maximization problem is to find the solution with the maximum objective value. Here, x is called the optimum solution and c(x) called the optimum value. The optimization version of the Steiner tree problem can be described as
Example 1.2.1. Given an undirected weighted graph G = (V, E, w) and a subset Y of V , find a shortest subtree which connects all points in Y . The second kind of problem is the decision problem. The decision prob-lem is a probprob-lem Π = (I, I+), whereI is a set of instances and I+is a set of “yes” instances, clearly, I+ ⊆ I. The decision problem is to answer the
question whether an instance I belongs to a set of instanceI+ or not. The
decision version of the Steiner tree problem can be written as
Example 1.2.2. ([65]) Given an undirected graph G = (V, E, w), a subset Y of V and a value i, is there a Steiner tree T spanning Y with the length of T is shorter than i?
Each optimization problem has a corresponding decision version. For the minimization problem, that has an instance I and a given value i, the corresponding decision problem is to detect whether I belongs toI+or not,
where
For both decision problem and optimization problem, the final answer can be calculated or recognized with an algorithm A. The algorithm A is a step by step procedure or instruction for any instance of a problem. The algorithm A stops when all the instructions are performed, and gives as output a final solution for each input instance I. The length |I| of an instance I in a problem Π is called the size of input, which is defined as the number of symbols in the description of I for Π. The number of steps that it takes on an instance of the problem is called the time complexity, which normally is a function with respect to the size of input. If the complexity of an algorithm is f (n), and there exists a g(n) with some constant c > 0 such that f (n)≤ cg(n) for large enough n, the complexity would be written as O(g(n)).
Polynomial time refers to the computation time of a problem where the final solution can be obtained within p(|I|) steps, where p(|I|) is a polynomial function of |I|. An algorithm running in polynomial time is called “efficient”. The decision problem that can be solved in polynomial time is known as the class “P ”. Problems in P are considered to be “easy problems”.
1.2.2 The class N P
Many interesting problems can be solved in polynomial time, while oth-ers can not. Therefore, a richer class of decision problems, the class N P (Non-deterministic Polynomial time), is introduced. The definitions of N P , N P − complete and NP − hard will be explained in the following section. A certificate is a witness or a proof for the right guess that I∈ I+. In the decision version of the Steiner tree problem, the certificate is a tree T∗
which is used to prove the existence of such a tree with a length less than i. Let c be the certificate for a “yes” instance I, whose length is polynomially bounded by the size of I. The decision problem Π is in N P , if, for a given instance I of Π and a given certificate c for I, there exists a polynomial time algorithm A with input instance I and certificate c such that A will output a “yes” answer if and only if I ∈ I+. The algorithm A is called a
certificate checking algorithm.
The class N P contains all decision problems that can be checked in poly-nomial time. For a guessed right certificate, the instance can be checked in polynomial time with algorithmA, which is, hence, named non-deterministic
1.2.2 The class N P 7 polynomial time. When a problem is in N P , it is not required that the so-lution of each instance can be obtained by an algorithm in polynomial time. It only requires that there exists a certificate if I is a “yes” instance and the validity of this certificate can be checked in polynomial time.
Take the Steiner tree problem, for example, the obvious way to solve this problem is by exhaustive search, which is to check all possible trees until the optimum tree is obtained. The worst case is always in exponential time. However, this problem is in N P since for a witness tree (certificate) T with a length less than a given i (a “yes” instance), the length of the tree can be calculated in polynomial time.
P ⊆ NP can be proved as follows. If a problem is in P , there exists a polynomial time algorithmA for “solving” this problem. A can be used to give each possible certificate. Thus this problem is in N P . However, it is still an open problem whether P = N P or P 6= NP . It is now commonly believed that P 6= NP due to the existence of another class: NP −complete problem.
What is N P− complete? Before giving its definition, we should explain what is polynomially reducible. A problem Π1 = (I1,I1+) is polynomially
reducible to another problem Π2 = (I2,I2+) if there exists a polynomial
deterministic algorithm which can transform an instance I1 ∈ I1 into an
instance I2 ∈ I2, such that I2 ∈ I2+ if and only if I1 ∈ I1+. If a problem
Π1 is polynomially reducible to a problem Π2, the algorithm for solving Π2
can be used to solve Π1 as well through transforming the instance of Π1
into the instance of Π2.
The definition of the class N P − complete can be described as follows. A problem Π is N P − complete if Π ∈ NP and all other NP problems are polynomially reducible to Π.
Since the polynomial reduction is transitive, an N P problem Π would be in N P − complete if there exists an NP − complete problem which is polynomially reducible to Π. The first known N P − complete problem is the satisfiability problem [22]. The decision version of the Steiner tree problem was one of Karp’s original 21 N P−complete problems [70] through a reduction from another N P− complete problem, called the Vertex Cover problem [84].
Suppose the problem Π is in P . Because all another N P problems are polynomially reducible to Π1, there are also in P . This means that if an
N P−complete problem would have an algorithm in polynomial time, every problem in N P could be solved in polynomial time.
NP-complete problems are the hardest problems in NP. If Π2 can be
polynomially reduced to Π1, and Π2 is in N P − complete, and it is given
that Π1is in N P , then Π1is also in N P−complete. However, if a problem Π
can be polynomially reduced from another N P−complete problem while it can NOT be proven to be in N P , it does not belong to the N P− complete class. However, it is at least as hard as the N P − complete problems. Therefore, this kind of problem is referred to as N P − hard problem. It is clear that N P − complete ⊂ NP − hard. Take the decision version of ESTP as an example
Example 1.2.3. Given a set Y of terminals in the Euclidean plane and a value i, is there a Steiner tree T spanning Y , such that |T | ≤ i?
Where |T | is the length of tree T .
This problem is not known (currently) to be in N P . However, it can be proved to be harder than an N P − complete problem known as exact cover by 3-set [65, 50]. Therefore, ESTP is an N P − hard problem rather than an N P − complete problem.
1.3
Algorithms for the Steiner tree problem
As mentioned above, many algorithms have been proposed for solving the Steiner tree problem such as exact algorithms, approximation algo-rithms, online algoalgo-rithms, heuristic algorithms and evolutionary algorithms. In this section, we will introduce the results of exact algorithm and approx-imation algorithm for the Steiner tree problem.
1.3.1 Exact algorithm
An exact algorithm is used to obtain the exact solution for an N P−hard problem. It is always in exponential time. The problem is therefore thought to be difficult. However, some algorithms with exponential running time have been considered to be acceptable if the size of the problem is not too large. In recent years, many distinct exact algorithms have been presented for different N P − hard problems [104, 105, 15, 59, 80, 45, 87, 8, 39, 67,
1.3.1 Exact algorithm 9 85, 1, 38, 26, 3, 2, 16, 28]. The main result of exact algorithms is to improve the bounds of the complexity, which is very interesting both from the theoretical and the practical point of view.
The well known exact algorithm for the Steiner tree problem is the dynamic programming method presented by Dreyfus and Wagner [30]. The complexity of this algorithm is O(3k· n + 2k· n2+ n3).
1.3.1.1 Parameterized algorithm
As a kind of exact algorithm for a general N P − hard problem, the parameterized algorithm was firstly investigated by Downey and Fellows in 1990 [27]. This algorithm is to find a solution in polynomial time with respect to the input size and in exponential time with respect to a (small) parameter k [27, 36]. It is also called “fixed parameter tractable” (FPT) algorithm [52], and a problem allowing such an algorithm is called FPT problem.
Downey and Fellows [27] show that STP is fixed parameter tractable in the sense that it can be solved in time O(f (k)g(n)), where f is an exponential function, g is a polynomial function , n is the number of vertices (or edges), and k is a smaller value than n (number of the terminals or other parameter). W.l.o.g., n and k are the number of vertices resp. terminals of STP in this thesis. Then, the algorithms for STP is in time f (k) times a polynomial in n. This complexity is always written as O∗(f (k)), since
the algorithm only takes into account the exponential growth of f (k). For example, the complexity O(n9· 2.684k) is written as O∗(2.684k), since the
polynomial time part can be suppressed.
1.3.1.2 The Dreyfus-Wagner algorithm for the Steiner tree problem
As mentioned in Section 2, a well known exact algorithm (parameterized algorithm) for the Steiner tree problem is the Dreyfus-Wagner Algorithm [30] in time O(3k· n + 2k· n2+ n3), i.e., O∗(3k). In this section, we will introduce it briefly.
The Dreyfus-Wagner algorithm is a dynamic programming algorithm. It computes the length of a minimum Steiner subtree for a given terminal
set Y (⊂ V ) from its minimum subtrees.
The crucial observation is as follows. First assume that v is a leaf (a point of degree 1) of the (unknown) optimal tree T (X∪ v), where X ⊆ Y . Then v is joined in T (X∪v) to some node w of T (X∪v) along a shortest path Pvw, such that either w ∈ X or w /∈ X, i.e., w is a Steiner node in T (X ∪v).
In both cases we have T (X∪v) = Pvw∪T (X∪w). In case w is a Steiner node,
it splits T (X∪w), i.e., we can decompose T (X ∪w) = T (X′∪w)∪T (X′′∪w)
for some nontrivial bipartitions X = X′∪ X′′. We may thus write (abusing
the notation slightly in an obvious way)
T (X∪ v) = min Pvw∪ T (X′∪ w) ∪ T (X′′∪ w), (1)
where the minimum is taken over all w∈ V and all nontrivial bipartitions X = X′∪X′′. Note that (1) also holds in case w∈ X if we let X′ = X\{w}
and X′′ = {w}. As well, note that (1) also remains valid without our assumption of v being a leaf in T (X∪ v). Indeed, if v is an internal node of T (X∪ v), we may simply take w = v (and Pvw= ∅).
Then the Dreyfus-Wagner algorithm can be described as follows, Algorithm 1.3.1. (Dreyfus-Wagner algorithm)[30]
Step 1. Compute Pwv for all w, v∈ V .
Step 2. For i = 2 to k− 1,
For any |X| = i and any w ∈ Y , v ∈ V \X
T (X∪ v) = min Pvw∪ T (X′∪ w) ∪ T (X′′∪ w).
The complexity of Step 1, which can be done by Floyd -Warshall algo-rithm [37], is O(n3). Step 2 allows to compute all optimal trees T (X∪ v) for v∈ V and X ⊆ Y of size |X| = i for i = 1, 2, · · · , k.
If w∈ X, assuming trees up to level i − 1 have already been computed, the minimum in (1) for a given X ⊆ Y of size |X| = i can be computed in time O(2i). Hence, the total time of this algorithm is
O( k X i=1 k i · 2i)≤ O(n · 3k).
If w ∈ V \X, compute the minimum in (1) for fixed X ⊆ Y of size |X| = i, where all bipartitions X = X′∪X′′and all w ∈ |V \X| can be considered.
1.3.2 Approximation algorithm 11 So computing the minimum in (1) takes O(n· 2i) and, consequently, the
complexity of the first recursion is O(n·3k). In a similar way, the algorithm
of the second recursion of Step 2 can be done in O(n2· 2k). Then the total complexity of the Dreyfus-Wagner algorithm is O(n· 3k+ n2· 2k+ n3), i.e.,
O∗(3k).
Note that the Dreyfus-Wagner algorithm can only find the minimum length of a Steiner tree. The minimum Steiner tree itself should be ob-tained by keeping track of the sets and vertices which are atob-tained in the computation of T (X∪ {v}).
1.3.2 Approximation algorithm
In practice, there not exist any algorithm which is efficient enough to find the optimal solution for most large-scale Steiner tree problems. How-ever, it is very important to solve these problems, even if the obtained solution is not optimal. The concept of approximation algorithm is thus introduced for this purpose. An approximation algorithm [99] is to obtain a sub-optimal solution in polynomial time. That the solution is sub-optimal means that it is not too far from the optimal solution or it can reach the optimal solution with a high probability.
The approximation algorithm is always measured with a performance guarantee ratio ρ. An algorithm is said to be a ρ-approximation algorithm if it is in polynomial time and satisfies (in case of a minimization problem) A(I) ≤ ρOP T (I) for any instance I of the problem, where OP T (I) is the optimal value of I and A(I) is the value of the solution obtained by the algorithm A. If ρ = 1, the algorithm is an exact algorithm in polynomial time.
There are many approximation algorithms with different ratios for the Steiner tree problem. The original one is a 2-factor approximation algo-rithm [54] following from the fact that the length of a tour is shorter than 2OP T (I). In 1993, Zelikovsky [111] presented an approximation algorithm with an 116 -factor for the Steiner tree problem. One year later, the ratio was improved to 1.75 by Berman and Ramaiyer [9], and further to 1.65 by Karpinski and Zelikovsky [71] in 1997. Hougardy and Pr¨omel [60] further obtained a ratio as 1.60. The best ratio so far was 1 + ln32 ≈ 1.55, which has been presented by Robins and Zelikovsky [92] with the i-restricted al-gorithm. Meanwhile, Clementi and Trevisan [20] proved that there does
not exist any approximation algorithm with a ratio less than 1.0006 unless P = N P .
In the following part, we will shortly introduce the 1.55 approximation algorithm presented by Robins and Zelikovsky [92].
Firstly, some notions will be introduced. For more details we refer to [92]. A full Steiner tree for a terminal set Y is a tree T where each terminal point is a leaf. Every Steiner tree can be decomposed into full Steiner subtrees, which are called full components. A tree is called an i-restricted tree if each full component has at most i terminal points.
For any graph G, M ST (G) is the minimum spanning tree of G and w(G) is the sum costs of all edges in G. Let Loss(T ) denote the set of minimum cost edges of tree T , which connect each Steiner point to a terminal, and w(loss(T )) be the cost of Loss(T ). C(T ) is a full component spanning all the terminals of Y , in which two terminals are connected if there is an edge between the corresponding two connected components in Loss(T ). Assume that GS is a complete graph with vertex set Y . Let T be the edge
set of G, and T (G) be the minimum cost graph in G∪ T which contains G and spans all the terminals of Y . The gain of G with respect to T can be denoted as gainT(G) = w(T )− w(T (G)). If G is a Steiner tree,
gainT(G) = cost(T )− cost(G). The i-restricted algorithm can be described
as follows,
Algorithm 1.3.2. i-Loss-Contracting algorithm (i-LCA)[92] Step 1. For a given graph G = (V, E, w) and an integer i, let T = M ST (GS) and H = GS,
Step 2. Find an i-restricted subtree F with maximum r = gainT(F )
w(loss(F )),
Step 3. If r > 0, H = H ∪ F and T = MST (T ∪ C(F ), go to Step 2; otherwise go to Step 4.
Step 4. Output the minimum Steiner tree M ST (G). This algorithm has a ratio ρ≈ 1 + ln32 < 1.55.
1.4
EST problem and RST problem
Since the ESTP and RSTP have wide applications in practice, some algorithms for these two problems will be shortly introduced in this section as well.
1.4.1 Algorithms for the EST problem 13
1.4.1 Algorithms for the EST problem
As introduced in Section 1.2, the Euclidean Steiner tree problem (ESTP) is to find a shortest Steiner tree spanning all the points in a given set Y . The distances of any two points are in the ℓ2− norm. There are two kinds of points in the shortest tree: terminal points and Steiner points.
Compared to the Steiner tree problem, the set of potential Steiner nodes in an Euclidean Steiner tree (EST) is infinite and all the plane should be a part of a feasible choice for the Steiner nodes. Since ESTP is defined on an Euclidean plane, it needs to satisfy some geometric properties. In the following part, some results are listed for the ESTP, more details can be found in [110, 103].
Lemma 1.4.1. No two edges in an EST can meet at a point with an angle less than 120◦.
It implies that no vertex in an EST can have more than three edges. Since a Steiner point in an EST has at least three edges, another statement can be obtained,
Lemma 1.4.2. The degree of each Steiner point of an EST is exactly 3.
Thus, each Steiner point has three edges and each terminal point has at least one edge. Assume the number of terminal points is i, then the number of edges in the EST is at least (k + 3i)/2. On the other hand, there are k + i− 1 points in the EST, which means that the EST has k + i − 1 edges, and k + i− 1 ≥ (k + 3i)/2, indicating that i ≤ k − 2. The equation holds if and only if the degree of each terminal point is exactly 1. From Lemma 1.4.2, another lemma can be obtained.
Lemma 1.4.3. The number of Steiner points in an EST is less than k− 1.
An EST with k− 2 Steiner points is called a full Euclidian Steiner tree (FEST), i.e., every terminal point is of degree exactly 1. The total number of FEST’s for a given set with k terminals is 2k−4k−2/(k− 1) ∼= 4k
16k√πk [14].
Many exact algorithms have been given for the EST problem. The best one was presented by Winter and Zachariasen [103] in 1997. Their
algorithm has a two-phase scheme: in phase 1, all possible candidates FEST are generated. In phase 2, the EST will be derived from the generated FEST set via dynamic programming or integer programming.
The basic idea of FEST’s generation for a set with k terminals was presented by Melazak [82]. The detailed generation process can be found in [82, 103].
The second phase of the algorithm is to derive the EST from the gen-erated FEST by integer programming, on a hypergraph (Y,F), where Y is the vertex set andF (FEST set) is the hyper edge set. In this hypergraph, let Y (F ) be the terminal points in a FEST of F . It is clear that Fi and
Fj can not appear simultaneously in any EST if they have two or more
common terminal points. Such kind of Fi and Fj are called incompatible.
Let c be a vector with ci = |Fi|, then the following integer programming
problem [103] can be obtained, min cx s.t. P Fi∈F (|Y (Fi)| − 1)xi = k− 1, xPi+ xj ≤ 1, |Y (Fi)∩ Y (Fj)| ≥ 2 Fi∈F max(0,|Y (Fi)∪ P | − 1)xi ≤ |P | − 1, ∀P ⊆ Y, 2 ≤ |P | ≤ k xi ∈ {0, 1}, ∀Fi ∈ F.
The first constraint is to enforce the number of terminals, while the second constraint is to ensure that the incompatible full components can not appear in the same tree. The last constraint enforces that the tree can not be a cycle. Then EST can be obtained by solving the above integer programming with Branch and Cut methods [103].
Next to various exact algorithms, many approximation algorithms were obtained as well to solve ESTP. The most famous one probably is a √2
3 ≈
1.1547-factor algorithm which was presented by Du and Hwang [31], re-spectively, Takahashi and Matsuyama [98]. The best one was presented by Zelikovsky [112] with a factor (1 + ln√2
3) ≈ 1.1438. On the other hand,
Garey, Graham and Johnson [50] proved that there exists no fully polyno-mial time approximation scheme (FPTAS) algorithm3 unless P = N P .
3For each instance I and ǫ > 0, FPTAS-algorithm A finds a solution value A(I) that
satisfies A(I) ≤ (1 + ǫ)OP T (I), and the running time is polynomial with respect to 1 ǫ
1.4.2 Algorithms for the RST problem 15
1.4.2 Algorithms for the RST problem
The rectilinear Steiner tree problem asks for the shortest tree connecting all points in a given set Y with a rectilinear distance. This problem was firstly investigated by Hanan [58] on a grid graph, containing only horizontal and vertical lines. RSTP has attracted many interests due to its wide practical applications such as VLSI design, physical synthesis, floor plan, interconnection planning and placement, estimation of wire load, routing congestion and interconnection delay.
The dynamic programming of Dreyfus-Wagner’s algorithm also works for the RSTP, and its complexity is in time O∗(3k). Hwang observed that there exists an optimal tree where each component is a full component (FC). According to Hwang’s statement, Ganley and Cohoon [48] presented an improved dynamic programming algorithm in time O∗(2.62k), by proving a bound O∗(1.62k) on the number of of full components. F¨oßmeier and Kaufmann [40] showed that the number of candidate full components was between 1.32k and 1.38k, yielding an improvement of the running time in the above dynamic programming to O∗(2.38k). A dynamic programming algorithm can obtain the best theoretical worst-case bounds. However, it is only interesting theoretically because of huge memory requirements. RSTP will be introduced in detail in Chapter 2 because some important results of this thesis are about this problem. Here we only summarize the major algorithms for RSTP.
There were many improvements of the approximation algorithms for RSTP. Hwang presented a 32-approximation algorithm [31]. Another ap-proximation algorithm with a ratio 118 with computing time as O(n3) is presented by Zelikovsky [111]. Berman and Ramaiyer [9] further improved the running time to O(n52) with the same ratio. In 1995, F¨oßmeier and
Kaufmann [41] proposed another algorithm with a ratio 118 + 2m1 + 1
8·32r−2
in time O(r· m · n · log2n) for any parameters m, r > 0. The most recent
approximation algorithm was a 1.267-factor algorithm which was proposed by Karpinski and Zelikovsky [71].
Many heuristic algorithms were also used for solving RSTP such as the iterative embedding algorithm [90], Steinerization algorithms [7], and the iterative 1-Steiner heuristic algorithm [72]. We will not go through them in detail since it is beyond the focus of this thesis.
1.5
Overview and contributions
In this thesis, our work focuses on exact algorithms for the Steiner tree problem and the rectilinear Steiner tree problem. Both STP and RSTP are N P -hard. They have wide applications in practice. Exact algorithms have usually exponential time complexity. Yet, many distinct exact algorithms have been presented for these problems. There exists an optimal RST which can be decomposed into tree stars. The number of tree stars has a great influence on the complexity of the algorithm. The aim of our thesis is to develop the new algorithms for the Steiner tree problem, and the main results are listed as follows,
(1) Two exact algorithms are presented for the Steiner tree problem, (2) Several forbidden cases are provided for the tree star. Some new
upper bounds for the number of tree stars are also obtained. The structure of this thesis is as follows.
In the first chapter, the background of algorithms for the Steiner tree problem is given. We introduce the definition of the Steiner tree problem and the different kinds of Steiner tree problems. For easy understanding of this thesis, the definition of N P -class is also introduced. Moreover, we sum-marize the development of exact algorithms and approximation algorithms for the Steiner tree problem.
In Chapter 2, the properties of the rectilinear Steiner tree, which are useful understanding Chapter 3 and 4, are introduced. The definitions are explained in Section 2.1 and 2.2. The well known exact algorithm, so called two-phase algorithm, is introduced for the rectilinear Steiner tree problem in Section 2.3. This algorithm can be decomposed into two steps: one step is for the generation of full components, and the other step is to combine the optimum tree from the generated full components.
In Chapter 3, we present two novel exact algorithms for the Steiner tree problem. The current best algorithm for the Steiner trees is in time O∗(3k), where k is the number of terminal points. In this chapter, we first present a new algorithm with computing time O∗(2.684k) by showing that the optimum Steiner tree T can be partitioned into T = T1∪ T2∪ T3 and
each Ti is a minimum Steiner tree in a contracted graph Gi with less than
1.5 Overview and contributions 17 the complexity of present algorithms from O∗(2.386k) to O∗(2.335k) with
|Gi| ≤ 0.477k. The ideas and results are based on joint research with B.
Fuchs and W. Kern [42]. Another algorithm is also presented, which is in time O∗((2 + δ)k), for any δ > 0. The results are based on the joint work
with B. Fuchs, W. Kern, D. Molle, S. Richter and P. Rossmanith [43]. In Chapter 4, we mainly discuss the necessary conditions for tree star and candidate components in the rectilinear Steiner tree problem. A new forbidden case is presented for tree stars. The number of tree stars is reduced from O∗(1.386k) to O∗(1.357k). This part work is based on joint work with B. Fuchs and W. Kern [44]. Two necessary conditions for the tree star to be candidate components are also provided. The number of the candidate components is improved correspondingly. Finally, a two-layer tree condition is presented for “monotone tree stars” (the definition can be found in Chapter 4). According to this condition, the possible optimal topological structure of such tree stars is given as well.
Chapter 2
Exact algorithm for the
rectilinear Steiner tree
In this chapter, the well known exact algorithm for the rectilinear Steiner tree problem will be introduced. This algorithm was presented by Salowe and Warme [94], who obtained the optimal tree from so-called “full components” (Hwang trees), cf. [48, 95, 41]. In the first part of this chap-ter, the definitions and properties of full components will be introduced. The exact algorithm will be explained in the second part.
2.1
Introduction
Let us start with some definitions and properties of the rectilinear Steiner tree problem.
2.1.1 Definitions and notions
As mentioned in Chapter 1, the rectilinear Steiner tree problem (RSTP) is N P − hard [70, 52]. RSTP is to ask for a shortest connection T∗ which
spans all points of a terminal set Y using only horizontal and vertical line segments (generically called segments). The points in the terminal set Y are called terminal points, and the number of terminal points is k. The rec-tilinear optimal Steiner tree (RST) may include some points other than the terminal points, which are called Steiner points. That is, the line segments
of RST intersect at terminal points or Steiner points.
There exist three kinds of Steiner points in the RST: corner point (with degree 2), T-point (with degree 3) and cross point (with degree 4). A complete line is a line with a maximal length, which does not have terminals in its interior but may have terminals at its endpoints. The complete lines connecting the corner point are called legs. A corner point must be incident with a horizontal complete line and a vertical complete line. The corner is called complete corner if the remaining two endpoints are terminals. The two collinear segments connecting at a T node are called the head and the remaining segment is called the body.
A full rectilinear Steiner tree (FRST) is a rectilinear Steiner tree in which all the terminal points are leaves. Any Steiner tree can be decom-posed into some full rectilinear Steiner trees by splitting at all non-leaf terminals. The resulting trees are called the full components (FC) of the Steiner tree.
Some full components can be transformed into others by using two kinds of transformations: sliding and flipping. Sliding means that a segment e is replaced by another segment e′, where e and e′ are parallel and intersecting
parallel lines ℓ1 and ℓ2, both perpendicular to e and e′. According to the
position of these segments, each sliding is named as left-slide, right-slide, up-slide and down-slide. An example of a left-slide is given in Fig. 2.1.
ℓ1 ℓ2 ℓ1 ℓ2 e e e′
Figure 2.1: Example of sliding
Flipping means that two segments e and f meet at a corner-point are replaced with another two segments e′ and f′ such that e, e′, f and f′form a rectangle. Similar to sliding, there are four kinds of flipping as well, named as leftdown-flip, leftup-flip, rightdown-flip, and rightdown-flip. A leftup-flip example is shown in Fig. 2.2.
2.1.2 Canonical tree 21 e f e f f′ e′
Figure 2.2: Example of flipping
2.1.2 Canonical tree
In a rectilinear Steiner tree problem, there are several possible minimum trees. For example, there are two different minimum trees for a terminal set with only two points (in the Hanan grid1). For simplicity, only one kind of
minimum tree, called canonical tree [65], will be considered in this thesis. Definition 2.1.1. A tree is said to be canonical if it allows none of the following transformations with the same length:
(1) a left-slide,
(2) an upleft-flip or downleft-flip,
(3) an up-slide or down-slide followed by the transformations in (2). The canonical full components in an RST has several properties. Here we only briefly introduce these results, and the detail proof can be referred to [65].
Lemma 2.1.1. In a canonical FRST, no segment is incident to two corner points.
Lemma 2.1.2. In a canonical FRST, if a segment m has no-terminal endpoints, then no two perpendicular segments are incident with the end-points of m from the same side.
Lemma 2.1.3. In a canonical FRST, neighboring segments incident with a leg of corner must alternate.
1Hanan grid is a graph which is obtained by constructing vertical and horizontal lines
Lemma 2.1.4. In a canonical RST, the body of a T must end at a terminal, and no segments are incident with the body of a T .
Lemma 2.1.5. In a canonical FRST, a head of T is either a leg of a complete corner or a complete line with terminals as endpoints.
2.2
The properties of a full component
In this section, we will firstly present the well-known result (Hwang’s theorem) on the structure of full components (Hwang topology).
2.2.1 Hwang’s theorem
A Hwang tree (or a tree with Hwang topology) is a rectilinear Steiner tree T which can be described as the following two types: the type 1 as in Fig. 2.3 and type 2 as in Fig. 2.4.
r c
t
Figure 2.3: Full component: type 1
c
t r
Figure 2.4: Full component: type 2
There are two special terminals in both types of full components: the root r and the tip t, which are connected to each other through a horizontal line and a vertical line. These two lines are incident at a common endpoint c⊆ R2 (a corner point), which is called the corner of the component. The
2.2.1 Hwang’s theorem 23 line [t, c] is called the short leg. The long leg and the short leg are named by the number of incident segments. The long leg has an arbitrary number of straight line segments which are attached to the long leg from both sides alternatingly. Each segment connects exactly one terminal to the chain. In addition, there may be one exceptional terminal connected to the short leg (cf. Fig. 2.4). The Steiner chain is usually drawn in the direction of the positive x-axis as in Fig. 2.3 and Fig. 2.4. The terminals y6= r, t that are attached to the chain from above and below are referred to as upper resp. lower terminals. If the total number of terminals in the Hwang tree is p, then the first type has p− 2 alternating segments incident with the long leg and the second one has p− 3 alternating segments incident with the long leg. The optimal additional terminal attached to the short leg will not be of much interest for our purposes.
Theorem 2.2.1. (Hwang theorem)[62, 65] There always exists an optimal RST whose full components are Hwang trees.
Proof. For simply describing the proof, w.o.l.g., assume that the termi-nal points have different x coordinates and y coordinates, i.e., not any two points share the same x coordinate or y coordinate. The leftmost terminal a in an RST, must be incident with a horizontal complete line or a vertical complete line.
In case it is incident with a horizontal line ℓ1, the other endpoint b of
ℓ1 must be either a T note or a corner point (According to the assumption,
it is not a terminal).
If b is a T note, the horizontal line ℓ1 is the body of the T note. From
Lemma 2.1.4, there are no other segments connecting the horizontal line ℓ1.
Then one of the endpoints (assume c) of head ℓ2 must be a corner point.
(b is not a T note according to the Lemma 2.1.4 and assumption. If b is a terminal, we can only get a full component with three terminal points, and this case is not interesting.) The other horizontal line ℓ3 connecting
the corner point c must be on the other side of ℓ2, otherwise it will
con-trary to Lemma 2.1.2. From Lemma 2.1.1 and Lemma 2.1.2, ℓ3 will end
with a terminal point d, and all the neighboring segments incident to ℓ3
alternatingly. Each segment (for example ℓ4) combines a T node with ℓ3.
According to Lemma 2.1.4, there are no other segments connecting to ℓ4,
i.e., ℓ4 is only incident with one terminal point. Then the whole topology
c ℓ4 ℓ3 d ℓ2 ℓ1 a b
Figure 2.5: Proof of Hwang’s theorem: case 1
If b is a corner point, it must be a complete corner that is incident with ℓ1 and ℓ2 according to Lemma 2.1.1, where ℓ2 is a vertical complete line.
There is only one possible terminal point d connecting the interior of leg ℓ2 according to Lemma 2.1.2 and 2.1.4. Then all the other segments (for
example ℓ4) are incident with the complete line ℓ1 alternatingly according
to Lemma 2.1.3. There are no other segments connected to ℓ4 according to
Lemma 2.1.4. Thus we get the topology structure of a Hwang tree of type 1 or type 2 as in Fig. 2.6. a ℓ4 ℓ1 d ℓ2 b
Figure 2.6: Proof of Hwang’s theorem: case 2
In case a is incident with vertical line ℓ1, similar to the above analysis,
we can get a Hwang tree of type 1 with ℓ1 as a short leg.
The theorem can be proved by considering the remaining terminals in a similar way.
A Hwang set is a set X (⊆ Y ) which contains at least one Hwang tree. There are several properties for Hwang tree (full component).
2.2.2 Empty region conditions 25
2.2.2 Empty region conditions
In this section, we will consider an optimal Steiner tree T∗ for an (suit-ably perturbed) instance Y ∈ R2. According to Hwang’s theorem [62], we may assume that each component of T∗is a Hwang tree with root r∈ Y , tip
yl+1 ∈ Y and terminals, say, y0, y0′,· · · , yl−1, yl−1′ , yl, y′l, yl+1 alternatively
attached to the chain as in Fig. 2.7. (Possibly an additional terminal yl+2
is joined to the short leg. In what follows, however, we restrict our atten-tion to y0, y′0,· · · , yl, y′l, yl+1, so that we do not have to distinguish between
different types of Hwang trees.)
yl+1 yl y′l s′ l s′l sl+1 r y0 s0 s′0 y′ 0 y1 s1 yl+2
Figure 2.7: Labelling the nodes in a component.
In a Hwang tree, y0,· · · , yl, yl+1are called as upper terminal points and
y0′,· · · , y′
l−1, yl′ as lower terminal points. We denote by s0, s0′,· · · , sl, s′l, sl+1
the corresponding Steiner points, which are the projections of the corre-sponding Steiner points onto the chain.
Let S ⊆ R2 denote the set of Steiner nodes of T∗. Clearly, being an
optimal Steiner tree, T∗ must be an Minimum spanning tree for the set
Y ∪ S. For short, we denote MSY (Y ∪ S) as the minimum spanning tree for the set Y ∪ S. This simple necessary condition on T∗ in turn implies certain properties of the components of T∗. We will present some of these
properties (empty regions conditions, cf., e.g., [109]) below, including the simple proofs for convenience.
The diamond is a square with diagonal as the line from terminal point to the corresponding Steiner point or the segment that connect two neighbor-ing Steiner points. We observe that T∗ = M ST (Y ∪ S) implies that every component of T∗, as in Fig.2.8, must have empty diamond in the sense
that the interior of each diamond may not contain any terminal y∈ Y (cf. Fig.2.8).
yl+1 y′l r y0 y0′ y1
Figure 2.8: Diamonds must be empty. Lemma 2.2.2. [109] Diamonds must be empty.
Proof. Assume to the contrary, that for some component, say, a dia-mond D = D[yi, si] with diagonal [yi, si], contains a terminal y∈ Y in its
interior. Let y′ denote the projection of y onto [yi, si]. Adding, e := [y, y′]
to T∗ closes a circuit that contains either f := [y′, yi] or f := [y′, si]. In
both cases, T∗\f∪ e would be a shorter tree, a contradiction.
Emptiness of diamonds of the form D = D[s′i−1, si] or D = D[si, s′i]
follows in the same way.
Next we consider rectangles R = R[yi, yi′] and R = R[yi′, yi+1], defined
by their diagonal endpoints (yi, y′i) resp. (y′i, yi+1) (see Fig. 2.9). Again,
rectangles must be the empty regions in the above sense.
yi yi−1 y′ i−1 y0 y′0 y′ 1 y1 r
Figure 2.9: Rectangles must be empty.
2.2.2 Empty region conditions 27 Proof. Assume to the contrary, that for some component, say, a com-ponent of T∗ contains a nonempty rectangle, R = R[yi, s′i]. So R contains
some y ∈ Y in its interior. The rectangle R has sides e = [yi, si] and
f = [si, s′i]. Let ye and yf denote the projections of y onto e resp. f as in
Fig. 2.10. si y yf ye s′ i yi
Figure 2.10: A nonempty rectangle.
We may assume, w.l.o.g., that, say, y is closer to e than to f . Removing the segment [ye, si] from T∗splits T∗into two subtrees T1 and T2containing
yeresp. yf. If y∈ T2, then T1∪T2∪[y, ye] is shorter than T∗, a contradiction.
Hence y ∈ T1 must hold. But then T1\[yi, ye]∪ T2∪ [y, yf] is shorter than
T∗.
The empty rectangle condition is rather restrictive: the number of Hwang trees satisfying the empty rectangle condition is O∗(1.42k), cf. [40] (as compared to O∗(1.62k) without this restriction, cf. [48]). This can be
seen as follows. Any two consecutive terminals yi and yi+2 “above” the
chain uniquely determine the terminal yi+1 in between them on the
oppo-site side of the chain. Namely the one that is closest to the chain. This leads to a bound O∗(2k2) = O∗(1.42k) for the number of such Hwang trees
in a straightforward way.
Another empty region condition (cf. [95], [94], [109]) is as the following. Let Bd(x) and Bd(C) denote the l1-balls of radius d > 0 around x ∈ R2
resp. the Steiner chain C. Let di > 0 (d′i > 0) denote the distance of yi
(yi′) to C. For i = 1,· · · , l, l + 1, we let
∆(yi) := Bdi(yi)∩ Bdi(C)
denote the triangle defined by yi, see Fig. 2.11, ∆(y′i) can be defined in the
0 1 0 1 00 11 0 0 1 1 00 00 11 11 yi y′j y′ l sl+1 r y0
Figure 2.11: Triangles must be empty.
Lemma 2.2.4. ([109]) The triangle can not contain any terminal points of the same Hwang tree.
Proof. If that is impossible, assume terminal point yi is in the triangle
of yi+1 as in Fig. 2.12. A shorter tree can be obtained by deleting segment
yisi and adding the segment yizi+1.
yi yi+1 si si+1 zi+1 yi yi+1 si si+1 y2 y2
Figure 2.12: Weak triangle condition.
The Hwang tree satisfying the above conditions is call a tree star by F¨oßmeier and Kaufmann([40]). F¨oßmeier and Kaufmann further restricted the set of candidates for T∗-components by showing that each T∗-component
can be assumed to be a tree star. They showed that, in the worst case, the number of tree stars was in between 1.32k and 1.38k.
2.2.3 Upper bounds for the short leg 29
2.2.3 Upper bounds for the short leg
Next to the empty region conditions, there are also some other condi-tions for the full component, cf. [109]. In this section, several upper bound conditions of the short leg will be introduced.
Let dp be the length of the short leg of type (1) (or the length from the
corner point to the Steiner point on the short leg of type (2)). There are several upper bounds on dp.
Lemma 2.2.5. [109] For each lower terminal point yi in a tree star,
|y′ is′i| ≥ dp. sp zp yp yp yi+1 si+1 yi+1 zi+1 r r yi y′ i si s′ i yi si s′ i y′ i
Figure 2.13: Proof of Lemma 2.2.5.
Proof. For simplicity, in what follows, only the full component with 5 terminal points (one root, two upper terminal points and two lower terminal points) of type (1), as in Fig. 2.13, will be considered. In case of the full component with more terminal points, the lemma can be proved by “sliding” the long leg.
Assume there exists a y′
i such that d′i < dp as in Fig. 2.13. Then two
smaller full components intersecting at y′ican be obtained. The total length of these two smaller full components is not greater than the length of the original one. Thus the original tree star can be split into two smaller full components.
Lemma 2.2.6. [109] If y′
i is a lower terminal point, yi+1 is the next
upper terminal point, and s′i resp. si+1 is the projection of yi′ resp. yi+1on
the chain, then |s′
isi+1| ≥ dp.
Proof. If not, assume |s′
isi+1| < dp, and slide s′isp to zi′yp, where z′i is
the projection of yp on s′iyi′. After deleting the segment spyp and adding
is obtained from the original one by replacing spyp with s′isi+1. According
to the assumption |s′
isi+1| < dp, the new tree is shorter than the original
one, which is impossible. Thus the lemma holds.
si si yi yi sp yp yp r s′ i y′ i yi+1 si+1 r y′ i s′ i yi+1 si+1 z′ i
Figure 2.14: Proof of Lemma 2.2.6.
Lemma 2.2.7. [109] For each upper terminal yi,|sisi+1|−min(di, di+1)≥
dp.
Proof. If not, assume |sisi+1| − min(di, di+1) < dp, w.o.l.g., suppose
di < di+1, then|sisi+1| − di− dp < 0. Delete the segments s′isp, yi+1si+1
and spyp, add the edge yizi+1 and zi′yp, then a new tree is obtained. For
obtained new tree, we have tree,
|yizi+1| + |yi′yp| − (|s′isp| + dp+ di+1)
= |sisi+1| + |s′isp| − (|s′isp| + dp+ di+1)
= |sisi+1| − (dp+ di+1) < 0.
This formula implies that the obtained tree is shorter than the original one, which is impossible. si si yi yi yp r r si+1 yi+1 zp z′ i y′ i yi+1 yp s′ i y′ i s′ i
2.3 An exact algorithm 31
2.3
An exact algorithm
An exact algorithm for RSTP was presented by Salowe and Warme [94], who used the two-phase scheme algorithm for ESTP to RSTP. The first step of this algorithm is to generate the full components set F, and the second one is to concatenate the optimal tree from the generated full components.
2.3.1 Generation of full components
The algorithm for the generation of (all) full components starts at a given root r and directions for the chain (there are four possible directions from each point). The full component grows along the chain with the root r and in the direction α. When a terminal point is added to the long leg, some long leg tests, such as empty region conditions, will be used to check whether the sequence is a part of FRST. If it is not, this terminal point will be skipped. We proceed to the next terminal node in the direction of the chain.
If yi is accepted as a upper terminal, some upper bound conditions will
be used to check whether yi can be the tip or not. If yes, a full component
is obtained. If not, yi can be added as an upper or lower terminal and we
proceed. For more details, we may refer to the papers [103] and [109]. The process for obtaining a full component with p terminal points will take O(p2) time. Zachariasen stated [109] that the necessary conditions were also sufficient conditions for the optimal full components up to five terminals. In practice, more than 90% of the full components have five or fewer terminals ([109]).
Although the total number of full components can not be proved to be polynomially bounded, there are also several interesting bounds. F¨oßmeier and Kaufmann proved that the upper bound of full components with p terminals was O(kp) ([40]). Salowe and Warme gave an O(k· logk) bound of full components with 3 terminals ([95]). Zachariasen improved the bound for full components with p terminals to O(k·(loglogk)p−2), which was almost
2.3.2 Construction of the optimal tree
Let F be a full component set, which contains all the possible candi-date full components. There exist three methods for combining the optimal tree from the generatedF, such as backtrack search, dynamic programming, and integer programming ([101]). Backtrack search has a very steep run-ning time growth and only can be used for moderate size problems. Dy-namic programming has the better worst case running time theoretically. However, it is very slow in practice due to the huge memory requirement. Integer programming is an efficient algorithm for most problems, which is similar to the algorithm introduced in the first chapter for ESTP.
2.3.2.1 Backtrack search
Backtrack search is a simple algorithm and efficient in practice, we will briefly introduce it as follows.
Two full components Fi and Fj are called disjoint if they have no
com-mon vertex. If Fiand Fj share a common vertex and can appear in the same
RST, they are said to be compatible, cf. [107]. Otherwise, they are called incompatible. For two intersecting full components Fi and Fj in RSTP, the
following two cases are always consider to be incompatible:
(1) There are more than one common vertex in both Fi and Fj (or their
corner flips).
(2) A cycle can be obtained by adding an edge to the embedding of Fi
and Fj, and the added edge is not the longest line in the cycle.
The algorithm starts with a full component, and generates the optimal tree by adding all possible compatible full components to the existing tree. The process will continue until the optimal tree is obtained. The running time of this algorithm in the worst case is 2|F|, implying that it is not
suitable for solving a large scale problem. 2.3.2.2 Dynamic programming
Dynamic programming provides the best worst case bounds for the RST problem. It is desired from the fact that every RST is either an FRST or
2.3.2 Construction of the optimal tree 33 can be split into an SMT and an FST joined at an interior terminal. Let H(X) be a Hwang tree for X. By slightly misusing the notation, we also interpret T∗(X) as the length of an optimum Steiner tree. In case X ⊆ Y is not a Hwang set, we define H(X) =∞. It is clear that Hwang trees are full rectilinear Steiner trees.
Given a full set X ∈ F(Y ), one can (due to the particularly simple structure of full components) easily compute (in linear time) a correspond-ing candidate full tree Tf ull(X). Adopting the notation
X = X1 1 X2 ⇔ X = X1∪ X2,|X1∩ X2| = 1
from [48], we may thus compute minimum Steiner trees for all X ⊆ Y by means of the recursion
T (X) = min Tf ull(X1) ∪ T (X2), (1)
where the minimum is taken over all decompositions X = X1 1 X2 with
X1 ∈ F(Y ) and |X1| ≥ 2. Note that when X ⊆ Y itself is a full set, then
X∈ F(Y ), so we may take X1= X and let X2 be a singleton.
The running time of this procedure depends on the number of candidate full sets. Indeed, letting
F(Y ) := {X1∈ F(Y ) | X1 ⊆ X},
we find that computing the minimum in (1) takes time O∗(|F(Y )|) – assum-ing recursively that T (X2) is known already for all subsets X2 ∈ Y of size
|X2| < |X|. (Recall that, as mentioned above, Tf ull(X1) can be computed
for given X1 ∈ F(Y ) in time O(|X1|) = O(k) = O∗(1).)
Denote the number of full components with i terminals being f (i), then the complexity of algorithm will be
k X i=3 k i · i · f(i).
If the number of full component is αi with i terminal points, then the
complexity is k X i=3 k i · i · αi < k2(1 + α)k.
An algorithm in time O∗(2.38k) was yielded by F¨oßmeier and Kaufmann
Chapter 3
Exact algorithms for the
Steiner tree problem
In this chapter, two novel exact algorithms are presented to solve the Steiner tree problem. Compared with the well-known Dreyfus and Wag-ner’s algorithm, these two algorithms have improved the running time from O∗(3k) to O∗(2.684k) and O∗((2 + δ)k), where δ > 0, respectively.
3.1
The algorithm in time
O
∗(2.684
k)
Firstly, we will present the algorithm in O∗(2.684k). This algorithm is included in our paper [42].
3.1.1 Introduction
As mentioned in Chapter 2, the Steiner tree problem (STP) is an NP-hard problem [70]: Given a graph G = (V, E) of order n = |V |, edge costs c ∈ RE
+ and a set Y ⊆ V of k = |Y | terminal nodes, STP is to
find a minimum cost subtree T = T (Y ) of G connecting (spanning) all terminal nodes. The well-known exact algorithm is developed by Dreyfus and Wagner (cf. [30] and Chapter 1), solving minimum Steiner tree problem in general graphs in time O∗(3k) (More details can be referred to Chapter 1).
which is defined on a grid graph. In this case, RSTP remains to be NP-complete [51], so-called exact algorithm have been designed [40] solving the problem in
O∗(2.386k) = O(poly(n)· 2.386k).
In this section, we will present a modification of the Dreyfus-Wagner algorithm for the Steiner tree problem, yielding an improved complexity of order O∗(2.684k). For the rectilinear case, we slightly modify the F¨oßmeier and Kaufmann’s algorithm [40] and obtain an algorithm in time O∗(2.335k).
3.1.2 Improvement of Dreyfus-Wagner algorithm
Before giving our algorithm, we will firstly introduce the Stirling’s for-mula [35, 91],
Lemma 3.1.1. (Stirling’s lemma) βk αk = O(((1 α) α( 1 β− α)β−αβ β)k).
Proof. When αk and βk are integer, βk αk = (βk)! (αk)!((β− α)k)!
where αk! is the the factorial of αk, which is the product of all positive integers less than or equal to αk.
According to Stirling’s formula (cf. [35, 91]), i.e. √ 2nπ(n e) n≤ n! ≤√2nπ(n e) n 12n 12n− 1, we have 12αk−1 12αk 12(βk−αk)−112(βk−αk) h (βα)α( β β−α)β−α ik ≤ αk!((β−α)k)!βk! ≤ 12αk−112αk h(βα)α( β β−α)β−α ik . This formula yields