Das Problem des minimalen Steiner-Baumes Ein polynomieller Approximationsalgorithmus Benedikt Wagner 4.05.208 INSTITUT FU R THEORETISCHE INFORMATIK, LEHRSTUHL ALGORITHMIK KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft www.kit.edu
Gliederung Problemstellung Motivation Formale Definition Beispiele 2 Andere Arbeiten 3 Approximationsalgorithmus Definition des Algorithmus von Kou, Markowsky und Berman 4 Analyse Laufzeit Relative Gütegarantie 5 Zusammenfassung Benedikt Wagner Steiner-Baum-Approximation 4.05.208 2/27
Motivation Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Motivation 3 2 2 0 2 3 6 8 2 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 4/27
Definition Steiner-Baum-Problem Gegeben: Ungerichteter gewichteter zusammenhängender Graph G = (V, E, d), E {{u, v} V V u v}, d : E R + 0 Steinerpunkte S V Gesucht: Baum T = (V, E ) sodass v S v V (Steinerbaum) wobei d(e) minimal e E Das Steiner-Baum-Problem ist N P-schwer Benedikt Wagner Steiner-Baum-Approximation 4.05.208 5/27
Definition Steiner-Baum-Problem Gegeben: Ungerichteter gewichteter zusammenhängender Graph G = (V, E, d), E {{u, v} V V u v}, d : E R + 0 Steinerpunkte S V Gesucht: Baum T = (V, E ) sodass v S v V (Steinerbaum) wobei d(e) minimal e E Das Steiner-Baum-Problem ist N P-schwer Benedikt Wagner Steiner-Baum-Approximation 4.05.208 5/27
Beispiele 2 3 2 Minimaler Spannbaum entspricht nicht dem minimalen Steinerbaum 2 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 6/27
Beispiele 2 3 2 Minimaler Spannbaum entspricht nicht dem minimalen Steinerbaum 2 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 6/27
Beispiele 7 2 2 Knoten, die nicht markiert sind, können nicht einfach entfernt werden 5 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 7/27
Beispiele 7 2 2 Knoten, die nicht markiert sind, können nicht einfach entfernt werden 5 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 7/27
Andere Arbeiten eines von Karps 2 N P-vollständigen Problemen [Kar72] diverse Approximationsalgorithmen z.b. [Meh88] [RZ00] Gröpl, Hougardy, Nierhoff, Prömel zeigen: P N P es gibt kein PTAS für das Steinerbaumproblem [GHNP73] Benedikt Wagner Steiner-Baum-Approximation 4.05.208 8/27
aus [Kar72] Benedikt Wagner Steiner-Baum-Approximation 4.05.208 9/27
EXACT-COVER Gegeben: Endliche Menge M = {u,... u n }, Teilmengen X = {S,..., S m } Gefragt: Gibt es eine Auswahl {S i, S j,..., S k } X, sodass S i, S j,..., S k disjunkt S X S = M Benedikt Wagner Steiner-Baum-Approximation 4.05.208 0/27
EXACT-COVER Gegeben: Endliche Menge M = {u,... u n }, Teilmengen X = {S,..., S m } Gefragt: Gibt es eine Auswahl {S i, S j,..., S k } X, sodass S i, S j,..., S k disjunkt S X S = M Benedikt Wagner Steiner-Baum-Approximation 4.05.208 0/27
EXACT-COVER K STEINER TREE S 0 u Gegeben: M = {u,... u n }, m Teilmengen S i M EXACT-COVER Instanz ist Ja- Instanz Graph hat Steinerbaum mit Gewicht kleiner gleich k v 0 js j js m j k = n S m 0 u n Benedikt Wagner Steiner-Baum-Approximation 4.05.208 /27
Der Approximationsalgorithmus von Kou, Markowsky und Berman Benedikt Wagner Steiner-Baum-Approximation 4.05.208 2/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v 2 0 v 7 8 v v 8 0.5 v 6 0.5 2 G 2 v9 v 5 9 v 4 v 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v 2 0 v 7 8 v v 8 0.5 v 6 0.5 2 G 2 v9 v 5 9 v 4 v 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v v 4 4 4 4 4 G 4 4 v 2 v 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) T v 4 v 4 4 4 v 2 v 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V v G S Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v 2 v 7 v 8 0.5 v 6 0.5 2 2 v9 v 5 v 3 v 4 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V v T S Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v 2 v 7 v 8 0.5 v 6 0.5 2 2 v9 v 5 v 3 v 4 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V v T H Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) v 2 v 6 2 2 v 9 v 5 v 3 v 4 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 3 3 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Der Approximationsalgorithmus [KMB8] Eingabe: G = (V, E, d), S V Vollständiger Graph G = (S, E, d ) d ({u, v}) = d(shortestpath(g, u, v)) 2 T MST (G ) 3 Packe kürzeste Wege in T aus erhalte G S 4 T S MST (G S ) 5 T H T S ohne unnötige Zweige Ausgabe: T H (wobei MST (G) einen minimalen Spannbaum in G berechnet) 3 3 3 3 3 Benedikt Wagner Steiner-Baum-Approximation 4.05.208 3/27
Worst-Case Laufzeit im RAM-Modell Konstruktion von G aus kürzesten Wegen: O( S V 2 ) 2 Minimaler Spannbaum in G : O( S 2 ) 3 Konstruktion von G S : O( V 2 ) 4 Minimaler Spannbaum in G S : O( V 2 ) 5 Unnötige Blätter entfernen: O( V ) Gesamt: O( S V 2 ) Benedikt Wagner Steiner-Baum-Approximation 4.05.208 4/27
Laufzeit von Schritt 3 Schritt 3: Konstruiere aus T S den Graphen G S Kanten durch kürzeste Wege ersetzen Step 3 could be done in O( V ) time [KMB8] Benedikt Wagner Steiner-Baum-Approximation 4.05.208 5/27
Laufzeit von Schritt 3 Schritt 3: Konstruiere aus T S den Graphen G S Kanten durch kürzeste Wege ersetzen Step 3 could be done in O( V ) time [KMB8] 0 0 0 0 0 0 0 0 Kantengewichte dürfen 0 sein Wahl der kürzesten Wege ist beliebig Benedikt Wagner Steiner-Baum-Approximation 4.05.208 5/27
Notation T H : Steinerbaum, erzeugt vom Approximationsalgorithmus [KMB8] D H : Summe der Kantengewichte in T H T MIN : minimaler Steinerbaum D MIN : Summe der Kantengewichte in T MIN b: Anzahl der Blätter in T MIN d(p): Länge eines einfachen Pfades/Zyklus P Benedikt Wagner Steiner-Baum-Approximation 4.05.208 6/27
Relative Gütegarantie Theorem Sei mit G = (V, E, d) und S eine beliebige Eingabe für den Algorithmus [KMB8] gegeben. Dann gilt: D H /D MIN 2( b ) Benedikt Wagner Steiner-Baum-Approximation 4.05.208 7/27
Baumtraversierung Lemma Sei T ein Baum mit m Kanten. Dann gibt es einen Zyklus C = (u 0,...u 2m ) in T wobei gilt: i jede Kante aus T kommt genau zwei mal in C vor ii jedes Blatt aus T kommt genau einmal in C vor iii wenn u i und u j Blätter in C sind und kein anderes Blatt dazwischen ist, ist (u i, u i+,..., u j ) ein einfacher Pfad. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 8/27
Baumtraversierung - Beweis des Lemmas Beweis. (Induktion über m) I.A. m = und T ist ein Baum T besteht aus zwei Knoten V = {u, v} C = (u, v, u) leistet i, ii, iii (u Wurzel) u v Benedikt Wagner Steiner-Baum-Approximation 4.05.208 9/27
Baumtraversierung - Beweis des Lemmas I.V. Es gelte die Behauptung für m = k I.S. Sei m = k +. Sei v p ein Blatt. Wende auf I.V. auf G v p := (V \ {v p }, {e E v p / e}) an Zyklus C = (u 0,..., u 2k ), der i, ii, iii in G v p erfüllt. Sei v q der Elternknoten von v p. Dann ersetze in C das erste v q durch v q, v p, v q. I.S. I.V. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 20/27
Baumtraversierung - Beweis des Lemmas I.V. Es gelte die Behauptung für m = k I.S. Sei m = k +. Sei v p ein Blatt. Wende auf I.V. auf G v p := (V \ {v p }, {e E v p / e}) an Zyklus C = (u 0,..., u 2k ), der i, ii, iii in G v p erfüllt. Sei v q der Elternknoten von v p. Dann ersetze in C das erste v q durch v q, v p, v q. I.S. v p I.V. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 20/27
Baumtraversierung - Beweis des Lemmas I.V. Es gelte die Behauptung für m = k I.S. Sei m = k +. Sei v p ein Blatt. Wende auf I.V. auf G v p := (V \ {v p }, {e E v p / e}) an Zyklus C = (u 0,..., u 2k ), der i, ii, iii in G v p erfüllt. Sei v q der Elternknoten von v p. Dann ersetze in C das erste v q durch v q, v p, v q. I.S. v q v p I.V. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 20/27
Relative Gütegarantie - Beweis Theorem Sei mit G = (V, E, d) und S eine beliebige Eingabe für den Algorithmus [KMB8] gegeben. Dann gilt: D H /D MIN 2( b ) Beweis. Wende Lemma auf T MIN an liefert Zyklus L in T MIN mit i jede Kante von T MIN genau zweimal in L d(l) = 2 D MIN ii jedes Blatt aus T MIN genau einmal in L iii wenn u i und u j Blätter in L sind und kein anderes Blatt dazwischen ist, ist (u i, u i+,..., u j ) ein einfacher Pfad. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 2/27
Relative Gütegarantie - Beweis Theorem Sei mit G = (V, E, d) und S eine beliebige Eingabe für den Algorithmus [KMB8] gegeben. Dann gilt: D H /D MIN 2( b ) Beweis. Wende Lemma auf T MIN an liefert Zyklus L in T MIN mit i jede Kante von T MIN genau zweimal in L d(l) = 2 D MIN ii jedes Blatt aus T MIN genau einmal in L iii wenn u i und u j Blätter in L sind und kein anderes Blatt dazwischen ist, ist (u i, u i+,..., u j ) ein einfacher Pfad. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 2/27
Relative Gütegarantie - Beweis Seien P,..., P b die Pfade, die die Blätter verbinden. Sei P MAX := argmax b i= d(p i) d(p MAX ) b d(l) Sei P := L P MAX der Zyklus L ohne Kanten aus P MAX d(p) ( b )d(l) = ( b ) 2 D MIN d(p) 2 ( b ) D MIN () Benedikt Wagner Steiner-Baum-Approximation 4.05.208 22/27
Relative Gütegarantie - Beweis d(p) 2 ( b ) D MIN () D H d(mst (G )) (Schritte 3-5 verlängern die Distanz nicht) v v 4 4 4 Seien w, w 2,... w k die Steinerpunkte, in dieser Reihenfolge in P vorkommend v 2 4 v 3 Sei T ein Spannbaum in G, der genau {w, w 2 },... {w k, w k } enthält. d(mst (G )) d(t ) Jede Kante aus T MIN mindestens einmal in P d(t ) d(p) Es folgt: D H d(p) (2) (),(2) Beh. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 23/27
Relative Gütegarantie - Beweis d(p) 2 ( b ) D MIN () D H d(mst (G )) (Schritte 3-5 verlängern die Distanz nicht) v v 4 4 4 Seien w, w 2,... w k die Steinerpunkte, in dieser Reihenfolge in P vorkommend v 2 4 v 3 Sei T ein Spannbaum in G, der genau {w, w 2 },... {w k, w k } enthält. d(mst (G )) d(t ) Jede Kante aus T MIN mindestens einmal in P d(t ) d(p) Es folgt: D H d(p) (2) (),(2) Beh. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 23/27
Relative Gütegarantie - Beweis d(p) 2 ( b ) D MIN () D H d(mst (G )) (Schritte 3-5 verlängern die Distanz nicht) v v 4 4 4 Seien w, w 2,... w k die Steinerpunkte, in dieser Reihenfolge in P vorkommend v 2 4 v 3 Sei T ein Spannbaum in G, der genau {w, w 2 },... {w k, w k } enthält. d(mst (G )) d(t ) Jede Kante aus T MIN mindestens einmal in P d(t ) d(p) Es folgt: D H d(p) (2) (),(2) Beh. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 23/27
Die Schranke ist scharf Theorem Sei b 2. Dann gibt es einen Graphen G = (V, E, d) und Steinerpunkte S V sodass T MIN b Blätter hat und im Worst-Case D H /D MIN = 2( b ) Beweis. Für b 2 betrachte: 2 2 b Knoten Benedikt Wagner Steiner-Baum-Approximation 4.05.208 24/27
vollständiger Graph { G := (V, E, d) V := {v, v 2,..., v b+ }, v i = v b+ v j = v b+ d({v i, v j }) =, S := V \ {v b+ } 2, sonst 2 2 b Knoten Benedikt Wagner Steiner-Baum-Approximation 4.05.208 25/27
vollständiger Graph { G := (V, E, d) V := {v, v 2,..., v b+ }, v i = v b+ v j = v b+ d({v i, v j }) =, S := V \ {v b+ } 2, sonst Optimaler Steinerbaum T MIN 2 2 b Knoten Benedikt Wagner Steiner-Baum-Approximation 4.05.208 25/27
vollständiger Graph { G := (V, E, d) V := {v, v 2,..., v b+ }, v i = v b+ v j = v b+ d({v i, v j }) =, S := V \ {v b+ } 2, sonst Steinerbaum T H 2 2 b Knoten D MIN = b und D H = 2(b ) D H /D MIN = 2(b )/b = 2( b ) Benedikt Wagner Steiner-Baum-Approximation 4.05.208 25/27
Zusammenfassung 3 2 2 0 2 3 6 8 2 Steiner-Baum-Problem ist N P-schwer Algorithmus, der Shortest Path und Mininum Spanning Tree nutzt Laufzeit: O( S V 2 ) Garantie: D H /D MIN 2( ) b Benedikt Wagner Steiner-Baum-Approximation 4.05.208 26/27
References I Clemens Gröpl, Stefan Hougardy, Till Nierhoff, and Hans Jürgen Prömel. Lower bounds for approximation algorithms for the steiner tree problem. Lecture Notes in Computer Science, page 27, 973. Richard M. Karp. Reducibility Among Combinatorial Problems. R. E. Miller und J. W. Thatcher (Hrsg.): Complexity of Computer Computations, pages 85 03, 972. L. Kou, G. Markowsky, and L. Berman. A Fast Algorithm for Steiner Trees. Acta Informatica, 5(2):4 45, Jun 98. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 27/27
References II K. Mehlhorn. A faster approximation algorithm for the steiner problem in graphs. Information Processing Letters, pages 25 28, 988. G. Robins and A. Zelikovsky. Improved steiner tree approximation in graphs. Proceedings of the Eleventh Annual ACM-SIAM Symposium on Discrete Algorithms., pages 770 779, 2000. Benedikt Wagner Steiner-Baum-Approximation 4.05.208 28/27