Proofs: Kou-Markowsky-Berman algorithm
These are the human proofs of Kou-Markowsky-Berman algorithm, at full length.
The Kou-Markowsky-Berman algorithm returns a Steiner tree of weight at most 2(1 - 1/l) times the optimum full
This proof shows: correctness, termination.
Let be a finite undirected graph with a weight on each edge, and let be the set of terminals, with . Parallel edges and self-loops are allowed, and weights may tie. A Steiner tree for is a tree in that contains every vertex of . Let be the least weight of a Steiner tree; it exists if and only if all terminals lie in one component of . For , let be the shortest path distance in . For the algorithm returns the empty tree, which is optimal, so assume .
The algorithm (lines L1 to L6 of the page) computes:
- L1 and L2: the distance graph , the complete graph on with weight on the edge ;
- L3: a minimum spanning tree of ;
- L4: the subgraph of formed by one shortest path for each edge of ;
- L5: a minimum spanning tree of ;
- L6: the tree obtained from by deleting, again and again, a leaf that is not a terminal.
Part 1: the output is a Steiner tree
If two terminals lie in different components, some distance is infinite, and the algorithm returns NONE, which is correct, since no Steiner tree exists. Otherwise all distances are finite.
Lemma 1. is connected and contains every terminal.
Proof. is a spanning tree of the complete graph , so it is connected and contains all of . Each edge of is replaced by a path of from to . A path is connected, and two paths for edges of that share a terminal share a vertex, so the union of the paths is connected, as is.
So , a minimum spanning tree of the connected graph , is a tree that contains every terminal.
Lemma 2. Line L6 stops, and is a tree that contains every terminal, in which every leaf is a terminal.
Proof. Each deletion removes a leaf vertex and its one edge from a tree, which leaves a tree, and does not remove a terminal. Each deletion removes an edge, so there are at most of them. When the loop stops, no leaf is a non-terminal.
Part 2: the weight bound
Lemma 3. .
Proof. The first inequality holds because the weights are non-negative and . The second because . For the third, each edge of lies on some path , so .
Lemma 4. Let be an optimal Steiner tree with leaves. Then .
Proof. First, we may assume that every leaf of is a terminal: deleting a non-terminal leaf does not raise the weight, so it keeps optimal, and it does not raise the number of leaves (the parent of the deleted leaf may become a leaf in its place), which can only lower the bound . Since contains at least two terminals, it has at least one edge and leaves.
Root at a leaf and walk around it in depth-first order, so that each edge is used twice, once down and once up. This closed walk has length and meets the leaves in a cyclic order . Cut at the leaves into segments, from to , and from back to .
Each edge lies in two different segments. For an edge from a vertex to its child , the walk goes down the edge just before it reaches the first leaf below , and goes up the edge just after it leaves the last leaf below . The down step lies in the segment that ends at , and the up step in the segment that starts at . These are the same segment only if that segment runs from to , which would be the closing segment from to with . But is not below . So the two steps lie in different segments.
The segments have total length , so the longest one has length at least . Delete it. What is left is one walk , the remaining segments in cyclic order, of length at most . By the claim above, every edge of still lies on , so passes through every vertex of , and in particular through every terminal.
List the terminals in the order in which first meets them: . The part of between and is a walk in from to , so its length is at least , and these parts do not overlap. So the path in has weight at most the length of . It is a spanning tree of , and is a minimum one, so
The theorem
Theorem. For non-negative weights and terminals in one component, the algorithm stops and returns a Steiner tree for whose leaves are all terminals and whose weight satisfies
where is the number of leaves of any optimal Steiner tree. If the terminals lie in different components, it returns NONE.
Proof. Lemmas 1 and 2 give the tree, Lemmas 3 and 4 the first inequality. For the second, an optimal tree with all leaves terminals has .
Ties. Nothing above uses distinct weights or a particular choice of shortest paths or minimum spanning trees, so every tie rule gives the same guarantee. Zero weights are allowed; negative weights are not, because Lemma 3 and the shortest paths need .