Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Algorithmentheorie 08 – Dynamische Programmierung (1)
Christian Scheideler SS 2009
Christian Scheideler SS 2009
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Minimum Spanning Tree: MST
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Zerlegung von Graphen.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
B-Bäume.
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix –Tree –Konstruktion Ukkonen Algorithmus.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
WS Algorithmentheorie 15 – Fibonacci-Heaps Tobias Lauer.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Union-Find-Strukturen
WS Algorithmentheorie 15 – Fibonacci-Heaps Tobias Lauer.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Geometrisches Divide and Conquer
Minimum Spanning Tree: MST
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Chromatische Zahl.
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
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 Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Animation von Dijkstra
Animation von Dijkstra
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Gliederung der Vorlesung
Programmiersprachen II Graph_Algorithmen Gewichtete Graphen - Minimum Spanning Tree und shortest path aus Implementierungssicht Prof. Dr. Reiner Güttler.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Das Problem des Handlungsreisenden
Christian Scheideler WS 2008
Wiederholung Verband Ungerichtete Graphen Partielle Ordnung
 Präsentation transkript:

Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts Prof.Dr.Th Ottmann WS 2006-07

1. Minimale spannende Bäume Ungerichteter Graph G = (V, E) Kostenfunktion c: E  R Sei T  E ein Baum (zusammenhängender azyklischer Teilgraph) Kosten von T : 9 b d 4 -5 a f -3 15 8 6 c e 8 WS 2006-07

Minimale spannende Bäume Ein minimaler spannender Baum ist ein Baum T  E, der alle Knoten in V verbindet und minimale Kosten hat. 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 2 WS 2006-07

2. Schnitte Ein Schnitt (S, V \ S) ist eine Partition von V. Eine Kante (u,v) schneidet (kreuzt) (S, V \ S) , wenn ein Endpunkt in S und der andere in V \ S liegt. 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 2 WS 2006-07

Schnitte und kreuzende Kanten Ein Schnitt in einem Graphen G = (V, E) ist eine Partition (S, V \ S) der Knotenmenge V. Eine Kante (u, v) kreuzt den Schnitt (S, V \ S), falls u  S und v  V \ S ist. 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 2 WS 2006-07

3. Färbungsmethode von Tarjan Grüne Regel: Wähle einen Schnitt in G = (V, E), der von keiner grünen Kante gekreuzt wird. Unter allen Kanten, die diesen Schnitt kreuzen, wähle eine Kante minimalen Gewichts und färbe sie grün. Rote Regel: Wähle einen Kreis, der keine rote Kante enthält. Unter allen ungefärbten Kanten, die auf diesem Kreis liegen, wähle eine Kante maximalen Gewichts und färbe sie rot. Färbungsmethode: Solange noch eine der beiden Regeln anwendbar ist, wende die grüne oder die rote Regel an. WS 2006-07

Grüne Regel 3 11 13 1 5 8 9 7 2 10 4 14 15 6 WS 2006-07

Rote Regel 3 11 13 1 5 8 9 7 2 10 4 14 15 6 WS 2006-07

Färbungsinvariante Färbungsinvariante: Es gibt einen MST, der alle grünen Kanten und keine roten Kanten enthält. Satz: Die Färbungsmethode angewendet auf einen zusammenhängenden Graphen erhält die Färbungsinvariante. Bew. Später Die Färbungsmethode färbt alle Kanten eines zusammenhängenden Graphen rot oder grün. WS 2006-07

Ungefärbte Kante mit beiden Enden in grünem Baum Durch Hinzufügen von (u,v) zu T erhalten wir einen Zyklus. Auf diesen ist die rote Regel anwendbar! T x u y v WS 2006-07

Enden in verschiedenen grünen Bäumen Dann gibt es einen Schnitt, auf den die grüne Regel anwendbar ist. T x u y v WS 2006-07

