Presentation on theme: "1 A Faster Approximation Algorithm For The Steiner Problem In Graphs Kurt Mehlhorn. Information Processing Letters, 27(3):125–128, 1988. 高等演算法二 92321524."— Presentation transcript:
1 A Faster Approximation Algorithm For The Steiner Problem In Graphs Kurt Mehlhorn. Information Processing Letters, 27(3):125–128, 1988. 高等演算法二 92321524 吳明峰
2 Introduction Definition: Steiner Tree 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 NP- complete in 1972.
3 Introduction 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.
4 Algorithm H: Steiner Tree 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.
5 Step 1 Construct the complete distance G 1 =(V 1, E 1, d 1 ), where V 1 =S and, for every (v i, v j ) E 1,d 1 (v i, v j ) is equal to the distance of a shortest path form v i to v j in G. Example: Let S=(V 1, V 2, V 3, V 4 ) G G1G1 Using Fredman and Tarjan’s  implementation of Dijkstra’s algorithm. Dijkstra’s algorithm  M. L. Fredman and R. E. Tarjan, Fibonacci heaps and their uses in improved network optimization algorithms, (IEEE 1984) 338-346.
6 Step 2 Find a minimum spanning tree G 2 of G 1. G1G1 G2G2
7 Step 3 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.) GG2G2 G3G3
8 Step 4 Find a minimum spanning tree G 4 of G 3. G3G3 G4G4
9 Step 5 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. G4G4 G5G5
14 Lemma (a) 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.
15 Lemma (b) Every minimum spanning tree of G 1 ’ is a minimum spanning tree of G 1.
16 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.
17 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.
18 Next we go through all the edges (u, v) in E and generate the triples We sort these triples by bucket sort  according to the first two components and then select for each edge of the minimum cost. All of this takes time.  K. Mehlhorn. Data Structures and Efficient Algorithms. EATCS Monographs. Springer, 1984.
19 Time Complexity Step 1. Step 2. Step 3. Step 4. Step 5. Total Minimum spanning tree
20 Theorem For a connected, undirected distance graph G=( V,E, d ) and a set of vertices, a Steiner tree G s 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.