Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Steiner tree problem

From Wikipedia, the free encyclopedia
On short connecting networks with added vertices

Steiner tree for three pointsA,B, andC (note there are no direct connections betweenA,B,C). The Steiner pointS is located at theFermat point of thetriangleABC.
Solution for four points—there are two Steiner points,S1 andS2

Incombinatorial mathematics, theSteiner tree problem, orminimum Steiner tree problem, named afterJakob Steiner, is anumbrella term for a class of problems incombinatorial 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 predefinedobjective function. One well-known variant, which is often used synonymously with the term Steiner tree problem, is theSteiner tree problem in graphs. Given anundirected graph with non-negative edge weights and a subset of vertices, usually referred to asterminals, the Steiner tree problem in graphs requires atree 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 theEuclidean Steiner tree problem and therectilinear 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 theminimum 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 inpolynomial time, no such solution is known for the Steiner tree problem. Itsdecision variant, asking whether a given input has a tree of weight less than some given threshold, isNP-complete, which implies that the optimization variant, asking for the minimum-weight tree in a given graph, isNP-hard. In fact, the decision variant was amongKarp's original 21 NP-complete problems. The Steiner tree problem in graphs has applications incircuit layout ornetwork 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 pessimisticworst-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]
Minimum Steiner trees of vertices of regular polygons withN = 3 to 8 sides. The lowest network lengthL forN > 5 is the circumference less one side. Squares represent Steiner points.

The original problem was stated in the form that has become known as theEuclidean Steiner tree problem orgeometric Steiner tree problem: GivenN points in theplane, the goal is to connect them by lines of minimum total length in such a way that any two points may be interconnected byline segments either directly or via otherpoints and line segments.

While the problem is named after Steiner, it has first been posed in 1811 byJoseph 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 forN = 3 has long been considered, and quickly extended to the problem of finding astar network with a single hub connecting to all of theN given points, of minimum total length.However, although the full Steiner tree problem was formulated in a letter byGauss, its first serious treatment was in a 1934 paper written in Czech byVojtěch Jarník andMiloš Kössler [cs]. 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 adegree of three, and the three edges incident to such a point must form three 120 degree angles (seeFermat point). It follows that the maximum number of Steiner points that a Steiner tree can have isN − 2, whereN is the initial number of given points. (all these properties were established already by Gergonne.)

ForN = 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 theFermat point; otherwise the solution is given by the two sides of the triangle which meet on the angle with 120 or more degrees.

For generalN, the Euclidean Steiner tree problem isNP-hard, and hence it is not known whether anoptimal solution can be found by using apolynomial-time algorithm. However, there is apolynomial-time approximation scheme (PTAS) for Euclidean Steiner trees, i.e., anear-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]
Main article:Rectilinear Steiner tree

The rectilinear Steiner tree problem is a variant of the geometric Steiner tree problem in the plane, in which theEuclidean distance is replaced with therectilinear distance. The problem arises in thephysical design ofelectronic design automation. InVLSI 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 ofweighted graphs. The prototype is, arguably, theSteiner tree problemin graphs. LetG = (VE) be an undirected graph with non-negative edge weights c and letS ⊆ V be a subset of vertices, calledterminals. ASteiner tree is a tree inG that spansS. There are two versions of the problem: in theoptimization problem associated with Steiner trees, the task is to find a minimum-weight Steiner tree; in thedecision problem the edge weights are integers and the task is to determine whether a Steiner tree exists whose total weight does not exceed a predefinednatural numberk. The decision problem is one ofKarp's 21 NP-complete problems; hence the optimization problem isNP-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 whenG is acomplete graph, each vertexv ∈ V corresponds to a point in ametric space, and the edge weightsw(e) for eache ∈ E correspond to distances in the space. Put otherwise, the edge weights satisfy thetriangle inequality. This variant is known as themetric 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 isAPX-complete, i.e., unlessP = NP, it is impossible to achieve approximation ratios that are arbitrarily close to 1 in polynomial time. There is a polynomial-time algorithm thatapproximates the minimum Steiner tree to within a factor ofln(4)+ε1.386{\displaystyle \ln(4)+\varepsilon \approx 1.386};[11]however, approximating within a factor96/951.0105{\displaystyle 96/95\approx 1.0105} 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 andAlexander Zelikovsky constructed PTAS for the dense instances of Steiner Tree problems.[14]

In a special case of the graph problem, the Steiner tree problem forquasi-bipartite graphs,S is required to include at least one endpoint of every edge inG.

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 thek-edge-connected Steiner network problem and thek-vertex-connected Steiner network problem, where the goal is to find ak-edge-connected graph or ak-vertex-connected graph rather than any connected graph. A further well-studied[16] generalization is thesurvivable 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 graphG is the complete graph in which each edge is weighted by the shortest path distance between the nodes inG. This algorithm produces a tree whose weight is within a2 − 2/t factor of the weight of the optimal Steiner tree wheret 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 O(|S| |V|²)polynomial time by first solving theall-pairs shortest paths problem to compute the metric closure, then by solving theminimum 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 inS that has not yet been added. This algorithm also has O(|S| |V|²) running time, and produces a tree whose weight is within2 − 2/|S| 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 toKruskal's algorithm for computing a minimum spanning tree, by starting from a forest of |S| disjoint trees, and "growing" them simultaneously using a breadth-first search resemblingDijkstra'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 aHeap (data structure) to implement the priority queue and adisjoint-set data structure to track to which tree each visited vertex belongs, this algorithm achieves O(|E| log |V|) running time, although it does not improve on the2 − 2/t 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 the2 − 2/t 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 anln(4)+ε1.39{\displaystyle \ln(4)+\varepsilon \leq 1.39} 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 befixed-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 is3|S|poly(n){\displaystyle 3^{|S|}{\text{poly}}(n)}, wheren is the number of vertices of the graph andS is the set of terminals. Faster algorithms exist, running inc|S|poly(n){\displaystyle c^{|S|}{\text{poly}}(n)} time for anyc>2{\displaystyle c>2} or, in the case of small weights,2|S|poly(n)W{\displaystyle 2^{|S|}{\text{poly}}(n)W} time, whereW is the maximum weight of any edge.[23][24] A disadvantage of the aforementioned algorithms is that they useexponential space; there exist polynomial-space algorithms running in2|S|poly(n)W{\displaystyle 2^{|S|}{\text{poly}}(n)W} time and(7.97)|S|poly(n)logW{\displaystyle (7.97)^{|S|}{\text{poly}}(n)\log W} time.[25][26]

