Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11

Ähnliche Präsentationen


Präsentation zum Thema: "Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11"—  Präsentation transkript:

1 Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11
Steiner Bäume Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11 12 VO Januar 2007

2 Überblick Einführung Approximationsalgorithmen
Definition und Motivation Komplexität Approximationsalgorithmen Distanznetzwerk Heuristik Primal-Dualer Algorithmus

3 Steinerbaum Ungerichteter G=(V,E), Terminalknoten NV.
Kantengewichte c: E → ℝ+ Ein Steiner Baum TG(N)=(V‘,E‘) von G ist: Baum mit V‘V, E‘E NV‘ Gewicht von Steinerbaum: c(TG(N))=e∈E‘ c(e) Steinerbaum Problem: Finde den Steinerbaum TG*(N) vom minimalen Gewicht 5 2 3 1 4 1 5 1 2 2 1 2 2 3

4 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)

5 Varianten & Anwendung Varianten: Geometrisches SBP euklidisch
rektilinear SBP in Netzwerken Anwendungen: VLSI-Design Netzwerk Design

6 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)

7 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)

8 Literatur: J. Cheriyan, R. Ravi: Approximation algorithms for network problems. Lecture Notes, (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

9 Distanznetzwerk Distanznetzwerk DG(W)=(W, ED, cD) von G=(V,E): WV
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) cD erfüllt Dreiecksungleichung

10 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 TDNH auf G‘

11 Beispiel 5 b g 5 2 b d g 3 1 4 1 4 5 5 e h 1 2 a 2 1 2 5 a c f 2 2 3 b

12 Theorem: Güte von DNH Für jede Instanz des Steinerbaum Problems (G,N,c) gilt für die Lösung TDNH der 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

13 c(TDNH) ≤ c(T) ≤c(L‘) ≤(2-2/|N|)c(TN(G))
Beweisskizze: 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) 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))

14 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

15 Formulierung als Lineares Programm
Lösung des Steinerbaum Problems ist eine Kantenmenge FE 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, SNN muss also gelten: |F  (S)| ≥1

16 ILP mit Hilfe von Schnittungleichungen
min e∈Ecexe e∈(S)xe≥1 S: SNN xe ∈{0,1} e∈E 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: SNN und f(S)=0 sonst

17 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.

18 LP-Relaxierung und das Duale
max SVyS S:e∈(S) yS ≤ ce e∈E yS≥0 SV Primal: min e∈Ecexe e∈(S)xe≥1 S: SNN xe≥0 e∈E Satz von komplementärem Schlupf: Primal: xe  0  S:e∈(S) yS = ce Dual: yS  0  e∈(S)xe=1

19 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

20 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}

21 Details Frage: Wie findet man die von aktuellem F verletzte Mengen S?
Betrachte: G‘=(V, F) Zshgskomponenten von G‘: C1, …,Cn Ci heißt aktive Menge, falls CiNN (f(Ci)=1) Ci liefert also einen verletzten Schnitt Bemerkung: Keine echte Teilmenge von Ci verletzt die Schnittbedingungen

22 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 1 3 1 1

23 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

24 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?

25 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 sVys ≤ 2c(TG*(N)) 2sVys ≤ 2c(TG*(N)) gilt wegen der schwachen Dualität. Zulässige duale Lösung ist untere Schranke für das primale Optimum.

26 Beweis der Güte 2) zeige e∈F‘ce≤ 2 SVyS
Primaler Schlupf ist für alle e∈F‘ erfüllt e∈F‘ ce = e∈F‘S:e∈(S) yS = SV e ∈ (S)F‘ yS = SV |(S)  F‘|·yS Also z. zg. SV |(S)  F‘|·yS ≤ 2SVyS Induktion über die Anzahl der Iterationen. Anfang: alle yS=0, also erfüllt.

27 Beweis der Güte SV |(S)  F‘|·yS ≤ 2SVyS 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

28 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.

29 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

30 Verwandte Probleme Prize-Collecting Steinerbaum Steinerwald
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.


Herunterladen ppt "Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS11"

Ähnliche Präsentationen


Google-Anzeigen