








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The steiner tree problem is a classic optimization problem in graph theory, where the goal is to find a minimum-weight tree that spans all required vertices (r) and possibly some steiner vertices (s) in a weighted graph. This problem goes back to gauss and is np-hard. Approximation algorithms like the minimum spanning tree heuristic and christofides' algorithm can provide suboptimal solutions with guaranteed approximation ratios.
Typology: Study notes
1 / 14
This page cannot be seen from the preview
Don't miss anything!









Given: A graph G = (V , E ), edges weighted by c, where c satisfies triangle inequality
c(x, y ) + c(y , z) ≥ c(x, z)
and V is partitioned as V = R ∪ S (R = required vertices, terminals; S = Steiner vertices), Find: A minimum-weight tree that spans all of R (and possibly some of S).
Triangle inequality implies G is complete (if G is not complete, we may still make it so for the purpose of this problem by using instead its metric completion: for every pair of vertices u, v , add an edge of weight d(u, v ), where d is the length of the shortest path between u and v. NP-hard optimization problem Problem goes back to Gauss (early 19th century) Often considered in the Euclidean plane; then, R only given, S implicitly all the vertices of the plane
Since G is complete, we can try to ignore the Steiner points: Algorithm: Find a minimum spanning tree on R, use this as an “approximate” Steiner tree. How good (or bad) is this?
(^1) Double every edge of the tree.
(Note: the image shows Steiner vertices in the tree; this may happen if, as mentioned above, we had to form the metric completion of the original input graph.) (^2) This graph has all even degrees; find an Eulerian tour (possible in time O(n)). (^3) The cost of the tour: ≤ 2 ·OPT. (^4) Now find a Hamilton tour of R by shortcutting around vertices of S in the tree and previously visited vertices of R
The analysis is actually tight. (Example?) More complicated algorithms can improve the approximation guarantee to 11/6 (instead of 2) [Zelikovsky] Best known guarantees: for the general graph problem: roughly 5/3 (3/2 is the goal, but seems unreachable right now) if the terminals are in the Euclidean plane, 1 + is possible for any > 0 (we’ll see this later in the course)
Given: A graph G = (V , E ), edges weighted by c, where c satisfies triangle inequality
c(x, y ) + c(y , z) ≥ c(x, z)
Find: A minimum-weight cycle that visits every vertex exactly once. Note: Solution exists because G is wlog complete If no triangle inequality, no approximation ratio is possible unless P=NP. (Proof sketch on the board.)
The same argument as for the Steiner tree problem: (^1) cost(T ) ≤OPT (Take an optimal TSP tour, remove an edge, giving an MST of smaller cost.) (^2) cost(T ) ≤ 2OPT (^3) Shortcutting gives cost(C) ≤ 2OPT. Tight example?
Where do we lose factors in the analysis? Answer: Making an Euler tour from T takes a factor of 2 immediately. Note: ANY Eulerian graph built on top of T would work! So: Can we find a cheaper Eulerian graph containing T?
(^1) Find an MST T of G. (^2) Find a minimum-weight matching on the set of odd degree vertices of T , and add the matching edges to T. (^3) Find an Euler tour T on this new graph. (^4) Output the tour that visits vertices of G in order of their first appearance in T. Let C be this tour. Claim: The above is a 3/2-approximation algorithm for metric TSP.
The same argument as before: (^1) cost(T ) ≤OPT (Take an optimal TSP tour, remove an edge, giving an MST of smaller cost.) (^2) cost(T ) ≤ 3 /2OPT (^3) Shortcutting gives cost(C) ≤ 3 /2OPT. The missing piece: The minimum-weight perfect matching on the set of odd-degree vertices of T has weight ≤OPT/2. Argument: on the board.