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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Freie Universität Berlin Institut für Informatik
Christian Scheideler SS 2009
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Christian Scheideler SS 2009
Methoden des Algorithmenentwurfs Kapitel 1.4:Approximations-schemata
Knapsack & Bin Packing Sebastian Stober
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Zerlegung von Graphen.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
The Dynamic Single File Allocation Problem
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Algorithmen und Komplexität
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Seminar parallele Programmierung SS 2003
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Christian Schindelhauer
Minimum Spanning Tree: MST
Approximationsalgorithmen Facility Location K-Median Cheng, Wei 12. Juli.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Hartmut Klauck Universität Frankfurt WS 06/
Christian Scheideler Institut für Informatik Universität Paderborn
Institut für Theoretische Informatik
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Analyse der Laufzeit von Algorithmen
Minimal spannende Bäume
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.
Optimierungs- Algorithmen
Der A*-Algorithmus.
Gliederung der Vorlesung
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
 Präsentation transkript:

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 15. Januar 2007

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

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

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

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‘

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

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

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

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

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

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

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

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

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

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.

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

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