Recent from talks
Nothing was collected or created yet.
Steiner tree problem
View on Wikipedia


In combinatorial mathematics, the Steiner tree problem, or minimum Steiner tree problem, named after Jakob Steiner, is an umbrella term for a class of problems in combinatorial optimization. While Steiner tree problems may be formulated in a number of settings, they all require an optimal interconnect for a given set of objects and a predefined objective function. One well-known variant, which is often used synonymously with the term Steiner tree problem, is the Steiner tree problem in graphs. Given an undirected graph with non-negative edge weights and a subset of vertices, usually referred to as terminals, the Steiner tree problem in graphs requires a tree of minimum weight that contains all terminals (but may include additional vertices) and minimizes the total weight of its edges. Further well-known variants are the Euclidean Steiner tree problem and the rectilinear minimum Steiner tree problem.
The Steiner tree problem in graphs can be seen as a generalization of two other famous combinatorial optimization problems: the (non-negative) shortest path problem and the minimum spanning tree problem. If a Steiner tree problem in graphs contains exactly two terminals, it reduces to finding the shortest path. If, on the other hand, all vertices are terminals, the Steiner tree problem in graphs is equivalent to the minimum spanning tree. However, while both the non-negative shortest path and the minimum spanning tree problem are solvable in polynomial time, no such solution is known for the Steiner tree problem. Its decision variant, asking whether a given input has a tree of weight less than some given threshold, is NP-complete, which implies that the optimization variant, asking for the minimum-weight tree in a given graph, is NP-hard. In fact, the decision variant was among Karp's original 21 NP-complete problems. The Steiner tree problem in graphs has applications in circuit layout or network design. However, practical applications usually require variations, giving rise to a multitude of Steiner tree problem variants.
Most versions of the Steiner tree problem are NP-hard, but some restricted cases can be solved in polynomial time. Despite the pessimistic worst-case complexity, several Steiner tree problem variants, including the Steiner tree problem in graphs and the rectilinear Steiner tree problem, can be solved efficiently in practice, even for large-scale real-world problems.[1][2]
Euclidean Steiner tree
[edit]
The original problem was stated in the form that has become known as the Euclidean Steiner tree problem or geometric Steiner tree problem: Given N points in the plane, the goal is to connect them by lines of minimum total length in such a way that any two points may be interconnected by line segments either directly or via other points and line segments.
While the problem is named after Steiner, it has first been posed in 1811 by Joseph Diez Gergonne in the following form: "A number of cities are located at known locations on a plane; the problem is to link them together by a system of canals whose total length is as small as possible".[3]
It may be shown that the connecting line segments do not intersect each other except at the endpoints and form a tree, hence the name of the problem.
The problem for N = 3 has long been considered, and quickly extended to the problem of finding a star network with a single hub connecting to all of the N given points, of minimum total length. However, although the full Steiner tree problem was formulated in a letter by Gauss, its first serious treatment was in a 1934 paper written in Czech by Vojtěch Jarník and Miloš Kössler. This paper was long overlooked, but it already contains "virtually all general properties of Steiner trees" later attributed to other researchers, including the generalization of the problem from the plane to higher dimensions.[4]
For the Euclidean Steiner problem, points added to the graph (Steiner points) must have a degree of three, and the three edges incident to such a point must form three 120 degree angles (see Fermat point). It follows that the maximum number of Steiner points that a Steiner tree can have is N − 2, where N is the initial number of given points. (all these properties were established already by Gergonne.)
For N = 3 there are two possible cases: if the triangle formed by the given points has all angles which are less than 120 degrees, the solution is given by a Steiner point located at the Fermat point; otherwise the solution is given by the two sides of the triangle which meet on the angle with 120 or more degrees.
For general N, the Euclidean Steiner tree problem is NP-hard, and hence it is not known whether an optimal solution can be found by using a polynomial-time algorithm. However, there is a polynomial-time approximation scheme (PTAS) for Euclidean Steiner trees, i.e., a near-optimal solution can be found in polynomial time.[5] It is not known whether the Euclidean Steiner tree problem is NP-complete, since membership to the complexity class NP is not known.
Rectilinear Steiner tree
[edit]The rectilinear Steiner tree problem is a variant of the geometric Steiner tree problem in the plane, in which the Euclidean distance is replaced with the rectilinear distance. The problem arises in the physical design of electronic design automation. In VLSI circuits, wire routing is carried out by wires that are often constrained by design rules to run only in vertical and horizontal directions, so the rectilinear Steiner tree problem can be used to model the routing of nets with more than two terminals.[6]
Steiner tree in graphs and variants
[edit]Steiner trees have been extensively studied in the context of weighted graphs. The prototype is, arguably, the Steiner tree problem in graphs. Let G = (V, E) be an undirected graph with non-negative edge weights c and let S ⊆ V be a subset of vertices, called terminals. A Steiner tree is a tree in G that spans S. There are two versions of the problem: in the optimization problem associated with Steiner trees, the task is to find a minimum-weight Steiner tree; in the decision problem the edge weights are integers and the task is to determine whether a Steiner tree exists whose total weight does not exceed a predefined natural number k. The decision problem is one of Karp's 21 NP-complete problems; hence the optimization problem is NP-hard. Steiner tree problems in graphs are applied to various problems in research and industry,[7] including multicast routing[8] and bioinformatics.[9]
A special case of this problem is when G is a complete graph, each vertex v ∈ V corresponds to a point in a metric space, and the edge weights w(e) for each e ∈ E correspond to distances in the space. Put otherwise, the edge weights satisfy the triangle inequality. This variant is known as the metric Steiner tree problem. Given an instance of the (non-metric) Steiner tree problem, we can transform it in polynomial time into an equivalent instance of the metric Steiner tree problem; the transformation preserves the approximation factor.[10]
While the Euclidean version admits a PTAS, it is known that the metric Steiner tree problem is APX-complete, i.e., unless P = NP, it is impossible to achieve approximation ratios that are arbitrarily close to 1 in polynomial time. There is a polynomial-time algorithm that approximates the minimum Steiner tree to within a factor of ;[11] however, approximating within a factor is NP-hard.[12] For the restricted case of Steiner Tree problem with distances 1 and 2, a 1.25-approximation algorithm is known.[13] Karpinski and Alexander Zelikovsky constructed PTAS for the dense instances of Steiner Tree problems.[14]
In a special case of the graph problem, the Steiner tree problem for quasi-bipartite graphs, S is required to include at least one endpoint of every edge in G.
The Steiner tree problem has also been investigated in higher dimensions and on various surfaces. Algorithms to find the Steiner minimal tree have been found on the sphere, torus, projective plane, wide and narrow cones, and others.[15]
Other generalizations of the Steiner tree problem are the k-edge-connected Steiner network problem and the k-vertex-connected Steiner network problem, where the goal is to find a k-edge-connected graph or a k-vertex-connected graph rather than any connected graph. A further well-studied[16] generalization is the survivable network design problem (SNDP) where the task is to connect each vertex pair with a given number (possibly 0) of edge- or vertex-disjoint paths.
The Steiner problem has also been stated in the general setting of metric spaces and for possibly infinitely many points.[17]
Approximating the Steiner tree
[edit]The general graph Steiner tree problem can be approximated by computing the minimum spanning tree of the subgraph of the metric closure of the graph induced by the terminal vertices, as first published in 1981 by Kou et al.[18] The metric closure of a graph is the complete graph in which each edge is weighted by the shortest path distance between the nodes in . This algorithm produces a tree whose weight is within a factor of the weight of the optimal Steiner tree where is the number of leaves in the optimal Steiner tree; this can be proven by considering a traveling salesperson tour on the optimal Steiner tree. This approximate solution is computable in polynomial time by first solving the all-pairs shortest paths problem to compute the metric closure, then by solving the minimum spanning tree problem.
Another popular algorithm to approximate the Steiner tree in graphs was published by Takahashi and Matsuyama in 1980.[19] Their solution incrementally builds up the Steiner tree by starting from an arbitrary vertex, and repeatedly adding the shortest path from the tree to the nearest vertex in that has not yet been added. This algorithm also has running time, and produces a tree whose weight is within of optimal.
In 1986, Wu et al.[20] improved dramatically on the running time by avoiding precomputation of the all-pairs shortest paths. Instead, they take a similar approach to Kruskal's algorithm for computing a minimum spanning tree, by starting from a forest of disjoint trees, and "growing" them simultaneously using a breadth-first search resembling Dijkstra's algorithm but starting from multiple initial vertices. When the search encounters a vertex that does not belong to the current tree, the two trees are merged into one. This process is repeated until only one tree remains. By using a Heap (data structure) to implement the priority queue and a disjoint-set data structure to track to which tree each visited vertex belongs, this algorithm achieves running time, although it does not improve on the cost ratio from Kou et al.
A series of papers provided approximation algorithms for the minimum Steiner tree problem with approximation ratios that improved upon the ratio. This sequence culminated with Robins and Zelikovsky's algorithm in 2000 which improved the ratio to 1.55 by iteratively improving upon the minimum cost terminal spanning tree. More recently, however, Byrka et al. proved an approximation using a linear programming relaxation and a technique called iterative, randomized rounding.[11]
Parameterized complexity of Steiner tree
[edit]The general graph Steiner tree problem is known to be fixed-parameter tractable, with the number of terminals as a parameter, by the Dreyfus-Wagner algorithm.[21][22] The running time of the Dreyfus-Wagner algorithm is , where n is the number of vertices of the graph and S is the set of terminals. Faster algorithms exist, running in time for any or, in the case of small weights, time, where W is the maximum weight of any edge.[23][24] A disadvantage of the aforementioned algorithms is that they use exponential space; there exist polynomial-space algorithms running in time and time.[25][26]
It is known that the general graph Steiner tree problem does not have a parameterized algorithm running in time for any , where t is the number of edges of the optimal Steiner tree, unless the Set cover problem has an algorithm running in time for some , where n and m are the number of elements and the number of sets, respectively, of the instance of the set cover problem.[27] Furthermore, it is known that the problem does not admit a polynomial kernel unless , even parameterized by the number of edges of the optimal Steiner tree and if all edge weights are 1.[28]
Parameterized approximation of Steiner tree
[edit]While the graph Steiner tree problem does not admit a polynomial kernel unless parameterized by the number of terminals, it does admit a polynomial-sized approximate kernelization scheme (PSAKS): for any it is possible to compute a polynomial-sized kernel, which looses only a factor in the solution quality.[29]
When parameterizing the graph Steiner tree problem by the number p of non-terminals (Steiner vertices) in the optimum solution, the problem is W[1]-hard (in contrast to the parameterization by the number of terminals, as mentioned above). At the same time the problem is APX-complete and thus does not admit a PTAS, unless P = NP. However, a parameterized approximation scheme exists, which for any computes a -approximation in time.[30] Also a PSAKS exists for this parameterization.[30]
Steiner ratio
[edit]The Steiner ratio is the supremum of the ratio of the total length of the minimum spanning tree to the minimum Steiner tree for a set of points in the Euclidean plane.[31]
In the Euclidean Steiner tree problem, the Gilbert–Pollak conjecture is that the Steiner ratio is , the ratio that is achieved by three points in an equilateral triangle with a spanning tree that uses two sides of the triangle and a Steiner tree that connects the points through the centroid of the triangle. Despite earlier claims of a proof,[32] the conjecture is still open.[33] The best widely accepted upper bound for the problem is 1.2134, by Chung & Graham (1985).
For the rectilinear Steiner tree problem, the Steiner ratio is exactly , the ratio that is achieved by four points in a square with a spanning tree that uses three sides of the square and a Steiner tree that connects the points through the center of the square.[34] More precisely, for distance the square should be tilted at with respect to the coordinate axes, while for distance the square should be axis-aligned.
See also
[edit]Notes
[edit]- ^ Rehfeldt & Koch (2023).
- ^ Juhl et al. (2018).
- ^ Marcus Brazil, Ronald L. Graham, Doreen A. Thomas and Martin Zachariasen, "On the history of the Euclidean Steiner tree problem", JSTOR 24569605
- ^ Korte, Bernhard; Nešetřil, Jaroslav (2001), "Vojtěch Jarnik's work in combinatorial optimization", Discrete Mathematics, 235 (1–3): 1–17, doi:10.1016/S0012-365X(00)00256-9, hdl:10338.dmlcz/500662, MR 1829832.
- ^ Crescenzi et al. (2000).
- ^ Sherwani (1993), p. 228.
- ^ Ljubić, Ivana (2021). "Solving Steiner trees: Recent advances, challenges, and perspectives". Networks. 77 (2): 177–204. doi:10.1002/net.22005. ISSN 1097-0037. S2CID 229458488.
- ^ Novak, Roman; Rugelj, Joz̆e; Kandus, Gorazd (1 October 2001). "A note on distributed multicast routing in point-to-point networks". Computers & Operations Research. 28 (12): 1149–1164. doi:10.1016/S0305-0548(00)00029-0. ISSN 0305-0548.
- ^ Klimm, Florian; Toledo, Enrique M.; Monfeuga, Thomas; Zhang, Fang; Deane, Charlotte M.; Reinert, Gesine (2 November 2020). "Functional module detection through integration of single-cell RNA sequencing data with protein–protein interaction networks". BMC Genomics. 21 (1): 756. doi:10.1186/s12864-020-07144-2. ISSN 1471-2164. PMC 7607865. PMID 33138772.
- ^ Vazirani (2003), pp. 27–28.
- ^ a b Byrka et al. (2010).
- ^ Chlebík & Chlebíková (2008).
- ^ Berman, Karpinski & Zelikovsky (2009).
- ^ Karpinski & Zelikovsky (1998).
- ^ Smith & Winter (1995), p. 361.
- ^ Kerivin, Hervé; Mahjoub, A. Ridha (2005). "Design of Survivable Networks: A survey". Networks. 46 (1): 1–21. doi:10.1002/net.20072. ISSN 0028-3045. S2CID 8165318.
- ^ Paolini & Stepanov (2012).
- ^ Kou, Markowsky & Berman (1981).
- ^ Takahashi & Matsuyama (1980).
- ^ Wu, Widmayer & Wong (1986).
- ^ Dreyfus & Wagner (1971).
- ^ Levin (1971).
- ^ Fuchs et al. (2007).
- ^ Björklund et al. (2007).
- ^ Lokshtanov & Nederlof (2010).
- ^ Fomin et al. (2015).
- ^ Cygan et al. (2016).
- ^ Dom, Lokshtanov & Saurabh (2014).
- ^ Lokshtanov, Daniel; Panolan, Fahad; Ramanujan, M. S.; Saurabh, Saket (19 June 2017). "Lossy kernelization". Proceedings of the 49th Annual ACM SIGACT Symposium on Theory of Computing (PDF). STOC 2017. New York, NY: Association for Computing Machinery. pp. 224–237. doi:10.1145/3055399.3055456. ISBN 978-1-4503-4528-6. S2CID 14599219.
- ^ a b Dvořák, Pavel; Feldmann, Andreas E.; Knop, Dušan; Masařík, Tomáš; Toufar, Tomáš; Veselý, Pavel (1 January 2021). "Parameterized Approximation Schemes for Steiner Trees with Small Number of Steiner Vertices". SIAM Journal on Discrete Mathematics. 35 (1): 546–574. arXiv:1710.00668. doi:10.1137/18M1209489. ISSN 0895-4801. S2CID 3581913.
- ^ Ganley (2004).
- ^ Gina Kolata 30 Oct 1990 Solution to Old Puzzle: How Short a Shortcut? The New York Times,
- ^ Ivanov & Tuzhilin (2012).
- ^ Hwang (1976).
References
[edit]- Berman, Piotr; Karpinski, Marek; Zelikovsky, Alexander (2009). "1.25-approximation algorithm for Steiner tree problem with distances 1 and 2". Algorithms and Data Structures: 11th International Symposium, WADS 2009, Banff, Canada, August 21–23, 2009, Proceedings. Lecture Notes in Computer Science. Vol. 5664. pp. 86–97. arXiv:0810.1851. doi:10.1007/978-3-642-03367-4_8. ISBN 978-3-642-03366-7.
- Bern, Marshall W.; Graham, Ronald L. (1989). "The shortest-network problem". Scientific American. 260 (1): 84–89. Bibcode:1989SciAm.260a..84B. doi:10.1038/scientificamerican0189-84.
- Björklund, Andreas; Husfeldt, Thore; Kaski, Petteri; Koivisto, Mikko (2007). "Fourier Meets Möbius: Fast Subset Convolution". Proceedings of the 39th ACM Symposium on Theory of Computing. pp. 67–74. arXiv:cs/0611101. doi:10.1145/1250790.1250801. ISBN 978-1-59593-631-8.
- Byrka, J.; Grandoni, F.; Rothvoß, T.; Sanita, L. (2010). "An improved LP-based approximation for Steiner tree". Proceedings of the 42nd ACM Symposium on Theory of Computing. pp. 583–592. CiteSeerX 10.1.1.177.3565. doi:10.1145/1806689.1806769. ISBN 978-1-4503-0050-6.
- Chlebík, Miroslav; Chlebíková, Janka (2008). "The Steiner tree problem on graphs: Inapproximability results". Theoretical Computer Science. 406 (3): 207–214. doi:10.1016/j.tcs.2008.06.046.
- Chung, F. R. K.; Graham, R. L. (1985). "A new bound for Euclidean Steiner minimal trees". Discrete geometry and convexity (New York, 1982). Annals of the New York Academy of Science. Vol. 440. New York: New York Academy of Science. pp. 328–346. Bibcode:1985NYASA.440..328C. doi:10.1111/j.1749-6632.1985.tb14564.x. MR 0809217.
- Cieslik, Dietmar (1998). Steiner Minimal Trees. Springer. p. 319. ISBN 0-7923-4983-0.
- Crescenzi, Pierluigi; Kann, Viggo; Halldórsson, Magnús; Karpinski, Marek; Woeginger, Gerhard (2000). "Minimum geometric Steiner tree". A Compendium of NP Optimization Problems.
- Cygan, Marek; Dell, Holger; Lokshtanov, Daniel; Marx, Dániel; Nederlof, Jesper; Okamoto, Yoshio; Paturi, Ramamohan; Saurabh, Saket; Wahlström, Magnus (2016). "On Problems as Hard as CNF-SAT". ACM Transactions on Algorithms. 12 (3): 41:1–41:24. arXiv:1112.2275. doi:10.1145/2925416. S2CID 7320634.
- Dom, Michael; Lokshtanov, Daniel; Saurabh, Saket (2014). "Kernelization Lower Bounds Through Colors and IDs". ACM Transactions on Algorithms. 11 (2): 13:1–13:20. doi:10.1145/2650261. S2CID 13570734.
- Dreyfus, S.E.; Wagner, R.A. (1971). "The Steiner problem in graphs". Networks. 1 (3): 195–207. doi:10.1002/net.3230010302.
- Fomin, Fedor V.; Kaski, Petteri; Lokshtanov, Daniel; Panolan, Fahad; Saurabh, Saket (2015). "Parameterized Single-Exponential Time Polynomial Space Algorithm for Steiner Tree". Automata, Languages, and Programming – 42nd International Colloquium, ICALP 2015, Proceedings, Part I. Lecture Notes in Computer Science. Vol. 9134. pp. 494–505. doi:10.1007/978-3-662-47672-7_40. hdl:1956/23311. ISBN 978-3-662-47671-0.
- Fuchs, Benjamin; Kern, Walter; Mölle, Daniel; Richter, Stefan; Rossmanith, Peter; Wang, Xinhui (2007). "Dynamic Programming for Minimum Steiner Trees" (PDF). Theory of Computing Systems. 41 (3): 493–500. doi:10.1007/s00224-007-1324-4. S2CID 7478978.
- Ganley, Joseph L. (2004). "Steiner ratio". In Black, Paul E. (ed.). Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved 24 May 2012.
- Garey, Michael R.; Johnson, David S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. Series of Books in the Mathematical Sciences (1st ed.). New York: W. H. Freeman and Company. ISBN 9780716710455. MR 0519066. OCLC 247570676., pp. 208–209, problems ND12 and ND13.
- Hwang, F. K. (1976). "On Steiner minimal trees with rectilinear distance". SIAM Journal on Applied Mathematics. 30 (1): 104–114. doi:10.1137/0130013.
- Hwang, F. K.; Richards, D. S.; Winter, P. (1992). The Steiner Tree Problem. Annals of Discrete Mathematics. Vol. 53. North-Holland: Elsevier. ISBN 0-444-89098-X.
- Ivanov, Alexander; Tuzhilin, Alexey (1994). Minimal Networks: The Steiner Problem and Its Generalizations. N.W., Boca Raton, Florida: CRC Press. ISBN 978-0-8493-8642-8.
- Ivanov, Alexander; Tuzhilin, Alexey (2000). Branching solutions to one-dimensional variational problems. Singapore-New Jersey-London-Hong Kong: World Scientific. ISBN 978-981-02-4060-8.
- Ivanov, Alexander; Tuzhilin, Alexey (2003). Extreme Networks Theory (in Russian). Moscow-Izhevsk: Institute of Computer Investigations. ISBN 5-93972-292-X.
- Ivanov, Alexander; Tuzhilin, Alexey (2012). "The Steiner ratio Gilbert–Pollak conjecture is still open: Clarification statement". Algorithmica. 62 (1–2): 630–632. doi:10.1007/s00453-011-9508-3. S2CID 7486839.
- Ivanov, Alexander; Tuzhilin, Alexey (2015). "Branched coverings and Steiner ratio". International Transactions in Operational Research. 23 (5): 875–882. arXiv:1412.5433. doi:10.1111/itor.12182. S2CID 3386263.
- Juhl, D.; Warme, D.M.; Winter, P.; Zachariasen, M. (January 2018). "The GeoSteiner Software Package for computing Steiner trees in the plane: an updated computational study". Mathematical Programming Computation. 10 (4): 487–532. doi:10.1007/s12532-018-0135-8. S2CID 255616114.
- Rehfeldt, D.; Koch, T. (February 2023). "Implications, conflicts, and reductions for Steiner trees". Mathematical Programming. 197 (2): 903–966. doi:10.1007/s10107-021-01757-5. S2CID 231842568.
- Karpinski, Marek; Zelikovsky, Alexander (1998). "Approximating dense cases of covering problems". Proceedings of the DIMACS Workshop on Network Design: Connectivity and Facilities Location. DIMACS Series in Discrete Mathematics and Theoretical Computer Science. Vol. 40. American Mathematical Society. pp. 169–178.
- Korte, Bernhard; Vygen, Jens (2006). "Section 20.1". Combinatorial Optimization: Theory and Algorithms (3rd ed.). Springer. ISBN 3-540-25684-9.
- Kou, L.; Markowsky, G.; Berman, L. (1 June 1981). "A fast algorithm for Steiner trees". Acta Informatica. 15 (2): 141–145. doi:10.1007/BF00288961. S2CID 21057232.
- Levin, A. Yu. (1971). "Algorithm for the shortest connection of a group of graph vertices". Soviet Mathematics Doklady. 12: 1477–1481.
- Lokshtanov, Daniel; Nederlof, Jesper (2010). "Saving space by algebraization". Proceedings of the 42nd ACM Symposium on Theory of Computing. pp. 321–330. doi:10.1145/1806689.1806735. ISBN 978-1-4503-0050-6.
- Paolini, E.; Stepanov, E. (2012). "Existence and regularity results for the Steiner problem" (PDF). Calc. Var. Partial Diff. Equations. 46 (3–4): 837–860. doi:10.1007/s00526-012-0505-4. hdl:2158/600141. S2CID 55793499.
- Robins, Gabriel; Zelikovsky, Alexander (2000). "Improved Steiner Tree Approximation in Graphs". Proceedings of the Eleventh Annual ACM-SIAM Symposium on Discrete Algorithms (SODA '00). Philadelphia, PA, US: Society for Industrial and Applied Mathematics. pp. 770–779. ISBN 0-89871-453-2.
- Sherwani, Naveed A. (1993). Algorithms for VLSI Physical Design Automation. Kluwer Academic Publishers. ISBN 9781475722192.
- Smith, J. M.; Winter, P. (1995). "Computational geometry and topological network design". In Du, Ding-Zhu; Hwang, Frank (eds.). Computing in Euclidean geometry. Lecture Notes Series on Computing. Vol. 4 (2nd ed.). River Edge, NJ: World Scientific Publishing Co. pp. 351–451. ISBN 981-02-1876-1.
- Takahashi, Hiromitsu; Matsuyama, Akira (1980). "An approximate solution for the Steiner problem in graphs". Math. Japonica. 24 (6): 573–577.
- Vazirani, Vijay V. (2003). Approximation Algorithms. Berlin: Springer. ISBN 3-540-65367-8.
- Wu, Bang Ye; Chao, Kun-Mao (2004). "Chapter 7". Spanning Trees and Optimization Problems. Chapman & Hall/CRC. ISBN 1-58488-436-3.
- Wu, Y. F.; Widmayer, P.; Wong, C. K. (May 1986). "A faster approximation algorithm for the Steiner problem in graphs". Acta Informatica. 23 (2): 223–229. doi:10.1007/bf00289500. S2CID 7772232.
External links
[edit]- GeoSteiner (Software for solving Euclidean and rectilinear Steiner tree problems; source available, free for non-commercial use)
- SCIP-Jack (Software for solving the Steiner tree problem in graphs and 14 variants, e.g., prize-collecting Steiner tree problem; free for non-commercial use)
- Fortran subroutine for finding the Steiner vertex of a triangle (i.e., Fermat point), its distances from the triangle vertices, and the relative vertex weights.
- Phylomurka (Solver for small-scale Steiner tree problems in graphs)
- https://www.youtube.com/watch?v=PI6rAOWu-Og (Movie: solving the Steiner tree problem with water and soap)
- Noormohammadpour, Mohammad; Raghavendra, Cauligi S.; Rao, Sriram; Kandula, Srikanth (2017), "Using Steiner Trees to Minimize Average Completion Times of Bulk Data Transfers", DCCast: Efficient Point to Multipoint Transfers Across Datacenters, USENIX Association, arXiv:1707.02096
- Hazewinkel, M. (2001) [1994], "Steiner tree problem", Encyclopedia of Mathematics, EMS Press
- M. Hauptmann, M. Karpinski (2013): A Compendium on Steiner Tree Problems
Steiner tree problem
View on GrokipediaFundamentals
Definition and Motivation
The Steiner tree problem is a fundamental optimization challenge in combinatorial geometry and graph theory. Given a set of required points, known as terminals, in a metric space (such as the Euclidean plane) or a weighted graph, the goal is to construct a tree that interconnects all terminals with minimum total edge weight, where additional optional vertices called Steiner points may be added to shorten the overall connection length.[8] Unlike the minimum spanning tree (MST), which connects only the given terminals without extra points and may yield longer total length, the Steiner tree allows these auxiliary points to form more efficient interconnections, potentially reducing the cost by up to approximately 13.4% in the plane.[8] This problem arises naturally in network design applications, where minimizing connection costs is critical. For instance, in VLSI circuit layout, Steiner trees optimize wiring to connect components with minimal wire length, reducing material use and signal delays.[9] In communication networks, they model efficient backbone structures for routing data among key nodes.[10] Additionally, in computational biology, Steiner trees approximate phylogenetic trees that reconstruct evolutionary relationships among species, capturing branching patterns with minimal total branch lengths.[9] The allowance of Steiner points distinguishes it from spanning trees, enabling shorter topologies that reflect real-world efficiencies in these domains. Key terminology includes terminals, the mandatory points that must be connected; Steiner points, the optional vertices introduced to minimize length; a full Steiner tree, which incorporates Steiner points where beneficial; and the Steiner minimal tree (SMT), the shortest possible such tree.[8] The objective is formally to minimize the total length of the tree connecting the terminals , expressed as where denotes the weight or distance of edge , subject to being a tree spanning (possibly with added Steiner points).[8] A simple illustrative example occurs with three terminals forming an equilateral triangle in the Euclidean plane with side length 1. The MST connects them directly with total length 2, but the optimal Steiner tree adds a central Steiner point where the three edges meet at 120-degree angles, yielding a total length of , a reduction of about 13.4%.[11] This configuration highlights how Steiner points can exploit geometric properties, such as equal angles, to achieve optimality.[12]Historical Background
The origins of the Steiner tree problem trace back to the 17th century with Pierre de Fermat's challenge to find a point that minimizes the total distance to three given points in the plane, known as the Fermat-Torricelli problem.[13] Evangelista Torricelli provided the first geometric solution around 1640, constructing the minimizing point using equilateral triangles when all angles are less than 120 degrees, a result later confirmed by Bonaventura Cavalieri in 1647.[13] This early work laid the foundation for minimal networks connecting points, though the general case for more than three points remained unexplored until the 19th century. In 1811, Joseph Diaz Gergonne posed the broader problem of finding the shortest network interconnecting an arbitrary set of points, marking a key generalization.[14] Jakob Steiner, a Swiss mathematician, further developed this in the 1830s by studying minimal length networks in the plane, leading to the problem being named after him despite earlier contributions; Carl Friedrich Gauss also discussed related network optimizations in 1836, such as for railway layouts.[15] The 20th century saw formal advancements, including Vojtěch Jarník and Miloš Kössler's 1934 generalization to higher dimensions and the popularization by Richard Courant and Herbert Robbins in 1941, who erroneously attributed the core idea to Steiner.[14] Influential figures like Zdzisław Melzak introduced a finite algorithm in 1961, while Edgar Gilbert and Henry Pollak established modern theoretical foundations in 1968 for weighted variants with communication applications.[14] The graph-theoretic version gained prominence in the mid-20th century through studies at Bell Laboratories on network design, with formalization efforts in the 1950s addressing minimum connecting trees in discrete structures.[14] Richard Karp recognized the problem's computational hardness in 1972, proving it NP-complete and spurring algorithmic research; later, Alexander Zelikovsky advanced approximation techniques in the 1990s, achieving ratios like 11/6.[16][17] Early applications appeared in 19th-century geometry textbooks for constructing minimal figures, while post-World War II interest shifted to computational aspects, particularly VLSI circuit design in the 1970s for minimizing wire lengths.[14] In the 2020s, quantum-inspired methods, such as variational algorithms, have emerged for solving small instances exactly, leveraging quantum speedup potentials.Geometric Steiner Trees
Euclidean Steiner Tree
The Euclidean Steiner tree problem seeks to find a connected network of minimum total length interconnecting a given set of terminal points in the Euclidean plane , where additional vertices known as Steiner points may be introduced at optimal locations to reduce the overall length. The distance metric is the standard Euclidean distance, and the network must form a tree without cycles, ensuring all terminals are connected. Unlike the minimum spanning tree (MST), which only uses direct connections between terminals, the Steiner tree allows Steiner points to act as junctions, potentially shortening the total length by up to about 13.4% in the worst case. A key property of optimal Euclidean Steiner trees is that every Steiner point has exactly degree three, with the three incident edges forming pairwise angles of precisely 120 degrees to minimize local length. This geometric constraint implies that full Steiner tree components are built from equilateral triangles (for three terminals) or Y-shaped junctions at 120 degrees, ensuring no angle at a Steiner point is less than 120 degrees. Furthermore, no more than three edges meet at any Steiner point, preventing higher-degree vertices that would violate the minimality condition. These properties distinguish the continuous Euclidean case from discrete variants and enable geometric constructions.[18] For small instances, explicit constructions exist; for , the unique Steiner point is the Fermat-Torricelli point, located such that the total distance to the three terminals is minimized, coinciding with the point where each pair of lines to terminals subtends 120 degrees. This point can be constructed using Simpson's algorithm: on one side of the terminal triangle, erect an equilateral triangle outwardly, then draw the line from its apex to the opposite terminal; the Fermat-Torricelli point lies at the intersection of this line with the circumcircle of an equilateral triangle erected on another side. For larger , Melzak's method provides an iterative geometric construction for full Steiner trees by decomposing the topology into basic full components (like the case) and iteratively resolving Steiner points through vector additions and length computations, assuming a known tree topology.[19] A representative example is the four-terminal case with points at the corners of a convex quadrilateral, such as a square of side length 1. Here, the optimal Steiner tree introduces two Steiner points forming a "Steiner cross": one point connects the bottom-left and bottom-right terminals plus the vertical link to the second Steiner point, while the other connects the top-left and top-right terminals to that link, all at 120-degree angles. This configuration yields a total length of , compared to the MST length of 3 along three sides. The length of the minimal Euclidean Steiner tree satisfies for , where is the MST length; this Steiner ratio of is tight for equilateral triangle terminals, providing a fundamental bound on the relative efficiency of Steiner trees over spanning trees. Recent numerical advancements include machine learning-based approximations like Deep-Steiner (2022), which employs reinforcement learning and graph neural networks to generate near-optimal topologies and point locations efficiently for larger instances. For exact solutions and visualization, the GeoSteiner software (updated to version 5.3 in 2023) uses dynamic programming over full Steiner tree topologies combined with linear programming for geometric embedding, enabling computation and rendering of trees with up to 10,000 terminals, with potential integrations into CAD tools for engineering design visualization.[20][21]Rectilinear Steiner Tree
The rectilinear Steiner tree problem seeks to interconnect a given set of terminal points in the Euclidean plane using a minimum-length tree composed exclusively of horizontal and vertical line segments, measured under the (Manhattan) distance metric, with the option to introduce additional Steiner points at integer grid intersections to shorten the total wire length.[22] This formulation arises prominently in VLSI design and printed circuit board (PCB) routing, where wire segments must align with the axes due to manufacturing constraints on grid-based layouts. A foundational result is the Hanan theorem, which states that there exists an optimal rectilinear Steiner tree where all Steiner points lie at the intersections of the Hanan grid—a complete grid formed by drawing horizontal and vertical lines through each terminal's coordinates—thus bounding the search space to candidate points for terminals.[23] Additionally, in such trees, no Steiner point has degree greater than 4, as edges are restricted to four cardinal directions (up, down, left, right), preventing higher connectivity without violating the tree structure.[24][25] To solve the problem exactly, the Hanan grid is constructed and modeled as an edge-weighted graph where vertices are grid points and edges connect adjacent points with weights equal to their distances; finding the minimum Steiner tree in this graph then yields the optimal rectilinear solution.[26] For small instances, dynamic programming algorithms such as the Dreyfus-Wagner method can be applied to this graph, achieving exact solutions in exponential time in the number of terminals n, specifically O(3^n n^4) given the O(n^2) grid size, though practical implementations often prune the grid for efficiency.[27][28] Consider three terminals at coordinates , , and . The minimum spanning tree under L1 distance connects them directly with total length 4, for example by the vertical segment from to (length 2) and the connection from to via horizontal and vertical segments (length 2). Introducing a Steiner point at forms a T-junction: vertical segments from to (length 1) and from to (length 1), plus horizontal from to (length 1), yielding total length 3—a 25% reduction over the MST.[29] In general, for large , the minimal rectilinear Steiner tree length approximates times the MST length, reflecting the rectilinear Steiner ratio of , which bounds the worst-case performance of MST-based heuristics.[30][31] Recent advancements address real-world constraints in PCB design by extending the problem to obstacle-avoiding variants, where terminals must connect without intersecting rectangular obstacles, often using hybrid exact-heuristic methods like maze routing integrated with Steiner tree construction to minimize detours while preserving near-optimality.[32] Post-2010 research has focused on scalable algorithms for these cases, such as graph-based approaches that incorporate obstacle visibility graphs into the Hanan framework, achieving up to 20% wire length savings in industrial benchmarks compared to naive rerouting.[33]Graph Steiner Trees
Steiner Tree in Graphs
The Steiner tree problem in graphs is defined as follows: given an undirected connected graph with edge weights and a subset of terminals , find a subtree of minimum total weight that spans all vertices in , which may include additional vertices from as Steiner points to reduce the overall cost.[34][35] The solution must form a connected acyclic subgraph connecting exactly the terminals, with no redundant edges.[36] The input is typically provided as an edge-weighted graph, where weights represent distances or costs; special cases include unweighted graphs (all ), where the objective minimizes the number of edges, and complete graphs, where every pair of vertices has a direct edge, often assuming metric properties (satisfying the triangle inequality) to simplify analysis, though the general problem allows non-metric weights.[34][37] In non-metric graphs, negative weights are excluded to ensure well-defined optima, but violations of the triangle inequality can lead to more complex optimal structures.[35] Basic transformations reduce related problems to this graph formulation. For instance, the rectilinear Steiner tree problem can be transformed into a graph Steiner tree by constructing the Hanan grid, a graph whose vertices are all intersections of horizontal and vertical lines passing through the terminals, with edges connecting adjacent grid points; an optimal rectilinear solution exists within this grid graph.[38] Another key approach is dynamic programming over subsets, as in the Dreyfus-Wagner recursion, which computes the minimum cost to connect a subset using a vertex as a branching point. Specifically, let be the minimum cost of a Steiner tree spanning with branching at , defined recursively as for , where is similarly defined (with base cases if , otherwise, and for pairs using shortest paths). Then, the cost to connect starting from is , where is the shortest path distance. The full minimum Steiner tree cost for is .[36] This yields an exact solution in time, where , after precomputing all-pairs shortest paths.[27] A simple example illustrates the potential benefit of Steiner points: consider the complete graph on vertices with terminals and edge weights , ; the minimum spanning tree on terminals alone has weight 4 (e.g., edges 1-2 and 1-3), but including vertex 4 as a Steiner point yields a tree with edges 1-4, 2-4, 3-4 of total weight 3, connecting all terminals more efficiently.[36] Recent developments in the 2020s have extended the problem to streaming models for large-scale graphs, where edges arrive dynamically, and algorithms maintain approximate Steiner trees under insertions and deletions, such as in connectivity augmentation settings.Variants in Graphs
The directed Steiner tree problem extends the standard graph Steiner tree to directed graphs, where the goal is to find a minimum-cost arborescence rooted at a specified source that spans all given terminals.[39] This variant arises naturally in applications such as multicast routing in communication networks, where traffic flows unidirectionally from a source to multiple receivers.[39] The problem is NP-hard, as established in early complexity results, and approximation algorithms achieve factors like for terminals, improving on earlier bounds through techniques such as iterative rounding. In the rooted Steiner tree problem on undirected graphs, a specific terminal is designated as the root, and the objective is to find a minimum-cost tree that connects all terminals while respecting the rooted structure, often modeled as paths directed away from the root.[9] This formulation is particularly relevant in facility location scenarios, where the root represents a central facility that must connect to demand points via a tree of minimum total edge cost.[9] Approximation algorithms for this variant build on those for the unrooted case, achieving ratios like 1.55 through distance network embeddings and loss-contracted trees.[9] The prize-collecting Steiner tree problem introduces flexibility by allowing some terminals to be omitted, incurring a penalty equal to their associated prize value, to balance connectivity costs against coverage rewards.[40] Formally, given a graph with edge weights and prizes for each terminal , the objective is to minimize where is a tree connecting a subset of terminals including a root.[40] This variant models scenarios like network design with optional clients, where skipping low-value connections reduces overall expense. For example, on a path graph with terminals at nodes having varying prizes and uniform edge costs, the optimal solution may skip isolated low-prize terminals if the connecting edges exceed their value, effectively partitioning the path into connected segments that maximize net profit.[40] Seminal approximations achieve a factor of 2 using primal-dual methods, with recent iterative approaches improving to 1.7994.[40][41] The node-weighted Steiner tree problem shifts costs from edges to vertices, seeking a minimum-cost tree (in terms of selected vertices) that spans all terminals, which is useful in scenarios where resources are associated with nodes rather than links.[42] This variant admits a nearly optimal approximation ratio of for terminals via greedy agglomeration techniques, outperforming earlier bounds.[42] The Steiner forest problem generalizes the Steiner tree by requiring a minimum-cost forest consisting of multiple disjoint trees, each connecting a specified pair or group of terminals, applicable to multi-commodity network design.[43] Classical 2-approximations rely on primal-dual frameworks with synchronized dual updates, while recent breakthroughs achieve factors for any using advanced rounding of multicommodity flow relaxations.[43][44] Budgeted variants, such as the budgeted prize-collecting Steiner tree, constrain the total cost to a fixed budget while maximizing collected prizes, addressing resource-limited settings like telecommunications deployment.[45] Recent stochastic extensions model uncertainty in terminal demands or edge costs across scenarios, solvable via two-stage branch-and-cut methods that optimize first-stage decisions with recourse.[46] These incorporate probabilistic elements, such as random terminal arrivals, to yield expected-cost minimizers in uncertain graphs.[47]Algorithms
Exact Algorithms
Exact algorithms for the Steiner tree problem compute the optimal tree interconnecting a given set of terminals, either in graphs or geometric spaces, by exhaustively exploring solution spaces while leveraging mathematical programming or dynamic programming to ensure optimality. While classical methods like dynamic programming are limited to small instances (e.g., up to about 20 terminals), modern approaches using integer linear programming and specialized solvers can handle thousands of terminals in graphs and geometric settings, making them viable for larger practical applications such as VLSI design. They contrast with approximations by guaranteeing the global minimum but remain computationally intensive for very large instances. A foundational exact algorithm for the Steiner tree problem in graphs is the Dreyfus-Wagner dynamic programming approach, introduced in 1971.[36] This method computes the minimum cost to connect subsets of terminals via intermediate vertices, building solutions recursively from smaller subproblems. Specifically, it defines DP states as the minimum cost of a tree spanning a subset of terminals (where is the terminal set) and rooted at a vertex , using recurrences that combine costs over partitions of . The algorithm first computes all-pairs shortest paths, then fills the DP table by enumerating subset partitions, and finally connects the full terminal set. Its time complexity is , where is the number of terminals and the number of vertices, making it practical for sparse graphs with .[48] To illustrate, consider a small undirected graph with vertices , terminals , and edge weights such that shortest paths are precomputed. The DP table stores the minimum cost to connect subset rooted at . For singletons, , equals the shortest path from to 2 for , and similarly for . For pairs like , is minimized over as , where is the shortest-path distance (excluding direct edges to avoid cycles). The full tree cost is then , yielding the optimal Steiner tree by backtracking connections. Integer linear programming (ILP) provides another powerful framework for exact solutions, modeling the problem as selecting a subset of edges that connects all terminals while minimizing total weight. A standard undirected formulation uses binary variables for each edge , minimizing subject to connectivity constraints. One compact approach orients the graph arbitrarily and enforces flow conservation: for a chosen root , direct one unit of flow from to each other terminal using multicommodity flows, with arc capacities tied to undirected edge variables (e.g., capacity of arc and both bounded by ).[49] More precisely, the model can be stated as: subject to, for each terminal and each subset separating from (with flow conservation at non-terminals), where are flow variables for commodity , ensuring integer flows induce a tree.[49] Equivalent directed formulations avoid subsets by using node potentials or direct conservation equations. These ILPs are solved using branch-and-cut, which iteratively solves LP relaxations, generates valid inequalities (e.g., subtour elimination or metric inequalities to cut fractional solutions), and branches on variables. Seminal implementations, such as those by Polzin and Daneshmand, integrate cut separation routines for efficiency.[50] Modern exact solvers build on these ILP foundations within frameworks like SCIP, incorporating advanced heuristics, propagators, and parallelization. SCIP-Jack, an extension of SCIP specialized for Steiner trees, employs a sophisticated branch-and-cut pipeline with preprocessing reductions, Lagrangian relaxation for bounds, and implied constraint detection, solving instances with up to 10,000 terminals in sparse graphs within hours—far beyond classical DP limits.[51] As of 2025, parallel extensions using supercomputers with up to 43,000 cores have further expanded capabilities to even larger benchmarks on the SteinLib library.[52] It has set new benchmarks, resolving previously open instances through advancements in cut generation. Branch-and-bound techniques further refine exact searches by maintaining upper bounds (e.g., from greedy heuristics) and lower bounds to prune infeasible or suboptimal branches. A key lower bound is the minimum spanning tree (MST) on the complete graph of terminals, where edge weights are shortest-path distances in the original graph, providing a quick relaxation since the Steiner tree cost is at least this MST value.[53] These bounds are embedded in tree search frameworks, often combined with Lagrangian relaxation or reduced-cost fixing to accelerate convergence, as seen in early branch-and-bound solvers for graphs.[53] In geometric settings, exact algorithms for the Euclidean Steiner tree differ due to continuous Steiner point positions. The Gilbert-Pollak method, proposed in 1968, enumerates all possible full Steiner topologies—trees where non-terminals have degree exactly 3 and angles of 120 degrees—and optimizes coordinates by solving nonlinear equations derived from vector equilibrium at Steiner points.[54] This yields the minimal length for each topology, from which the global optimum is selected. The number of topologies grows super-exponentially (e.g., over 10^6 for 10 terminals), limiting practicality to small instances. Contemporary tools like GeoSteiner extend this by generating candidate topologies via branch-and-bound on intersection graphs and applying iterative numerical refinement (e.g., successive linear programming or coordinate descent) to minimize the nonlinear objective for fixed topologies, achieving exact solutions up to thousands of terminals, including benchmarks with 10,000 terminals.[55]Approximation Algorithms
The Steiner tree problem in graphs is NP-hard, prompting the development of polynomial-time approximation algorithms that guarantee solutions within a constant factor of the optimum. A foundational approach constructs a 2-approximation by first computing the metric closure of the graph restricted to the terminals—forming a complete graph where edge weights are shortest-path distances between terminals—then finding a minimum spanning tree (MST) on this closure. This MST connects all terminals with total cost at most twice the optimal Steiner tree cost, as the optimum itself induces a connected structure whose edges satisfy the triangle inequality in the metric.[56] Building on this, iterative methods improve the ratio by greedily incorporating promising Steiner vertices. Zelikovsky's 1993 algorithm achieves an 11/6 ≈ 1.833-approximation by starting with the terminals and iteratively adding a subset of up to three non-terminals that minimize the incremental cost of connecting components, repeating until all are linked; this leverages a lossy but bounded expansion of the terminal set.[57] Subsequent refinements, such as Robins and Zelikovsky's 2000 method, use randomized rounding of a linear programming relaxation combined with iterative improvements, yielding an approximation ratio ρ ≤ 1 + \frac{\ln 3}{2} ≈ 1.55, where ρ is defined as the algorithm's cost divided by the optimum.[9] Further advancements in the 2010s produced the current best constant-factor approximation for general graphs at ln 4 + ε < 1.39 for any ε > 0, via Byrka et al.'s iterative randomized rounding of an LP relaxation that balances depth-limited trees across a hierarchy of branching factors; this remains the state-of-the-art as of 2025.[58][59] These algorithms rely on lossless reductions from general graphs to metric instances: replacing the original graph with its metric closure preserves the optimum up to the 2-factor of the MST step, allowing metric approximations to lift directly while maintaining ratios. For the Euclidean variant, polynomial-time approximation schemes (PTAS) exist, achieving (1 + ε)-approximations for any ε > 0 in quasi-polynomial time via Arora's dynamic programming over perturbed grids that quadrangulate the plane and enforce portal-respecting structures.[60] As an illustrative example, consider four terminals at the corners of a unit square in the Euclidean plane: the MST on terminals has length 3 (three sides), while the optimal Steiner tree has length 1 + √3 ≈ 2.732 via two Steiner points. A simple star connection at the center yields length 2√2 ≈ 2.828 (ratio ≈ 1.035), and more sophisticated greedy methods can achieve better ratios before local refinements.Complexity
Classical Complexity
The Steiner tree problem in graphs is one of the 21 NP-complete problems identified by Karp in 1972, proven via a polynomial-time reduction from the exact cover by 3-sets (X3C) problem.[61] In this reduction, an instance of X3C consisting of a set with elements and a collection of 3-element subsets of is transformed into a graph where the terminals correspond to the elements of and additional vertices represent the subsets in . Specifically, for each subset , a gadget is constructed with a central vertex connected by edges of weight 1 to three leaves representing , ensuring that a minimum-weight Steiner tree of total weight exists if and only if there is an exact cover.[61] This establishes both the search and optimization versions as NP-hard. The decision version of the problem—given a graph, a set of terminals, and a budget , does there exist a Steiner tree of weight at most ?—is in NP, as a proposed tree can be verified in polynomial time by checking connectivity of the terminals and summing edge weights.[61] It is also NP-hard, following directly from the reduction above, where the budget is set to .[61] For special cases, the problem is solvable in polynomial time when the number of terminals , reducing to the shortest path problem between the two terminals, which can be computed using Dijkstra's algorithm in time or faster with Fibonacci heaps.[48] However, the problem remains NP-hard in restricted settings, such as the rectilinear Steiner tree problem with obstacles, where the base case without obstacles is already NP-complete via reduction from connected vertex cover, and obstacles introduce additional routing constraints that preserve hardness.[4][62] Regarding approximation, the problem is APX-complete, implying that no polynomial-time approximation scheme (PTAS) exists unless P = NP; in particular, there is no (1 + ε)-approximation algorithm for any fixed ε > 0. This inapproximability follows from the MAX-SNP-hardness established by reducing from problems like vertex cover, with refinements showing hardness within factors like 1.0106 unless NP ⊆ DTIME(n^{log log n}).Parameterized Complexity
The Steiner tree problem in graphs is fixed-parameter tractable when parameterized by the number of terminals k. The classic dynamic programming algorithm by Dreyfus and Wagner solves it exactly in time O(3^k n^O(1)), by computing minimum-cost trees spanning subsets of terminals and combining them via inclusion-exclusion. Subsequent improvements have refined the running time, with the best known exact algorithms achieving O(2^k k^2 n) or better dependence on k for unweighted instances, though the base remains greater than 2 for general cases. Under the Exponential Time Hypothesis (ETH), no algorithm exists with running time O(2^k n^{O(1)}), establishing a tight lower bound on the parameter dependence for exact solutions. While the standard undirected graph Steiner tree is FPT for parameter k, some generalizations exhibit higher complexity. For instance, the directed Steiner tree problem is W[63]-hard parameterized by k on general directed graphs, though it remains FPT on sparse classes like bounded degeneracy. The problem is also FPT when parameterized by clique-width tw, with algorithms running in time 3^k n^{O(1)} or tighter O(2^{O(tw log tw)} n) using representative sets and dynamic programming over decompositions. No polynomial-size kernel exists for the Steiner tree problem parameterized by k, unless the polynomial hierarchy collapses. Kernelization efforts often rely on crown reductions, which identify structures like independent sets in non-terminals that can be collapsed or reduced while preserving the optimum; for example, if an independent set of non-terminals has size exceeding a function of k, one can reduce it by matching to terminals via shortest paths, yielding bounded instance size in restricted settings like bounded solution size. For parameterizations beyond k, the problem is in XP (solvable in n^{f(p)} time for parameter p) when parameterized by treewidth tw, via dynamic programming over tree decompositions of width tw. However, when parameterized by solution size alone, the problem is para-NP-hard, admitting XP algorithms (e.g., enumerating up to binomial(n, k) candidate vertex sets and checking tree connectivity in polynomial time) but no FPT algorithm unless P = NP.Parameterized Approximation
The parameterized approximation approach for the Steiner tree problem seeks to balance efficiency and solution quality by providing (1 + ε)-approximations in fixed-parameter tractable time f(ε, k) · n^{O(1)}, where k is the number of terminals and ε > 0 is a fixed precision parameter. This framework is particularly valuable when the number of terminals is moderate, allowing algorithms to exploit the parameter for subexponential dependence on k while maintaining polynomial scaling in the input size n. Such schemes often build on integer linear programming (ILP) formulations or dynamic programming, with randomized rounding techniques used to convert relaxations into integral solutions while preserving the approximation guarantee.[64] A key result in this area is an efficient parameterized approximation scheme (EPAS) for instances where the optimal solution uses a small number of Steiner vertices p (noting that p ≤ k - 2 in any tree), achieving a (1 + ε)-approximation in time 2^{O(p^2 / ε^4)} · n^{O(1)}. The algorithm proceeds by iteratively contracting star-like structures to reduce the instance, followed by exact dynamic programming on the kernelized graph to connect the remaining terminals, ensuring the overall cost stays within (1 + ε) of optimal. This circumvents known hardness barriers for polynomial kernels and yields a polynomial-size approximate kernelization scheme of size O(((p + c)/ε)^{2^{O(1/ε)}}), where c is the number of connected components in the terminals.[64][65] In graphs of bounded treewidth, such as planar graphs, bidimensionality provides a powerful framework for parameterized approximations. For the Steiner forest variant (which generalizes Steiner tree), a PTAS exists with running time f(ε, w) · n^{O(1)} for treewidth parameter w, combining dynamic programming over tree decompositions with careful approximation of local subproblems to handle the global connectivity. This yields a (1 + ε)-approximation for Steiner tree on planar graphs, where w = O(1), and extends to minor-closed families via bounded treewidth reductions.[66][67] Trade-offs between approximation ratio and running time are evident in various schemes; for instance, relaxing the precision allows for smaller exponential bases in the FPT runtime, such as achieving ratios better than constant factors with time O^*((k/ε)^{O(k)}), though exact schemes often prioritize (1 + ε) guarantees via tailored rounding or enumeration. As an illustrative example for small k, the linear programming relaxation of the standard ILP for Steiner tree—where variables indicate edge usage in a multicommodity flow formulation—can be solved and rounded randomly to yield a (1 + ε)-approximate tree, with the rounding probability adjusted to ensure high success while keeping the expected cost close to the LP optimum.[5] Recent progress includes a quasi-polynomial time approximation scheme (QPTAS) for Steiner tree in minor-free graphs (excluding a fixed minor H), delivering a (1 + ε)-approximation in time n^{O(\log^2 k / \log \log k)} by bypassing explicit surface embeddings and using randomized low-distortion embeddings into bounded-dimensional metrics. This improves upon prior PTAS results for planar and bounded-genus graphs, offering scalability for larger k in structured graph classes.[68]Related Concepts
Steiner Ratio
The Steiner ratio of a metric space is defined as the infimum over all finite terminal sets of the ratio of the length of the minimum Steiner tree to the length of the minimum spanning tree on , denoted . This ratio quantifies the worst-case relative efficiency of the MST as an approximation to the Steiner tree, since always holds, implying . The value of depends on the underlying metric and provides a fundamental lower bound on how much shorter a Steiner tree can be compared to its MST counterpart. In the Euclidean plane, the Steiner ratio is . This value was conjectured by Gilbert and Pollak in 1968 and rigorously proved by Du and Hwang in 1990 through an exhaustive enumeration of all possible full Steiner tree topologies for small numbers of terminals, combined with geometric analysis showing that no configuration achieves a smaller ratio. The bound is tight, achieved in the limit by configurations of terminals approaching the vertices of an equilateral triangle; for an equilateral triangle with side length 1, the MST has length 2, while the Steiner tree introduces a central Steiner point and has length , yielding the ratio . In the rectilinear plane (using metric), the Steiner ratio is exactly . This was established by Hwang in 1976 via a characterization of optimal rectilinear Steiner trees and proof that the MST length is at most times the Steiner tree length in the worst case. The ratio is the infimum, approached by certain configurations such as terminals aligned along perpendicular axes. For general graphs, the Steiner ratio is 1 in metric completions (where shortest-path distances satisfy the triangle inequality, making the MST a feasible but not always optimal Steiner tree), but can be strictly less than 1 in non-metric graphs where Steiner points enable disproportionately shorter connections. The Gilbert-Pollak conjecture specifically addressed the Euclidean plane case and was resolved affirmatively, but generalizations to higher dimensions remain open. It is conjectured that in for , the infimum is achieved by the regular simplex configuration, with numerical evidence supporting bounds approaching but not below certain values derived from simplex vertices. Recent computational verifications in the 2020s, including exact calculations for small simplices, confirm that for and provide tighter lower bounds through exhaustive searches over low-terminal sets.Applications and Extensions
The Steiner tree problem has prominent applications in very-large-scale integration (VLSI) design, where the rectilinear variant is employed to minimize wire length in chip routing and interconnect planning. In global and detailed routing stages, Steiner points are added to connect terminals (e.g., circuit components) more efficiently than spanning trees, reducing estimated wireload and congestion during physical synthesis and floorplanning. Algorithms like FLUTE provide fast, accurate approximations for nets up to degree 100, outperforming heuristics such as Batched 1-Steiner with errors under 0.07% on ISPD98 benchmarks involving millions of nets.[69] In phylogenetics, Steiner trees model evolutionary relationships by treating Steiner nodes as hypothetical ancestors that connect observed species (terminals) while minimizing total branch length, akin to maximum parsimony criteria. This probabilistic formulation assigns nucleotide or amino acid distributions to nodes, enabling reconstruction of phylogenetic trees that capture non-unique evolutionary pathways and ancestral states more flexibly than classical methods.[70] For network design in telecommunications, the prize-collecting Steiner tree variant optimizes backbone infrastructure by selecting edges to connect high-value terminals (e.g., client sites) while penalizing unconnected prizes, thus balancing installation costs against revenue in local access networks. This approach is particularly useful for fiber-optic layouts on street-map graphs, where it generates cost-efficient topologies via 2-approximation algorithms enhanced with pruning techniques, achieving gaps under 3% on practical instances.[71] Extensions of the Steiner tree problem address real-world uncertainties and complexities. The stochastic variant incorporates unreliable edges that fail randomly, formulating chance-constrained models to ensure connectivity among terminals with probability at least 1-ε, using scenario-based approximations for robust designs in broadband wireless or supply chain networks. Multi-layer formulations generalize to three-dimensional routing, avoiding obstacles across multiple planes to construct minimal trees, with applications in advanced VLSI stacking and emerging 3D printing topologies for layered structures.[72][73] In the 2020s, Steiner trees have found use in quantum circuit design, where weighted variants synthesize controlled-NOT (CNOT) gates by connecting qubit subsets under hardware connectivity limits, reducing gate counts by up to 10% via Gaussian elimination heuristics. Applications in social network analysis leverage centrality-based heuristics to compute minimal subgraphs connecting influential nodes, aiding tasks like influence propagation with up to 15% improvement in solution quality on benchmark graphs.[74][7] A practical example arises in printed circuit board (PCB) layout, where Steiner points optimize multi-net routing to reduce total wire length over spanning tree alternatives, enhancing signal integrity and manufacturing yield in high-density designs. Recent AI/ML integrations, such as graph neural network-assisted Monte Carlo tree search, provide near-optimal approximations for rectilinear Steiner trees, surpassing 2-approximation baselines on diverse graphs and enabling scalable solutions for VLSI routing since 2023.[75][76]References
- The Steiner tree problem is defined as the challenge of finding a tree that interconnects a specific subset of vertices with the minimum aggregate cost, ...