Algorithm Search⌘K

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 G=(V,E)G = (V, E) be a finite undirected graph with a weight w(e)≥0w(e) \ge 0 on each edge, and let S⊆VS \subseteq V be the set of terminals, with s=∣S∣≥2s = |S| \ge 2. Parallel edges and self-loops are allowed, and weights may tie. A Steiner tree for SS is a tree in GG that contains every vertex of SS. Let OPT\mathrm{OPT} be the least weight of a Steiner tree; it exists if and only if all terminals lie in one component of GG. For u,v∈Vu, v \in V, let d(u,v)d(u, v) be the shortest path distance in GG. For s≤1s \le 1 the algorithm returns the empty tree, which is optimal, so assume s≥2s \ge 2.

The algorithm (lines L1 to L6 of the page) computes:

  • L1 and L2: the distance graph G1G_1, the complete graph on SS with weight d(a,b)d(a, b) on the edge abab;
  • L3: a minimum spanning tree T1T_1 of G1G_1;
  • L4: the subgraph GSG_S of GG formed by one shortest path PabP_{ab} for each edge abab of T1T_1;
  • L5: a minimum spanning tree T2T_2 of GSG_S;
  • L6: the tree THT_H obtained from T2T_2 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 d(a,b)d(a, b) is infinite, and the algorithm returns NONE, which is correct, since no Steiner tree exists. Otherwise all distances are finite.

Lemma 1. GSG_S is connected and contains every terminal.

Proof. T1T_1 is a spanning tree of the complete graph G1G_1, so it is connected and contains all of SS. Each edge abab of T1T_1 is replaced by a path PabP_{ab} of GG from aa to bb. A path is connected, and two paths for edges of T1T_1 that share a terminal share a vertex, so the union of the paths is connected, as T1T_1 is. □\square

So T2T_2, a minimum spanning tree of the connected graph GSG_S, is a tree that contains every terminal.

Lemma 2. Line L6 stops, and THT_H 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 ∣T2∣|T_2| of them. When the loop stops, no leaf is a non-terminal. □\square

Part 2: the weight bound

Lemma 3. w(TH)≤w(T2)≤w(GS)≤w(T1)w(T_H) \le w(T_2) \le w(G_S) \le w(T_1).

Proof. The first inequality holds because the weights are non-negative and TH⊆T2T_H \subseteq T_2. The second because T2⊆GST_2 \subseteq G_S. For the third, each edge of GSG_S lies on some path PabP_{ab}, so w(GS)≤∑ab∈T1w(Pab)=∑ab∈T1d(a,b)=w(T1)w(G_S) \le \sum_{ab \in T_1} w(P_{ab}) = \sum_{ab \in T_1} d(a, b) = w(T_1). □\square

Lemma 4. Let T∗T^* be an optimal Steiner tree with ll leaves. Then w(T1)≤2(1−1/l) OPTw(T_1) \le 2 (1 - 1/l)\, \mathrm{OPT}.

Proof. First, we may assume that every leaf of T∗T^* is a terminal: deleting a non-terminal leaf does not raise the weight, so it keeps T∗T^* 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 2(1−1/l)2(1 - 1/l). Since T∗T^* contains at least two terminals, it has at least one edge and l≥2l \ge 2 leaves.

Root T∗T^* at a leaf r0r_0 and walk around it in depth-first order, so that each edge is used twice, once down and once up. This closed walk WW has length 2 w(T∗)2\, w(T^*) and meets the leaves in a cyclic order r0=x1,x2,…,xlr_0 = x_1, x_2, \ldots, x_l. Cut WW at the leaves into ll segments, from xjx_j to xj+1x_{j+1}, and from xlx_l back to x1x_1.

Each edge lies in two different segments. For an edge from a vertex pp to its child cc, the walk goes down the edge just before it reaches the first leaf ff below cc, and goes up the edge just after it leaves the last leaf gg below cc. The down step lies in the segment that ends at ff, and the up step in the segment that starts at gg. These are the same segment only if that segment runs from gg to ff, which would be the closing segment from xlx_l to x1=r0x_1 = r_0 with f=r0f = r_0. But r0r_0 is not below cc. So the two steps lie in different segments.

The segments have total length 2 w(T∗)2\, w(T^*), so the longest one has length at least 2 w(T∗)/l2\, w(T^*)/l. Delete it. What is left is one walk W′W', the remaining segments in cyclic order, of length at most 2(1−1/l) w(T∗)2 (1 - 1/l)\, w(T^*). By the claim above, every edge of T∗T^* still lies on W′W', so W′W' passes through every vertex of T∗T^*, and in particular through every terminal.

List the terminals in the order in which W′W' first meets them: t1,t2,…,tst_1, t_2, \ldots, t_s. The part of W′W' between tit_i and ti+1t_{i+1} is a walk in GG from tit_i to ti+1t_{i+1}, so its length is at least d(ti,ti+1)d(t_i, t_{i+1}), and these parts do not overlap. So the path t1t2⋯tst_1 t_2 \cdots t_s in G1G_1 has weight at most the length of W′W'. It is a spanning tree of G1G_1, and T1T_1 is a minimum one, so

w(T1)≤∑i=1s−1d(ti,ti+1)≤∣W′∣≤2(1−1l)w(T∗)=2(1−1l)OPT.□w(T_1) \le \sum_{i=1}^{s-1} d(t_i, t_{i+1}) \le |W'| \le 2 \left(1 - \frac{1}{l}\right) w(T^*) = 2 \left(1 - \frac{1}{l}\right) \mathrm{OPT}. \qquad \square

The theorem

Theorem. For non-negative weights and s≥2s \ge 2 terminals in one component, the algorithm stops and returns a Steiner tree THT_H for SS whose leaves are all terminals and whose weight satisfies

w(TH)≤2(1−1l)OPT≤2(1−1s)OPT,w(T_H) \le 2 \left(1 - \frac{1}{l}\right) \mathrm{OPT} \le 2 \left(1 - \frac{1}{s}\right) \mathrm{OPT},

where ll 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 l≤sl \le s. ■\blacksquare

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 w≥0w \ge 0.

Back to Kou-Markowsky-Berman algorithm