
A Generic Approach to Solving the Steiner Tree Problem and Variants Masterarbeit bei Prof. Dr. Thorsten Koch vorgelegt von Daniel Markus Rehfeldt1 Fachbereich Mathematik der Technischen Universit¨atBerlin Berlin, den 9. November 2015 1Konrad-Zuse-Zentrum f¨urInformationstechnik Berlin, [email protected] 1 Eidesstattliche Erkl¨arung(German Affidavit) Hiermit erkl¨areich, dass ich die vorliegende Arbeit selbstst¨andigund eigenh¨andig sowie ohne unerlaubte fremde Hilfe und ausschließlich unter Verwendung der aufgef¨uhrtenQuellen und Hilfsmittel angefertigt habe. Die selbst¨andigeund eigenh¨andigeAnfertigung versichert an Eides statt Berlin, den 9. November 2015 (Daniel Rehfeldt) Contents 2 Contents Eidesstattliche Erkl¨arung(German Affidavit) 1 Acknowledgments 5 1 Introduction 7 1.1 Preliminaries and Definitions . .9 1.2 Background and Complexity . 11 1.2.1 A Brief History . 11 1.2.2 Complexity . 11 2 The Steiner Tree Problem in Graphs 13 2.1 Formulating the Problem: Integer Programming . 14 2.1.1 Cut Formulations . 14 2.1.2 Flow Formulations . 15 2.1.3 Flow Balance Inequalities . 17 2.2 Simplifying the Problem: Reduction Techniques . 18 2.2.1 Definitions . 18 2.2.2 Basic Reductions . 19 2.2.3 Alternative Based Reductions . 20 2.2.4 Bound Based Reductions . 26 2.2.5 Implementation . 29 2.3 Finding a Solution: Primal Heuristics . 32 2.3.1 Constructive Heuristics . 32 2.3.2 Local Search Heuristics . 34 2.3.3 Recombination Heuristics . 35 2.4 Solving to Optimality: Branch and Cut . 37 2.4.1 Separation Methods . 37 2.4.2 Branching . 38 2.5 Implementation . 39 2.5.1 SCIP-Jack: A General Purpose Solver for Steiner Tree Problems . 39 2.5.2 Parallel Computing . 41 2.6 Computational Results and Discussion . 43 2.6.1 Impact of Reduction Techniques . 45 2.6.2 Impact of Primal Heuristics . 48 2.6.3 Branching . 50 3 Variants of the Steiner Tree Problem 53 3.1 The Steiner Arborescence Problem . 54 3.1.1 Reductions . 55 3.1.2 Heuristics . 65 3.1.3 Implementation and Computational Results . 65 Contents 3 3.2 The Node Weighted Steiner Problem . 67 3.2.1 Transformation . 67 3.2.2 Implementation and Computational Results . 68 3.3 The Rectilinear Steiner Minimum Tree Problem . 70 3.3.1 Transformation . 70 3.3.2 Implementation and Computational Results . 71 3.4 The Prize Collecting Steiner Tree Problem . 73 3.4.1 Transformation . 73 3.4.2 Reductions . 78 3.4.3 Heuristics . 99 3.4.4 Implementation and Computational Results . 101 3.5 The Maximum Weight Connected Subgraph Problem . 108 3.5.1 Transformation . 108 3.5.2 Reductions . 110 3.5.3 Implementation and Computational Results . 122 3.6 The Degree Constrained Steiner Tree Problem . 127 3.6.1 Primal Heuristics . 127 3.6.2 Implementation and Computational Results . 127 3.7 The Group Steiner Tree Problem . 129 3.7.1 Transformation . 129 3.7.2 Implementation and Computational Results . 129 3.8 The Hop Constrained Directed Steiner Tree Problem . 131 3.8.1 Reductions . 131 3.8.2 Primal Heuristics . 135 3.8.3 Implementation and Computational Results . 135 4 Final Computational Results and Comparisons 137 4.1 The Steiner Tree Problem in Graphs . 138 4.1.1 Parallel Computing . 139 4.2 Variants of the Steiner Tree Problem . 141 4.2.1 The Prize Collecting Steiner Tree Problem . 141 4.2.2 The Maximum Weight Connected Subgraph Problem 143 4.2.3 The Degree Constrained Steiner Tree Problem . 144 4.2.4 The Hop Constrained Directed Steiner Tree Problem . 144 4.3 Using SoPlex .......................... 146 5 Conclusions and Outlook 149 A Zusammenfassung (German Summary) 160 B Notation and Abbreviations 162 B.1 General Mathematical Notation . 162 B.2 Steiner Problem Variants . 162 Contents 4 C Detailed Experimental Results 163 C.1 The Steiner Tree Problem in Graphs . 163 C.2 The Steiner Arborescence Problem . 172 C.3 The Rectilinear Steiner Minimum Tree Problem . 173 C.4 The Prize Collecting Tree Problem . 175 C.5 The Maximum Weight Connected Subgraph Problem . 179 C.6 The Degree Constrained Steiner Tree Problem . 181 C.7 The Group Steiner Tree Problem . 182 C.8 The Hop Constrained Directed Steiner Tree Problem . 183 Contents 5 Acknowledgments I would like to thank my parents for their support and encouragement, not only during my academic studies, but furthermore during my entire life. Had it not been for the { for want of a better word { relentless efforts of my mother throughout my childhood and adolescence to focus my attention on studying, this thesis would not have found its way into existence. I would like to thank Gerald Gamrath for his support and patience in the face of numerous questions and requests, throughout my time at Zuse Institute Berlin. Not even safe from me on parental leave, he would support and encourage me with this thesis until the last minute before submission. I would like to thank Thorsten Koch for coming up with the idea of developing a general- purpose Steiner tree solver and his support throughout the realization. I would like to thank Stephen Maher for his support and suggestions for this thesis. I would like to thank Yuji Shinano for his feedback and help. I would like to thank Gerald, Stephen and Yuji for the great time in Boston, where we enjoyed the endless opportunities of American shopping and watched none other than Kobe Bryant himself play in the TD Garden; and where a previous version of the solver described in this thesis competed in the 11th DIMACS Challenge. Last but certainly not least, I would like to thank Cees Duin who relieved me from my struggles to get hold of an electronic version of his dissertation, which had indeed been written in the old pre-PDF days, by sending my a hard copy from the Netherlands. Contents 6 7 1 Introduction The Steiner tree problem in graphs (SPG) is one of the classical NP- hard problems [Kar72] and has been extensively studied both theoretically and practically. Given an undirected connected graph G = (V; E), weights c : E ! Q+ and a set T ⊂ V of terminals, the problem is to find a minimum- weight tree S ⊂ G that spans T . While the SPG is commonly cited to entail a variety of practical applications [Dui93, HRW92, Pol04, PS02, VD04], problems representable by the classic SPG are rarely encountered in practice. This assertion is evidenced by the fact that from the more than 1; 000 SPG instances collected in the standard benchmark library SteinLib [KMV01] less than a fifth can claim practical origins and even of those most are more suitably formulated as a rectilinear Steiner minimum tree problem. Still, real-world applications can be found in problems such as for instance the design of fiber-optic networks [LLL+14]. However, when the focus is widened to also consider variations of the SPG, a different picture emerges: Numerous applications can be found that include the SPG as a subproblem or that are formulated as a modified version of it (as will be evinced in the course of this thesis). Despite the strong relationship between the different Steiner tree problem variants, solution approaches employed so far have been prevalently problem specific. In contrast, the aim of this thesis is to devise and implement a general purpose approach, resulting in a solver that is able to solve both the clas- sical Steiner tree problem and many of its variants without modification. Pursuing this approach, a further objective of this thesis is to solve a wide range of benchmark instances, by means of both known and newly developed methods. The origins of our thesis can be traced to the announcement of the 11th DIMACS Challenge, dedicated to practical solving methods for the Steiner tree problem and variants. A base was provided by the model and code of the SPG solver Jack-III described in [KM98]. However, being more than 15 years old, Jack-III lacked many modern developments regarding SPG solution methods and did not provide a general MIP framework for easily incorporating additional variants of the Steiner problem. Our resolution to overcome these limitations of Jack-III was to combine the model of [KM98] with the state-of-the-art MIP-framework SCIP [Ach09]. Furthermore, we have developed several Steiner variant specific methods concerning preprocessing and heuristics. These developments have been mo- tivated by the endeavour to render our approach competitive with problem specific state-of-the art solvers. By virtue of the plugin-based structure of SCIP, these adaptations can be easily implemented without modifying the underlying generic solving methods. The major contributions of this thesis to the existing literature are as follows: 8 (a) A Steiner tree problem (b) A possible solution Figure 1: Illustration of a Steiner tree problem graphs (left) and a possible solution (right). Terminals are drawn as squares, non-terminal nodes as circles. • The transformation of 11 Steiner problem variants into a general form, using the versatility of MIP models. • The development of problem specific solving methods, most saliently preprocessing techniques, but also primal heuristics. • The integration of the new methods and established approaches de- scribed in the literature, culminating in a powerful exact Steiner tree solver that exceeds existing problem specific solvers on several bench- mark classes. As an additional central feature, the Steiner problem solving package asso- ciated with this thesis is freely available for academic research, setting it apart from all state-of-the-art Steiner tree solvers we are aware of, with the exception of the geometric Steiner problem package GeoSteiner [WWZ00]. Finally, it should not go unnoticed that part of the results presented in this thesis have already been published in [GKM+15] in the course of the 11th DIMACS Challenge.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages185 Page
-
File Size-