4. Algorithmus von Kruskal Sortiere die Kanten nach ihrem Gewicht in nicht absteigender Reihenfolge. Durchlaufe die sortierten Kanten der Reihe nach und wende folgenden Färbungsschritte an: Wenn beide Endknoten in demselben grünen Baum liegen, so färbe sie rot, sonst färbe sie grün. Implementation: Sortieren der Kanten in Zeit O(|E| log |E|) = O(|E| log |V|) Kollektion grüner Bäume als Union-Find-Struktur mit: FIND: Finde die grünen Bäume, in denen die beiden Endknoten der zu färbenden Kante liegen. UNION: Vereinige die beiden grünen Bäume, in denen die beiden Endknoten einer Kante liegen, die grün gefärbt wird. WS 2006-07

Algorithmus von Kruskal: Beispiel 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 2 WS 2006-07

Algorithmus von Kruskal 2. for all v  V do Bv  { v }; endfor; 3. Erzeuge eine Liste L der Kanten in E, welche gemäß nicht-fallenden Kantenkosten sortiert ist; 4. for all (u,v) in L do 5. B1  FIND(u); B2  FIND(v); 6. if B1  B2 then 7. A  A  {(u,v)}; UNION (B1, B2, B1); 8. endif; 9. endfor; Laufzeit: O( m (m,n) + m + n log n ) WS 2006-07

5. Algorithmus von Prim 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 Starte mit beliebigem Knoten als „grünen Baum“ Wiederhole |V| - 1 mal den Färbungsschritt: Wähle ungefärbte Kante minimalen Gewichts, die genau einen Endknoten im grünen Baum hat, und färbe sie grün. 8 7 b c d 9 4 2 14 e a 11 i 4 6 7 8 9 h g f 1 2 WS 2006-07

Implementierung Q : Prioritätswarteschlange, die alle Knoten v  V \ A enthält. Schlüssel von v: min. Kosten einer Kante, die v mit einem Knoten aus A verbindet. Für einen Knoten v ist p[v] der Elter-Knoten von v in dem Baum. WS 2006-07

Algorithmus von Prim 1. for all v  V do Insert(Q, , v); endfor; 2. Wähle einen Knoten w  V als Wurzel; 3. DecreaseKey(Q, 0, w); p[w]  nil; 4. while Empty(Q) do 5. (d, u)  DeleteMin(Q); 6. for all (u,v)  E do 7. if v  Q und c(u,v) < Schlüssel von v then 8. DecreaseKey(Q, c(u,v), v); p[v]  u; 9. endif; 10. endfor; 11. endwhile; Laufzeit: O( n log n + m ) WS 2006-07

6. Nachweis der Färbungsinvariante Induktion über die Anzahl m der Färbungsschritte: m = 0: m => m + 1: e sei Kante, auf die m+1-ter Färbungsschritt angewandt wird. Fall Grün: Grüne Regel wurde auf e = (u, v) angewandt. Sei T grüner Baum, der nach dem m-ten Färbungsschritt vorlag, d.h. T ist MST und enthält alle in den ersten m Färbungsschritten grün gefärbten Kanten und keine roten. WS 2006-07

Fall Grün 1. Fall: (u,v)  T : ok 2. Fall: (u,v)  T Betrachte den Schnitt, auf den die grüne Regel im m+1-ten Färbungsschritt angewendet wurde. WS 2006-07

Austauschschritt T x u e e´ y v Durch Hinzufügen von (u,v) zu T erhalten wir einen Zyklus. Auf diesem gibt es (mindestens) eine Kante (x,y), die ebenfalls den Schnitt schneidet. Wegen c(e) <= c(e´) kann e´durch e ersetzt werden! T x u e e´ y v WS 2006-07

Fall Rot Rote Regel wurde auf e = (u, v) angewandt. Sei T grüner Baum, der nach dem m-ten Färbungsschritt vorlag, d.h. T ist MST und enthält alle in den ersten m Färbungsschritten grün gefärbten Kanten und keine roten. 1. Fall: (u,v)  T : ok 2. Fall: (u,v)  T WS 2006-07

Austauschschritt T x u e e´ y v WS 2006-07