Abstract
The Steiner tree problem in graphs is a classical problem that commonly arises in practical applications as one of many variants. While often a strong relationship between different Steiner tree problem variants can be observed, solution approaches employed so far have been prevalently problem-specific. In contrast, this paper introduces a general-purpose solver that can be used to solve both the classical Steiner tree problem and many of its variants without modification. This versatility is achieved by transforming various problem variants into a general form and solving them by using a state-of-the-art MIP-framework. The result is a high-performance solver that can be employed in massively parallel environments and is capable of solving previously unsolved instances.
Similar content being viewed by others
References
Karp, R.: Reducibility among combinatorial problems. In: Miller, R., Thatcher, J. (eds.) Complexity of Computer Computations, pp. 85–103. Springer, Boston, MA (1972)
Leitner, M., Ljubić, I., Luipersbeck, M., Prossegger, M., Resch, M.: New real-world instances for the Steiner tree problem in graphs. Technical report, ISOR, Uni Wien (2014)
Chowdhury, S.A., Shackney, S., Heselmeyer-Haddad, K., Ried, T., Schffer, A.A., Schwartz, R.: Phylogenetic analysis of multiprobe fluorescence in situ hybridization data from tumor cell populations. Bioinformatics 29(13), 189–198 (2013)
Ljubić, I.: Exact and memetic algorithms for two network design problems. PhD thesis, Technische Universität Wien (2004)
Dittrich, M.T., Klau, G.W., Rosenwald, A., Dandekar, T., Müller, T.: Identifying functional modules in protein–protein interaction networks: an integrated exact approach. Bioinformatics 24(13), 223–231 (2008)
Liers, F., Martin, A., Pape, S.: Steiner trees with degree constraints: structural results and an exact solution approach. Technical report, Department Mathematik (2014)
Koch, T., Martin, A.: Solving Steiner tree problems in graphs to optimality. Networks 32, 207–232 (1998)
Achterberg, T.: SCIP: solving constraint integer programs. Math. Program. Comput. 1(1), 1–41 (2009)
Gamrath, G., Fischer, T., Gally, T., Gleixner, A.M., Hendel, G., Koch, T., Maher, S.J., Miltenberger, M., Müller, B., Pfetsch, M.E., Puchert, C., Rehfeldt, D., Schenker, S., Schwarz, R., Serrano, F., Shinano, Y., Vigerske, S., Weninger, D., Winkler, M., Witt, J.T., Witzig, J.: The SCIP Optimization Suite 3.2. Technical Report 15-60, ZIB, Takustr.7, 14195 Berlin (2016)
Borndörfer, R., Hoàng, N.D., Karbstein, M., Koch, T., Martin, A.: How many Steiner terminals can you connect in 20 years? In: Jünger, M., Reinelt, G. (eds.) Facets of Combinatorial Optimization, pp. 215–244. Springer, Berlin, Heidelberg (2013)
Koch, T., Martin, A., Pfetsch, M.E.: Progress in academic computational integer programming. In: Jünger, M., Reinelt, G. (eds.) Facets of Combinatorial Optimization, pp. 483–506. Springer, Berlin, Heidelberg (2013)
Rosseti, I., de Aragão, M., Ribeiro, C., Uchoa, E., Werneck, R.: New benchmark instances for the Steiner problem in graphs. In: Extended Abstracts of the 4th Metaheuristics International Conference (MIC’2001), pp. 557–561, Porto (2001)
Duin, C.: Steiner problems in graphs. PhD thesis, University of Amsterdam (1993)
Polzin, T.: Algorithms for the Steiner problem in networks. PhD thesis, Saarland University (2004)
Daneshmand, S.V.: Algorithmic approaches to the Steiner problem in networks. PhD thesis, Universität Mannheim (2004)
Rehfeldt, D.: A generic approach to solving the Steiner tree problem and variants. Master’s thesis, Technische Universität Berlin (2015)
Applegate, D.L., Bixby, R.E., Chvátal, V., Cook, W.J.: On the solution of traveling salesman problems. Documenta Mathematica Journal der Deutschen Mathematiker-Vereinigung Extra Volume ICM III, 645–656 (1998)
Mittelmann, H.: Benchmarks for optimization software. http://plato.asu.edu/bench.html. Last accessed 9 March 2015
Beasley, J.E.: An algorithm for the Steiner problem in graphs. Networks 14(1), 147–159 (1984)
Hwang, F., Richards, D.S., Winter, P.: The Steiner tree problem. Annals of Descrete Mathematics, vol. 53. Elsevier, Amsterdam
Achterberg, T.: Constraint integer programming. PhD thesis, Technische Universität Berlin (2007)
de Aragao, M.P., Werneck, R.F.: On the implementation of MST-based heuristics for the Steiner problem in graphs. In: Proceedings of the 4th International Workshop on Algorithm Engineering and Experiments, pp. 1–15. Springer, Berlin, Heidelberg (2002)
Uchoa, E., Werneck, R.F.F.: Fast local search for Steiner trees in graphs. In: Blelloch, G.E., Halperin, D. (eds.) ALENEX, pp. 1–10. SIAM, Society for Industrial and Applied Mathematics, Philadelphia, PA (2010)
Wong, R.: A dual ascent approach for Steiner tree problems on a directed graph. Math. Program. 28, 271–287 (1984)
Pajor, T., Uchoa, E., Werneck, R.F: A Robust and Scalable Algorithm for the Steiner Problem in Graphs. Preprint, arXiv:1412.2787
Takahashi, H.: An approximate solution for the Steiner problem in graphs. Math. Jpn. 24, 573–577 (1980)
Ribeiro, C.C., Uchoa, E., Werneck, R.F.: A hybrid GRASP with perturbations for the Steiner problem in graphs. INFORMS J. Comput. 14(3), 228–246 (2002)
Wunderling, R.: Paralleler und objektorientierter Simplex-Algorithmus. PhD thesis, Technische Universität Berlin (1996)
Beasley, J.: An SST-based algorithm for the Steiner problem in graphs. Networks 19, 1–16 (1989)
Gamrath, G., Koch, T., Maher, S.J., Rehfeldt, D., Shinano, Y.: SCIP-Jack—a solver for STP and variants with parallelization extensions. 11th DIMACS Competition workshop paper (2014)
Polzin, T., Vahdati-Daneshmand, S.: The Steiner tree challenge: an updated study (2014). Unpublished manuscript at http://dimacs11.zib.de/downloads.html
Johnston, J., Kelley, R., Crawford, T., Morton, D., Agarwala, R., Koch, T., Schäffer, A., Francomano, C., Biesecker, L.: A novel nemaline myopathy in the Amish caused by a mutation in troponin T1. Am. J. Hum. Genet. 67(4), 814–821 (2000)
Garey, M., Johnson, D.: The rectilinear Steiner tree problem is NP-complete. SIAM J. Appl. Math. 32, 826–834 (1977)
Warme, D., Winter, P., Zachariasen, M.: Exact algorithms for plane Steiner tree problems: a computational study. In: Du, D.Z., Smith, J., Rubinstein, J. (eds.) Advances in Steiner Trees, pp. 81–116. Kluwer, Dordrecht (2000)
Zachariasen, M., Rohe, A.: Rectilinear group Steiner trees and applications in VLSI design. Technical Report 00906, Institute for Discrete Mathematics (2000)
Emanet, N.: The Rectilinear Steiner Tree Problem. Lambert Academic Publishing (2010)
Hanan, M.: On Steiner’s problem with rectilinear distance. SIAM J. Appl. Math. 14(2), 255–265 (1966)
Snyder, T.L.: On the exact location of Steiner points in general dimension. SIAM J. Comput. 21(1), 163–180 (1992)
Rehfeldt, D., Koch, T.: Transformations for the prize-collecting Steiner tree problem and the maximum-weight connected subgraph problem to SAP. Technical Report 16-36, ZIB, Takustr.7, 14195 Berlin (2016)
Vo, S.: A survey on some generalizations of Steiner’s problem. In: 1st Balkan Conference on Operational Research Proceedings, vol. 1, pp. 41–51 (1988)
Duin, C.W., Volgenant, A., Vo, S.: Solving group Steiner problems as Steiner problems. Eur. J. Oper. Res. 154(1), 323–329 (2004)
Ferreira, C.E., de Oliveira Filho, F.M.: New reduction techniques for the group Steiner tree problem. SIAM J. Optim. 17(4), 1176–1188 (2006)
Voß, S.: The Steiner tree problem with hop constraints. Ann. Oper. Res. 86, 321–345 (1999)
Shinano, Y., Achterberg, T., Berthold, T., Heinz, S., Koch, T.: ParaSCIP: a parallel extension of SCIP. In: Bischof, C., Hegering, H.G., Nagel, W., Wittum, G. (eds.) Competence in High Performance Computing 2010, pp. 135–148. Springer, Berlin, Heidelberg (2012)
Shinano, Y., Heinz, S., Vigerske, S., Winkler, M.: FiberSCIP—a shared memory parallelization of SCIP. Technical Report 13–55, ZIB, Takustr.7, 14195 Berlin (2013)
Shinano, Y., Achterberg, T., Berthold, T., Heinz, S., Koch, T., Winkler, M.: Solving open MIP instances with ParaSCIP on supercomputers using up to 80,000 cores. In: 2016 IEEE International Parallel and Distributed Processing Symposium, pp. 770–779 (2016)
Acknowledgements
The work for this article has been conducted within the Research Campus Modal funded by the German Federal Ministry of Education and Research (fund number 05M14ZAM). It has been further supported by a Google Faculty Research Award. The authors would like to thank the referees for constructive criticism and helpful comments on the paper. We are thankful to The Institute of Statistical Mathematics (ISM), Tokyo, and the HLRN-III facility at ZIB, Berlin, for providing supercomputing resources and their respective staff for their helpful support. Furthermore, we are thankful to Cees Duin for sending us a hard copy of his PhD thesis. This research used resources of the Oak Ridge Leadership Computing Facility, which is a DOE Office of Science User Facility supported under Contract DE-AC05-00OR22725.
Author information
Authors and Affiliations
Corresponding author
Additional information
The work done for this article was supported by the BMBF Research Campus Modal SynLab and by a Google Faculty Research Award.
Appendices
Appendix A: Proofs
This section provides proofs to the lemmata stated in the course of this paper. For the respective transformation corresponding to each of these lemmata a one-to-one correspondence between the solution sets of the original and the transformed problem is proven as well as the linear relation between the respective solutions values. This implies that all these problems can be solved on their transformed solution spaces.
1.1 A.1: Proof of Lemma 1 (NWSTP to SAP)
Proof
To see the one-to-one correspondence let \(S = (V_S,E_S) \in \mathcal {S}\) and proceed as follows:
Surjective. Initially set \(V'_{S'} := V_S\) and \(A'_{S'} := \emptyset \). Traverse \((V_S,E_S)\), e.g. using breadth-first search, starting from \(r'\) and add for each \(w \in V_S\) visited from \(v \in V_S\) the arc (v, w) to \(A'_{S'}\). \(S' := (V'_{S'}, A'_{S'})\) is a solution to \(P'\) and by applying (9) and (10), S is obtained.
Injective. \(S'\) is the only solution to \(P'\) that is mapped by (9) and (10) to S: Each \(\tilde{S}' \in \mathcal {S'}\), \(\tilde{S}' \ne S'\) contains at least one arc (v, w) such that \((v,w) \notin A'_{S'}\) and \((w,v) \notin A'_{S'}\), since only substituting arcs in \(A'_{S'}\) by there anti-parallel counterparts would not allow directed paths from the root to all vertices. Therefore, \(\tilde{S}'\) is not mapped onto S.
To acknowledge (11) one readily observes that for each node of \(S'\) except for the root there is exactly one incoming arc, so:
which implies (11).
1.2 A.2: Proof of Lemma 2 (RPCSTP to SAP)
Proof
To acknowledge that (14) and (15) constitute a mapping \(\mathcal {S'} \rightarrow \mathcal {S}\) it can be observed that first the root node is conserved and second the set of all arcs corresponding to edges in the original graph (V, E) forms a tree. To prove that a bijection is given, let \(S = (V_S,E_S) \in \mathcal {S}\) and \(T = \{ t_1,\ldots ,t_s\}\) as defined in Transformation 2.
Surjective Initially, set \(V'_{S'} := V_S\) and \(A'_{S'} := \emptyset \). Analogously to the proof of Lemma 1, add for each edge in \(E_S\) an arc to \(A'_{S'}\) in such a way that finally there is for each \(v' \in V'_{S'}\) a directed path from \(r'\) to \(v'\). Next, for each \(i \in \{ 1,\ldots s \}\) set \(a_i:= (t_i, t_i' )\) if \(t_i \in V_S\), otherwise \(a_i:=(r', t_i' )\) and add \(a_i\) to \(A'_{S'}\). Thereupon, \(S' := (V'_{S'}, A'_{S'})\) is a solution to \(P'\) and by applying (14) and (15), we obtain S.
Injective Define the set of all arcs of \(P'\) corresponding to the edges of P as \(A := \{ (v,w) \in A' :~ \{v,w \} \in E \}\) and accordingly \(A_{S'} := A'_{S'} \cap A\). Since (13) has been assumed, it holds that: \((t_i, t_i') \in A'_{S'} \Leftrightarrow t_i \in V_S'\) and \((r', t_i') \in A'_{S'} \Leftrightarrow t_i \notin V_S'\). This implies that \(A'_{S'}\) is already determined by \(A_{S'}\). Now let \(\tilde{S}' =(\tilde{V}_{S}',\tilde{A}_{S}') \in \mathcal {S'}\), \(\tilde{S}' \ne S'\). Consequently, there is at least one arc \((v,w) \in \tilde{A}_{S}'\) such that \((w,v) \notin A_{S'}\) and \((w,v) \notin A_{S'}\) and therefore is \(\tilde{S}'\) not mapped to S.
Finally, using the above notation one observes that:
so the costs of \(S'\) and S are equal.
1.3 A.3: Proof of Lemma 3 (PCSTP to rcSAP)
Proof
Likewise to the proof of Lemma 2 one observes that (18) and (19) constitute a mapping \(\mathcal {S'} \rightarrow \mathcal {S}\). Let \(S = (V_S,E_S) \in \mathcal {S}\) and \(T = \{ t_1,\ldots ,t_s\}\) defined as in Transformation 3.
Surjective. Initially, define \(V'_{S'} := V_S\), \(A'_{S'} := \{ (r,t_{i_0}) \}\), with \(i_0 := \min {\{ i ~|~ t_i \in V_{S'}' \} }\). Then extend \(A'_{S'}\) analogously to the proof of Lemma 2. The so constructed \(S' := (V'_{S'}, A'_{S'})\) is a solution to \(P'\) and applying (18) and (19) S is obtained.
Injective Parallelly to the proof of Lemma 2 it can be shown that for a solution \(\tilde{S}' \ne S'\) to \(P'\) there must be at least one arc \((v,w) \in A_{\tilde{S}'}\) such that \((v,w) \notin A_{S'}\) and \((w,v) \notin A_{S'}\) with A defined as in the proof of Lemma 2. Therefore it follows that \(\tilde{S}'\) is not mapped to S.
The equality of the solution values of S and \(S'\) can be seen likewise.
1.4 A.4: Proof of Lemma 4 (MWCS to rcSAP)
Proof
The one-to-one correspondence between the sets of solutions to P and \(P''\) can be seen analogously to the proof of Lemma 3.
To prove (22) let \(S = (V_S,E_S)\) be a solution to P and \(S'' = (V''_{S''},A''_{S''})\) the corresponding solution to \(P''\), obtained by applying (20) and (21). Further, define \(A := \{ (v,w) \in A'' :~ \{v,w \} \in E \}\) and \(A_{S''} = A \cap A''_{S''}\). First, one observes that for each \(v \in S\) such that \(p_v \le 0\) there is exactly one incoming arc \(a \in A_{S''}\), so:
Second:
Finally, by adding (23) and (24) the equation:
is obtained, which coincides with (22).
Appendix B: Abbreviations of reduction methods
This section provides the names for all reduction methods used by SCIP-Jack, which are listed in Table 2 in abbreviated form. All methods are described in detail in [16]. Note that several methods can be used for several variants, see Table 2, but in this case almost always require (considerable) adaptations. These adaptations can likewise be found in [16].
Table 14 lists in the first column the respective abbreviation of each reduction method used by SCIP-Jack. The second column provides the full name of the method, while the third and last column states all Steiner problem variants that use this particular reduction method (in adapted form).
Appendix C: Detailed computational results
This section presents detailed instance-wise results from the experiments performed in this paper for all test sets discussed in Sects. 2 and 3. The tables list the original and the presolved problem size, i.e., number of nodes | V |, arcs | A |, and terminals | T | as well as the preprocessing time (column t [s] in the Presolved columns). Moreover, the tables show the Dual and Primal bound upon termination and the corresponding Gap in percent. If an instance was solved to optimality, the optimal value is printed instead of primal and dual bound, and the gap is omitted. Similarly, “–” is printed if no primal bound was present at the time of termination. Additionally, the number of branch-and-bound nodes (N), and the total solving time in seconds (last column) is listed. The total solving time includes the preprocessing time. A timeout is marked by “>” before the termination time. In case of the DCSTP for which SCIP-Jack does not perform preprocessing, the statistics about the presolved model are omitted (Tables 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40).
Rights and permissions
About this article
Cite this article
Gamrath, G., Koch, T., Maher, S.J. et al. SCIP-Jack—a solver for STP and variants with parallelization extensions. Math. Prog. Comp. 9, 231–296 (2017). https://doi.org/10.1007/s12532-016-0114-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12532-016-0114-x