A Faster Approximation Algorithm For The Steiner Problem
A Faster Approximation Algorithm For The Steiner Problem In Graphs Kurt Mehlhorn. Information Processing Letters, 27(3): 125– 128, 1988. 高等演算法二 92321524 吳明峰 1
Introduction n Definition: Steiner Tree ¡ n n n A Steiner tree is a tree in a distance graph which spans a given subset of vertices (Steiner Points) with the minimal total distance on its edges INPUT: an undirected distance graph G=(V, E, d) and a set of Steiner points S. OUTPUT: a Steiner tree, T, for G and S. (Minimum-cost tree T within G spanning S. ) The problem has been shown to be NPcomplete in 1972. 2
Introduction n n L. Kou, G. Markowsky, and L. Berman. A fast algorithm for Steiner trees. Acta Informatica, 15: 141 --145, 1981. Time complexity: L is the mininmun number of leaves in any Steiner minimal tree for the given graph. ¡ 3
Algorithm H: Steiner Tree n n n INPUT: an undirected distance graph G=(V, E, d) and a set of Steiner points. OUTPUT: a Steiner tree, T, for G and S. (Minimum-cost tree T within G spanning S. ) L. Kou, G. Markowsky, and L. Berman. A fast algorithm for Steiner trees. Acta Informatica, 15: 141 --145, 1981. 4
Step 1 n n Construct the complete distance G 1=(V 1, E 1, d 1), where V 1=S and, for every (vi, vj) E 1 , d 1(vi, vj) is equal to the distance of a shortest path form vi to vj in G. Example: Let S=(V 1, V 2 , V 3 , V 4) Dijkstra’s algorithm Using Fredman and Tarjan’s [1] implementation of Dijkstra’s algorithm. G G 1 [1] M. L. Fredman and R. E. Tarjan, Fibonacci heaps 5 and their uses in improved network optimization algorithms, (IEEE 1984) 338 -346.
Step 2 n Find a minimum spanning tree G 2 of G 1 G 2 6
Step 3 n Construct a subgraph G 3 of G by replacing each edge in G 2 by its corresponding shortest paths in G (If there are several shortest paths, pick an arbitrary one. ) G G 2 G 3 7
Step 4 n Find a minimum spanning tree G 4 of G 3 G 4 8
Step 5 n Construct a Steiner tree G 5 from G 4 by deleting edges in G 4, if necessary, so that no leaves in G 5 are Steiner vertices. G 4 G 5 9
Time Complexity 10
n For every vertex let N(s) be the set of vertices in V which are closer to s than to any other vertex in S. for 11
n We consider the subgraph G 1 defined by = {(s, t); edge of and there is an with } 12
13
Lemma (a) n There is a minimum spanning tree G 2 of G 1 which is a subgraph of G 1’. Moreover, d 1 and d 1’ agree on the edges of this tree. 14
Lemma (b) n Every minimum spanning tree of G 1’ is a minimum spanning tree of G 1. 15
n n n We may replace step 1 of Algorithm H by constructing the auxiliary graph. The graph has only edges. Step 2. can be carried out in. 16
n We can compute the partition by adjoining an auxiliary vertex s 0 and edges (s 0, s), , of length 0 to G and then performing a single source shortest path computation with source s 0. This takes time and yields for every vertex v the vertex with and the distance. 17
n Next we go through all the edges (u, v) in E and generate the triples n We sort these triples by bucket sort [5] according to the first two components and then select for each edge of the minimum cost. All of this takes time. n [5] K. Mehlhorn. Data Structures and Efficient Algorithms. EATCS Monographs. Springer, 1984. 18
Time Complexity n n n Step 1. Step 2. Step 3. Step 4. Step 5. Total Minimum spanning tree 19
Theorem n For a connected, undirected distance graph G=( V , E , d ) and a set of vertices , a Steiner tree Gs for G and S with total distance at most times that of a Steiner minimal tree for G and S can be computed in time. 20
- Slides: 20