Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts"—  Präsentation transkript:

1 Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Prof.Dr.Th Ottmann WS

2 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

3 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

4 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

5 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

6 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

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

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

9 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

10 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

11 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

12 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

13 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

14 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 B1  FIND(u); B2  FIND(v); if B1  B2 then A  A  {(u,v)}; UNION (B1, B2, B1); endif; 9. endfor; Laufzeit: O( m (m,n) + m + n log n ) WS

15 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

16 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

17 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 (d, u)  DeleteMin(Q); for all (u,v)  E do if v  Q und c(u,v) < Schlüssel von v then DecreaseKey(Q, c(u,v), v); p[v]  u; endif; endfor; 11. endwhile; Laufzeit: O( n log n + m ) WS

18 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

19 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

20 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 y v WS

21 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

22 Austauschschritt T x u e y v WS


Herunterladen ppt "Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts"

Ähnliche Präsentationen


Google-Anzeigen