It is known that the general graph Steiner tree problem does not have a parameterized algorithm running in2ϵtpoly(n){\displaystyle 2^{\epsilon t}{\text{poly}}(n)} time for anyϵ<1{\displaystyle \epsilon <1}, wheret is the number of edges of the optimal Steiner tree, unless theSet cover problem has an algorithm running in2ϵnpoly(m){\displaystyle 2^{\epsilon n}{\text{poly}}(m)} time for someϵ<1{\displaystyle \epsilon <1}, wheren andm 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 apolynomial kernel unlesscoNPNP/poly{\displaystyle {\textsf {coNP}}\subseteq {\textsf {NP/poly}}}, 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 apolynomial kernel unlesscoNPNP/poly{\displaystyle {\textsf {coNP}}\subseteq {\textsf {NP/poly}}} parameterized by the number of terminals, it does admit apolynomial-sized approximate kernelization scheme (PSAKS): for anyε>0{\displaystyle \varepsilon >0} it is possible to compute a polynomial-sized kernel, which looses only a1+ε{\displaystyle 1+\varepsilon } factor in the solution quality.[29]

When parameterizing the graph Steiner tree problem by the numberp of non-terminals (Steiner vertices) in the optimum solution, the problem isW[1]-hard (in contrast to the parameterization by the number of terminals, as mentioned above). At the same time the problem isAPX-complete and thus does not admit aPTAS, unlessP = NP. However, aparameterized approximation scheme exists, which for anyε>0{\displaystyle \varepsilon >0} computes a(1+ε){\displaystyle (1+\varepsilon )}-approximation in2O(p2/ε4)nO(1){\displaystyle 2^{O(p^{2}/\varepsilon ^{4})}n^{O(1)}} time.[30] Also a PSAKS exists for this parameterization.[30]

Steiner ratio

[edit]

TheSteiner ratio is thesupremum 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, theGilbert–Pollak conjecture is that the Steiner ratio is231.1547{\displaystyle {\tfrac {2}{\sqrt {3}}}\approx 1.1547}, the ratio that is achieved by three points in anequilateral 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 acceptedupper bound for the problem is 1.2134, byChung & Graham (1985).

For the rectilinear Steiner tree problem, the Steiner ratio is exactly32{\displaystyle {\tfrac {3}{2}}}, 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, forL1{\displaystyle L_{1}} distance the square should be tilted at45{\displaystyle 45^{\circ }} with respect to the coordinate axes, while forL{\displaystyle L_{\infty }} distance the square should be axis-aligned.

See also

[edit]

Notes

[edit]
  1. ^Rehfeldt & Koch (2023).
  2. ^Juhl et al. (2018).
  3. ^Marcus Brazil, Ronald L. Graham, Doreen A. Thomas and Martin Zachariasen, "On the history of the Euclidean Steiner tree problem",JSTOR 24569605
  4. ^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.
  5. ^Crescenzi et al. (2000).
  6. ^Sherwani (1993), p. 228.
  7. ^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.
  8. ^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.
  9. ^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.
  10. ^Vazirani (2003), pp. 27–28.
  11. ^abByrka et al. (2010).
  12. ^Chlebík & Chlebíková (2008).
  13. ^Berman, Karpinski & Zelikovsky (2009).
  14. ^Karpinski & Zelikovsky (1998).
  15. ^Smith & Winter (1995), p. 361.
  16. ^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.
  17. ^Paolini & Stepanov (2012).
  18. ^Kou, Markowsky & Berman (1981).
  19. ^Takahashi & Matsuyama (1980).
  20. ^Wu, Widmayer & Wong (1986).
  21. ^Dreyfus & Wagner (1971).
  22. ^Levin (1971).
  23. ^Fuchs et al. (2007).
  24. ^Björklund et al. (2007).
  25. ^Lokshtanov & Nederlof (2010).
  26. ^Fomin et al. (2015).
  27. ^Cygan et al. (2016).
  28. ^Dom, Lokshtanov & Saurabh (2014).
  29. ^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, USA: Association for Computing Machinery. pp. 224–237.doi:10.1145/3055399.3055456.ISBN 978-1-4503-4528-6.S2CID 14599219.
  30. ^abDvořá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.
  31. ^Ganley (2004).
  32. ^The New York Times, 30 Oct 1990, reported that a proof had been found, and thatRonald Graham, who had offered $500 for a proof, was about to mail a check to the authors.
  33. ^Ivanov & Tuzhilin (2012).
  34. ^Hwang (1976).

References

[edit]

External links

[edit]
Wikimedia Commons has media related toSteiner tree problem.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Steiner_tree_problem&oldid=1265880984"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp