Skip to main content
Log in

Dijkstra meets Steiner: a fast exact goal-oriented Steiner tree algorithm

  • Full Length Paper
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. 11th DIMACS implementation challenge (2014). http://dimacs11.zib.de/downloads.html. Accessed 5 July 2016

  2. 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)

  3. Beasley, J.: An algorithm for the Steiner problem in graphs. Networks 14, 147–159 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  4. 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)

  5. Byrka, J., Grandoni, F., Rothvoß, T., Sanità, L.: Steiner tree approximation via iterative randomized rounding. J. ACM 60(1), 6:1–6:33 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  6. Chlebík, M., Chlebíková, J.: The Steiner tree problem on graphs: Inapproximability results. Theor. Comput. Sci. 406(3), 207–214 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  7. 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)

    Article  MATH  Google Scholar 

  8. Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)

    Article  MathSciNet  MATH  Google Scholar 

  9. Dreyfus, S.E., Wagner, R.A.: The Steiner problem in graphs. Networks 1(3), 195–207 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  10. Duin, C., Volgenant, A.: An edge elimination test for the Steiner problem in graphs. Oper. Res. Lett. 8, 79–83 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  11. 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)

    Article  MathSciNet  MATH  Google Scholar 

  12. 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)

  13. 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

  14. Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. J. ACM 34(3), 596–615 (1987)

    Article  MathSciNet  Google Scholar 

  15. 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)

    Article  MathSciNet  MATH  Google Scholar 

  16. Hanan, M.: On Steiner’s problem with rectilinear distance. SIAM J. Appl. Math. 14(2), 255–265 (1966)

    Article  MathSciNet  MATH  Google Scholar 

  17. 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)

    Article  Google Scholar 

  18. 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

    Article  MathSciNet  MATH  Google Scholar 

  19. Held, M., Karp, R.M.: The traveling salesman problem and minimum spanning trees. Oper. Res. 18, 1138–1162 (1970)

    Article  MathSciNet  MATH  Google Scholar 

  20. 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)

  21. Hwang, F.K.: On Steiner minimal trees with rectilinear distance. SIAM J. Appl. Math. 30(1), 104–114 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. Koch, T., Martin, A.: Solving Steiner tree problems in graphs to optimality. Networks 32, 207–232 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  24. Polzin, T.: Algorithms for the Steiner problem in networks. Ph.D. thesis (2004)

  25. 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)

  26. 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)

  27. Polzin, T., Vahdati Daneshmand, S.: The Steiner Tree Challenge: An updated Study (2014). http://dimacs11.zib.de/papers/PolzinVahdatiDIMACS.pdf. Accessed 5 July 2016

  28. Prim, R.C.: Shortest connection networks and some generalizations. Bell Syst. Technol. J. 36, 1389–1401 (1957)

    Article  Google Scholar 

  29. Silvanus, J.: Fast exact Steiner tree generation using dynamic programming. Master’s thesis, Research Institute for Discrete Mathematics, University of Bonn (2013)

  30. Snyder, T.L.: On the exact location of Steiner points in general dimension. SIAM J. Comput. 21(1), 163–180 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  31. 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)

  32. Vahdati Daneshmand, S.: Algorithmic approaches to the Steiner problem in networks. Ph.D. thesis (2004)

  33. Vygen, J.: Faster algorithm for optimum Steiner trees. Inf. Process. Lett. 111(21–22), 1075–1079 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  34. Warme, D.M., Winter, P., Zachariasen, M.: Exact algorithms for plane Steiner tree problems: A computational study. Springer, New York (2000)

    MATH  Google Scholar 

  35. Wong, R.: A dual ascent approach for Steiner tree problems on a directed graph. Math. Program. 28(3), 271–287 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  36. Wulff-Nilsen, C.: Higher dimensional rectilinear Steiner minimal trees. Master’s thesis, Department of Computer Science, University of Copenhagen (2006)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jannik Silvanus.

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).

Table 4 Results on the testset ALUE
Table 5 Results on the testset ALUT
Table 6 Results on the testset DIW
Table 7 Results on the testset DMXA
Table 8 Results on the testset GAP
Table 9 Results on the testset LIN
Table 10 Results on the testset MSM
Table 11 Results on the testset TAQ
Table 12 Results on the testset 1R
Table 13 Results on the testset 2R
Table 14 Results on the testset ES10FST
Table 15 Results on the testset ES20FST
Table 16 Results on the testset ES30FST
Table 17 Results on the testset ES40FST
Table 18 Results on the testset ES50FST
Table 19 Results on the testset ES60FST
Table 20 Results on the testset TSPFST
Table 21 Results on the testset Copenhagen14
Table 22 Results on the testset WRP3
Table 23 Results on the testset WRP4
Table 24 Results on the testset vienna-i-advanced
Table 25 Results on the testset vienna-i-simple
Table 26 Results on the testset X
Table 27 Results on the testset P4E
Table 28 Results on the testset P4Z
Table 29 Results on the testset P6E
Table 30 Results on the testset P6Z
Table 31 Results on the testset B
Table 32 Results on the testset C
Table 33 Results on the testset D
Table 34 Results on the testset E
Table 35 Results on the testset I080
Table 36 Results on the testset I160
Table 37 Results on the testset I320
Table 38 Results on the testset I640
Table 39 Results on the testset PUC
Table 40 Results on the testset SPG-PUCN
Table 41 Results on the testset SP
Table 42 Results on the testset MC
Table 43 Results on the testset csd
Table 44 Results on the testset goemans
Table 45 Results on the testset skutella
Table 46 Results on the testset smc

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).

Table 47 Results on the testset CARIOCA
Table 48 Results on the testset CARIOCA
Table 49 Results on the testset CARIOCA
Table 50 Results on the testset bonn-3d

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-016-0110-1

Keywords

Mathematics Subject Classification

Navigation