a faster algorithm for the
play

A Faster Algorithm for the Steiner Tree Problem Daniel M olle, - PDF document

A Faster Algorithm for the Steiner Tree Problem Daniel M olle, Stefan Richter, and Peter Rossmanith Department of Computer Science, RWTH Aachen University, Fed. Rep. of Germany { moelle, richter, rossmani } @cs.rwth-aachen.de Abstract. For


  1. A Faster Algorithm for the Steiner Tree Problem ⋆ Daniel M¨ olle, Stefan Richter, and Peter Rossmanith Department of Computer Science, RWTH Aachen University, Fed. Rep. of Germany { moelle, richter, rossmani } @cs.rwth-aachen.de Abstract. For decades, the algorithm providing the smallest proven worst-case running time (with respect to the number of terminals) for the Steiner tree problem has been the one by Dreyfus and Wagner. In this paper, a new algorithm is developed, which improves the running time from O (3 k n +2 k n 2 + n 3 ) to (2+ δ ) k · poly ( n ) for arbitrary but fixed δ > 0. Like its predecessor, this algorithm follows the dynamic programming paradigm. Whereas in effect the Dreyfus–Wagner recursion splits the optimal Steiner tree in two parts of arbitrary sizes, our approach looks for a set of nodes that separate the tree into parts containing only few terminals. It is then possible to solve an instance of the Steiner tree problem more efficiently by combining partial solutions. 1 Introduction As of today, NP-hard problems cannot be solved in polynomial time. Neverthe- less, we have to deal with many of them in everyday applications. Earlier work has resulted in numerous ways to address this dilemma, among them approxi- mation, randomized algorithms, parameterized complexity, heuristics and many more. Recently, there has been renewed vigor in the field of exact algorithms, and the exponential runtime bounds for many problems have been improved. Some examples for such improvement have been achieved with new algorithms for 3-Satisfiability [5], Independent Set [1, 8], Dominating Set [4], and Max-Cut [6, 9, 10]. The Steiner tree problem on networks is to find a subgraph of minimum total edge weight that connects all nodes in a given node subset. Since we assume positive weights for all edges, this subgraph must be a tree. The respective deci- sion problem, in which we ask for the existence of such a subgraph whose weight does not exceed a given limit, is known to be NP-complete. The optimization problem is APX-complete, even if the edge weights are restricted to { 1 , 2 } [2]. On the positive side, it is polynomial-time approximable within 1 + (ln 3) / 2 ≈ 1 . 55, or within 1 . 28 in the aforementioned restricted variation [7]. The best exact algorithm for the Steiner tree problem known today is due to Dreyfus and Wagner [3]. Given a graph with n nodes and m edges, a set of ⋆ Supported by the DFG under grant RO 927/6-1 (TAPI). B. Durand and W. Thomas (Eds.): STACS 2006, LNCS 3884, pp. 561–570, 2006. � Springer-Verlag Berlin Heidelberg 2006 c

  2. 562 D. M¨ olle, S. Richter, and P. Rossmanith The Netherlands D¨ D¨ usseldorf usseldorf Maastricht Maastricht Heerlen Heerlen Li` Li` ege ege Cologne Cologne Aachen Aachen Verviers Verviers Germany Belgium Fig. 1. A geographic example for Steiner trees k terminals, and the lengths of the edges, it computes a minimum Steiner tree in time O (3 k n + 2 k n 2 + n 2 log n + nm ) using dynamic programming. In this paper, we present an algorithm achieving the same in time (2 + δ ) k · poly ( n ) for arbitrarily small but fixed δ > 0. For an intuitive introduction to some important concepts we use, look at the cities in Figure 1. The need for a high-speed road network linking these cities arises, and some of the existing roads must be enlarged. When we assign a prospective renovation cost to each existing road, the cheapest solutions to the problem are exactly the optimal Steiner trees in this network for the terminal set of cities. One approach consists of solving the problem independently in Belgium, the Netherlands, and Germany. This method works in our example, because there is an optimal Steiner tree for the entire network—drawn fat in Figure 1— in which you cross borders only in Aachen. That is, if every globally optimal solution contained the highway from Lige to Maastricht, regionally optimal trees could not be combined to form such a solution. Abstracting from geography, in Section 2 we will formally define regions to be maximal subtrees of a Steiner tree where every leaf is a terminal and vice versa. In our example, the Belgium towns (including Aachen) would form one region. The nationally constrained parts of the tree in Figure 1 are connected unions of regions, and as such will formally be called confederations . At the end of Section 2, we will prove that the heart of our algorithm can construct optimal Steiner trees for confederations by combining regional solutions. Note that this entails optimal Steiner trees for the entire network. As our method relies on exhaustive search, it is only fast when all regions contain few terminals. Fortunately, there is a way to accomplish this. If, for an illustrative example, we find the Belgium region too large, promoting the central node in it to the rank of terminal will cut the region in three smaller pieces. Section 3 will formalize the process of incorporating additional terminals, which allows us to derive the aforementioned runtime bounds.

  3. A Faster Algorithm for the Steiner Tree Problem 563 2 Networks, Regions, and Confederations We adhere to the notation commonly used for the Steiner tree problem. For a graph G , let V [ G ] and E [ G ] denote the set of nodes and the set of edges in G , respectively. The edge weights of an input graph G are assumed to be given by a function ℓ : E [ G ] → N , where N = { 1 , 2 , 3 , . . . } . Formally, an instance of the Steiner tree problem consists of a network ( G, ℓ ) and a terminal set Y ⊆ V [ G ]. We define the union operation on graphs G 1 , G 2 as follows: G 1 ∪ G 2 := ( V [ G 1 ] ∪ V [ G 2 ] , E [ G 1 ] ∪ E [ G 2 ]). For any subgraph G ′ of G from a network ( G, ℓ ), let ℓ ( G ′ ) := � e ∈ E [ G ′ ] ℓ ( e ). In order to explain our algorithm, let us imagine that we know an optimal Steiner tree T . We will examine some properties of T that enable us to find T — or an equivalent tree—with relative efficiency. As outlined before, T consists of regions (also called components or full Steiner trees in the literature), which we will define now as maximal subtrees that do not contain terminals as inner nodes. Definition 1. Let ( G, ℓ ) be a network, Z ⊆ V [ G ] a set of terminals, and T be an optimal Steiner tree for Z . A ( T, Z ) -region is an inclusion-maximal subtree R of T in which every terminal is a leaf. The set of all ( T, Z )-regions in T is denoted by R ( T, Z ). See Figure 2 for an illustration of this concept. Regions are the smallest building blocks in our approach. From the tree structure of T , it is easy to see that neighboring regions overlap in exactly one node, which has to be a terminal. They can then be united to form confederations . Definition 2. A connected union T ′ of ( T, Z )-regions is called a ( T, Z ) -con- federation . Accordingly, the corresponding terminal set Z ′ = Z ∩ V [ T ′ ] is called ( T, Z ) -confederate . As already indicated in the introduction, ( T, Z )-regions are optimal for their terminal sets, provided T is optimal for Z . The following lemma formalizes a generalization of this fact for confederations. Lemma 1. Let ( G, ℓ ) be a network and T be an optimal Steiner tree for Z ⊆ V [ G ] . Any ( T, Z ) -confederation T ′ constitutes an optimal Steiner tree for its terminal set. Fig. 2. A Steiner tree T with emphasized terminals Z and its ( T, Z )-regions

Recommend


More recommend