300 likes | 450 Views
Steiner Bäume. Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11. 12 VO 15. Januar 2007. Überblick. Einführung Definition und Motivation Komplexität Approximationsalgorithmen Distanznetzwerk Heuristik Primal-Dualer Algorithmus . Steinerbaum.
E N D
Steiner Bäume Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11 12 VO 15. Januar 2007
Überblick • Einführung • Definition und Motivation • Komplexität • Approximationsalgorithmen • Distanznetzwerk Heuristik • Primal-Dualer Algorithmus
Steinerbaum Ungerichteter G=(V,E), Terminalknoten NV. Kantengewichte c: E → ℝ+ Ein Steiner BaumTG(N)=(V‘,E‘) von G ist: • Baum mit V‘V, E‘E • NV‘ Gewicht von Steinerbaum: c(TG(N))=e∈E‘c(e) Steinerbaum Problem: Finde den Steinerbaum TG*(N) vom minimalen Gewicht 5 2 3 1 1 4 5 1 2 2 2 1 2 3
Geschichte & verschiedene Varianten Pierre de Fermat (1601–1665) Frage: Gegeben 3 Punkte in der Ebene, finde den vierten, so dass die die Summe der Distanzen zu den anderen drei ist minimal. Gelöst von Toricelli vor 1640 (Toricellipunkt) Verallgemeinerung auf n Knoten (unter anderem): Jacob Steiner (1796–1863)
Varianten & Anwendung Varianten: • Geometrisches SBP • euklidisch • rektilinear • SBP in Netzwerken Anwendungen: • VLSI-Design • Netzwerk Design
Komplexität • Steinerbaum Problem ist NP-hart auch wenn c(e)=1 für alle e∈E • Polynomielle Spezialfälle • |N|=2 Lösung ist der kürzester Weg zwischen den Kundenknoten (Dijkstra) • N=V Lösung ist minimal spannender Baum (Kruskal oder Prim)
Algorithmen für Steiner Baum Problem Algorithmen (Auswahl): • Approximationsalgorithmen • Distanznetzwerk Heuristik • Approximation von Zelikovski (1993) • Primal-Duale Approximation (Goemann, Williamson 1995) • Exakte Verfahren • Dynamische Programmierung (Dreyfus & Wagner 1971) • Branch & Cut (exponentiell, gut in Praxis)
Literatur: • J. Cheriyan, R. Ravi: Approximation algorithms for network problems. Lecture Notes, 1998. (citeseer.ist.psu.edu/cheriyan98approximation.html) • V. Vazirani: Approximation Algorithms. Springer Verlag 2003 • D. S. Hochbaum (Hrsg.): Approximation Algorithms for NP-hard Problems. PWS Publishing Company 1997
Distanznetzwerk Distanznetzwerk DG(W)=(W, ED, cD) von G=(V,E): • WV • ED={(u,v)| u,v ∈ W} • Kantengewichte cD(u,v)=Länge des kürzesten Pfades von u nach v in G Eigenschaften von DG(W): • Distanzgraph ist vollständig • Für (u,v)∈ED: (u,v)∈E cD(u,v) ≤ c(u,v) • cDerfüllt Dreiecksungleichung
Distanznetzwerk Heuristik (DNH) • Berechne Distanznetzwerk DG(N) • Berechne minimal spannenden Baum (MST)TD(N) in DG(N) • Transformiere TD(N) ⊆ DG(N) in ein G‘⊆G:ersetze jede (u,v)∈TD(N) durch einen kürzesten (u,v)-Pfad in G. G‘ ist i.A. kein Baum • Berechne MST TDNHauf G‘
Beispiel 5 b g 5 2 b d g 3 1 1 4 5 4 5 e h 1 2 a 2 2 1 5 a c f 2 2 3 b d g 1 3 e 1 a
Theorem: Güte von DNH Für jede Instanz des Steinerbaum Problems (G,N,c) gilt für die Lösung TDNHder Distanzwerkheuristik c(TDNH) ≤(2-2/|N|)c(TG*(N)). Beweisskizze: • Betrachte TG*(N): • Verdoppele die Kanten • Finde eine Eulertour L • Nummeriere v∈N • auf L in der Ablaufreihenfolge: • z1,…,z|N|,z|N|+1, wobei z|N|+1=z1 z1 z2 z3 z4
c(L)=2c(TG(N)) (*) i, s.d. L(zi,zi+1) mit c(L(zi,zi+1)) ≥ c(L)/|N| (**) o.B.d.A i=|N| Betrachte L‘=L \ L(z|N|,z|N|+1) Beweisskizze: z1 z2 z3 z4 • Wegen (*) und (**) gilt c(L‘)≤(2-2/|N|)c(TN(G)) • Zeige: c(TDNH) ≤ c(L‘): Kanten (zi,zi+1) mit cD(zi,zi+1) ≤ c(L‘(zi,zi+1)) für 1≤ i ≤|N|-1 formen spannenden Baum T in DG(N) c(TDNH) ≤ c(T) ≤c(L‘) ≤(2-2/|N|)c(TN(G))
Laufzeit von DNH • O(|N|·(|E|+|V|log|V|)) • Variante von Mehlhorn (1988) • Besitzt denselben Approximationsfaktor • Benötigt O(|E|+|V|log|V|) Siehe: K. Mehlhorn, A faster approximation algorithm for the Steiner problem in Graphs, Information Processin Letters 27(3) (1988), pp. 573-577
Formulierung als Lineares Programm • Lösung des Steinerbaum Problems ist eine Kantenmenge FE • In einem Steinerbaum T=(V(F),F) muss gelten: • N V(F) • T zshgd: Für u,v∈N muss mind. ein Pfad von u nach v existieren. S V, SNN muss also gelten: |F (S)| ≥1
min e∈Ecexe e∈(S)xe≥1 S: SNN xe ∈{0,1} e∈E ILP mit Hilfe von Schnittungleichungen Kantenvariablen xe=1, falls e∈F xe=0, sonst Alternative Schreibweise für die Schnittungleichungen: e∈(S)xe≥f(S) S V wobei hier f(S)= 1 S: SNN und f(S)=0 sonst
Primal-Dualer Algorithmus Früher:primal-dualer Algorithmus für das polynonielle Problem MWPM in bipartiten Graphen Eigenschaft des Algorithmus: Primaler und Dualer komplementärer Schlupf erfüllt. Goemann-Williamson (GW)-Algorithmus: primal-dual als Approximation für das NP-harte Steinerbaum Problem. Nur primaler Schlupf wird gefordert.
LP-Relaxierung und das Duale Dual: max SVyS S:e∈(S) yS ≤ ce e∈E yS≥0 SV Primal: min e∈Ecexe e∈(S)xe≥1 S: SNN xe≥0 e∈E Satz von komplementärem Schlupf: Primal: xe 0 S:e∈(S)yS = ce Dual: yS 0 e∈(S)xe=1
Idee der Vorgehensweise • Starte mit einer zulässigen dualen Lösung • Konstruiere daraus eine primale, die primalen komplementären Schlupf erfüllt. • Diese primale Lösung nicht unbedingt zulässig Wenn nicht, gibt eine Möglichkeit die duale Lösung zu verbessern. • Sobald primale Lösung zulässig STOP
Konkreter Lösung x von (P) induziert eine Kantenmenge F⊆E Gesucht: F*⊆E s.d. G‘=(V(F*), F*) Steinerbaum Zulässige Lösung von (D) liefert: F = { e∈E | S:e∈(S)yS = ce } F unzulässig (ggf. mehrere) S‘ mit |(S‘)F|=0 und f(S‘)=1, also Schnittungleichung verletzt Idee: Solange F unzulässig: • Erhöhe gleichzeitig und zulässig alle yS‘ um >0, s.d. für eine Kante e∈E\F die duale Ungleichung mit „=“ erfüllt ist • Augmentiere F=F{e}
Details Frage: Wie findet man die von aktuellem F verletzte Mengen S? Betrachte: G‘=(V, F) Zshgskomponenten von G‘: C1, …,Cn Ciheißt aktive Menge, falls CiNN (f(Ci)=1) Ci liefert also einen verletzten Schnitt Bemerkung: Keine echte Teilmenge von Ci verletzt die Schnittbedingungen
Postprocessing Nach den Iterationen: • F zulässig für (P) • F kann enhält u.U. redundante Kanten • Finde redundante Kanten (Kanten, die den Zusammenhang zersören würden) und entferne sie Beispiel: 1 1 3 1 1 1
Zusammenfassung: GW-Algorithmus • Start: yS=0 F= ={{v}: v∈V} • Für alle v∈V d(v):=0 • While C∈ aktiv • Für jede e=(v,w), wobei v∈C(v), w∈C(w), C(v)C(w) berechne (v,w): (v,w) = (c(v,w)-d(v)-d(w))/2 , falls C(v) und C(w) aktiv (v,w) = (c(v,w)-d(v)-d(w)) , falls nur C(v) oder nur C(w) aktiv • Wähle e*=(i,j) mit minimalem =(i,j) • Für alle Knoten der aktiven Komponenten d(v):=d(v)+ • F:=F{e*}, :=\{C(i),C(j)}{C(i)C(j)} • Postprocessing
Wie gut ist die Lösung? Die endgültige Lösung x (F‘E) und die zugehörige duale Lösung y erfüllen primale Optimalitätsbedingung. Die entsprechende duale: yS 0 e(S)xe=1 ist nicht erfüllt. Da y aber zulässig, gilt: yS 0 |F‘(S)| ≥ 1 Kann man |F‘(S)| nach oben abschätzen und dadurch eine Approximationsgüte ableiten?
Lemma: Güte des Algorithmus GW Für jede Instanz des Steinerbaum Problems (G,N,c) gilt für die Lösung TGW=(V(F‘),F‘) des primal-dualen Algorithmus c(TGW) ≤ 2c(TG*(N)). Beweis: Zeige: e∈F‘ ce≤ 2 sVys≤ 2c(TG*(N)) • 2sVys≤ 2c(TG*(N)) gilt wegen der schwachen Dualität. Zulässige duale Lösung ist untere Schranke für das primale Optimum.
Beweis der Güte 2) zeige e∈F‘ce≤ 2 SVyS Primaler Schlupf ist für alle e∈F‘ erfüllt e∈F‘ ce = e∈F‘S:e∈(S) yS = SV e ∈ (S)F‘ yS = SV|(S) F‘|·yS Also z. zg. SV|(S) F‘|·yS ≤ 2SVyS Induktion über die Anzahl der Iterationen. Anfang: alle yS=0, also erfüllt.
Beweis der Güte SV|(S) F‘|·yS ≤ 2SVyS Sei A = # aktiver Mengen Betrachte eine Iteration des Algorithmus Für alle aktiven S erhöhe: yS+ l.S. erhöht sich um: ·S aktiv |(S)F‘| r.S. erhöht sich um: 2··A zeige: ·S aktiv |(S)F‘|≤ 2··A zeige: S aktiv |(S)F‘|≤ 2A
Beweis der Güte: Also zu zeigen: die durchschnittliche Anzahl der Lösungskanten im Schnitt einer aktiven Menge ist höchstens 2 • Wir konstruieren einen Graphen H aus TGW: Die Knoten, die in dieser Iteration in einer Zusammenhangskomponente liegen, zu einem Knoten verschmelzen. H ist ein Baum Durchschnittlicher Grad aller Knoten ist kleiner als 2.
Diverses Laufzeit: O(|V|2 log|V|) mit Union-Find • Beweis in der Übung Spezialfälle (zum Nachdenken…): GW-Algorithmus funktioniert wie… • N=V: Kruskal • |N|=2: Bidirektionaler Dijkstra-Algorithmus
Verwandte Probleme • Prize-Collecting Steinerbaum • Knoten aus N nur anbinden wenn „rentabel“ genug (Gewichte auch für Knoten) • Steinerwald • Mehrere Mengen N1,…,Np. Knoten aus derselben Menge müssen verbunden sein. Die anderen dürfen. • Diverse Netzwerkdesign Probleme • z.B. Knoten aus N zweizusammenhängend anbinden, etc.