Abstract
We present a new exact algorithm for the Steiner tree problem in edge-weighted graphs. Our algorithm improves the classical dynamic programming approach by Dreyfus and Wagner. We achieve a significantly better practical performance via pruning and future costs, a generalization of a well-known concept to speed up shortest path computations. Our algorithm matches the best known worst-case run time and has a fast, often superior, practical performance: on some large instances originating from VLSI design, previous best run times are improved upon by orders of magnitudes. We are also able to solve larger instances of the d-dimensional rectilinear Steiner tree problem for \(d \in \{3, 4, 5\}\), whose Hanan grids contain up to several millions of edges.
Similar content being viewed by others
References
11th DIMACS implementation challenge (2014). http://dimacs11.zib.de/downloads.html. Accessed 5 July 2016
de Aragão, M.P., Uchoa, E., Werneck, R.F.: Dual heuristics on the exact solution of large Steiner problems. Electron. Notes Discrete Math. 7, 150–153 (2001)
Beasley, J.: An algorithm for the Steiner problem in graphs. Networks 14, 147–159 (1984)
Bodlaender, H.L., Cygan, M., Kratsch, S., Nederlof, J.: Deterministic single exponential time algorithms for connectivity problems parameterized by treewidth. In: Fomin, F.V., Freivalds, R., Kwiatkowska, M., Peleg, D. (eds.) Automata, Languages, and Programming, Lecture Notes in Computer Science, vol. 7965, pp. 196–207. Springer, Berlin, Heidelberg (2013)
Byrka, J., Grandoni, F., Rothvoß, T., Sanità, L.: Steiner tree approximation via iterative randomized rounding. J. ACM 60(1), 6:1–6:33 (2013)
Chlebík, M., Chlebíková, J.: The Steiner tree problem on graphs: Inapproximability results. Theor. Comput. Sci. 406(3), 207–214 (2008)
Chopra, S., Gorres, E., Rao, M.: Solving the Steiner tree problem on a graph using branch and cut. ORSA J. Comput. 4, 320–335 (1992)
Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)
Dreyfus, S.E., Wagner, R.A.: The Steiner problem in graphs. Networks 1(3), 195–207 (1971)
Duin, C., Volgenant, A.: An edge elimination test for the Steiner problem in graphs. Oper. Res. Lett. 8, 79–83 (1989)
Erickson, R.E., Monma, C.L., Veinott Jr., A.F.: Send-and-split method for minimum-concave-cost network flows. Math. Oper. Res. 12(4), 634–664 (1987)
Fafianie, S., Bodlaender, H., Nederlof, J.: Speeding up dynamic programming with representative sets. In: Gutin, G., Szeider, S. (eds.) Parameterized and Exact Computation, Lecture Notes in Computer Science, vol. 8246, pp. 321–334. Springer International Publishing, New York (2013)
Fonseca, R., Brazil, M., Winter, P., Zachariasen, M.: Faster exact algorithms for computing Steiner trees in higher dimensional euclidean spaces. In: 11th DIMACS Implementation Challenge on Steiner Tree Problems (2014). http://dimacs11.zib.de/workshop/FonsecaBrazilWinterZachariasen.pdf. Accessed 5 July 2016
Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. J. ACM 34(3), 596–615 (1987)
Fuchs, B., Kern, W., Mölle, D., Richter, S., Rossmanith, P., Wang, X.: Dynamic programming for minimum Steiner trees. Theory Comput. Syst. 41(3), 493–500 (2007)
Hanan, M.: On Steiner’s problem with rectilinear distance. SIAM J. Appl. Math. 14(2), 255–265 (1966)
Hart, P.E., Nilsson, N.J., Raphael, B.: A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Syst. Sci. Cybern. SSC–4(2), 100–107 (1968)
Held, M., Karp, R.M.: A dynamic programming approach to sequencing problems. J. Soc. Ind. Appl. Math. 10(1), 196–210 (1962). doi:10.2307/2098806
Held, M., Karp, R.M.: The traveling salesman problem and minimum spanning trees. Oper. Res. 18, 1138–1162 (1970)
Held, S., Korte, B., Rautenbach, D., Vygen, J.: Combinatorial optimization in VLSI design. In: Combinatorial Optimization—methods and applications, pp. 33–96. IOS Press, Amsterdam (2011)
Hwang, F.K.: On Steiner minimal trees with rectilinear distance. SIAM J. Appl. Math. 30(1), 104–114 (1976)
Karp, R.M.: Reducibility among combinatorial problems. In: Miller, R., Thatcher, J. (eds.) Complexity of Computer Computations, pp. 85–103. Plenum Press, New York (1972)
Koch, T., Martin, A.: Solving Steiner tree problems in graphs to optimality. Networks 32, 207–232 (1998)
Polzin, T.: Algorithms for the Steiner problem in networks. Ph.D. thesis (2004)
Polzin, T., Vahdati, S.: Extending reduction techniques for the Steiner tree problem: a combination of alternative- and bound-based approaches. Tech. Rep. MPI-I-2001-1-007, Max-Planck-Institut für Informatik (2001)
Polzin, T., Vahdati Daneshmand, S.: Practical partitioning-based methods for the Steiner problem. In: Àlvarez, C., Serna, M. (eds.) Experimental Algorithms, Lecture Notes in Computer Science, vol. 4007, pp. 241–252. Springer, Berlin, Heidelberg (2006)
Polzin, T., Vahdati Daneshmand, S.: The Steiner Tree Challenge: An updated Study (2014). http://dimacs11.zib.de/papers/PolzinVahdatiDIMACS.pdf. Accessed 5 July 2016
Prim, R.C.: Shortest connection networks and some generalizations. Bell Syst. Technol. J. 36, 1389–1401 (1957)
Silvanus, J.: Fast exact Steiner tree generation using dynamic programming. Master’s thesis, Research Institute for Discrete Mathematics, University of Bonn (2013)
Snyder, T.L.: On the exact location of Steiner points in general dimension. SIAM J. Comput. 21(1), 163–180 (1992)
Uchoa, E., de Aragão, M., Ribeiro, C.: Preprocessing Steiner problems from VLSI layout. Tech. Rep. MCC 32/99, Catholic University of Rio de Janeiro, Rio de Janeiro (1999)
Vahdati Daneshmand, S.: Algorithmic approaches to the Steiner problem in networks. Ph.D. thesis (2004)
Vygen, J.: Faster algorithm for optimum Steiner trees. Inf. Process. Lett. 111(21–22), 1075–1079 (2011)
Warme, D.M., Winter, P., Zachariasen, M.: Exact algorithms for plane Steiner tree problems: A computational study. Springer, New York (2000)
Wong, R.: A dual ascent approach for Steiner tree problems on a directed graph. Math. Program. 28(3), 271–287 (1984)
Wulff-Nilsen, C.: Higher dimensional rectilinear Steiner minimal trees. Master’s thesis, Department of Computer Science, University of Copenhagen (2006)
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Results on graphic DIMACS instances
We present detailed computational results on DIMACS testsets. Our implementation is limited to instances with less than 64 terminals, so we exclude instances with more terminals.
The implementation of our algorithm is written in the C++ programming language and compiled using the GCC 4.8.2 compiler.
The experiments were performed single-threaded on a machine with 3.33 GHz Intel Xeon W5590 CPUs and 144 GB main memory which produced a score of 391.372724 using the DIMACS benchmark code.
For these experiments, we limited the memory consumption of the algorithm to 100 GB and set the time limit to 7200 s. The reported run times do not include the time to read the instance file from disk (Tables 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 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, 41, 42, 43, 44, 45, 46).
Appendix 2: Results on rectilinear instances
For these experiments, the setup is identical to the one described in Appendix 1. For each instance, first, the Hanan grid was computed and written to an instance file describing an instance of the Steiner tree problem in graphs. The latter instance was then solved. The reported run times only include the time to solve the graphic instance, in particular, the time needed to read in the Hanan grid is not included (Tables 47, 48, 49, 50).
Rights and permissions
About this article
Cite this article
Hougardy, S., Silvanus, J. & Vygen, J. Dijkstra meets Steiner: a fast exact goal-oriented Steiner tree algorithm. Math. Prog. Comp. 9, 135–202 (2017). https://doi.org/10.1007/s12532-016-0110-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12532-016-0110-1