Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "WS 2006-07 Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts Prof.Dr.Th Ottmann."—  Präsentation transkript:

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

2 2WS 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 : 4 8 -3 9 8 15 -5 6 a e c b d f

3 3WS 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. 1 8 11 7 2 8 7 9 9 4 2 14 6 4 c a b h i g f e d

4 4WS 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. i 1 8 11 7 2 8 7 9 9 4 2 14 6 4 f a h b c d e g

5 5WS 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 1 8 11 7 2 8 7 9 9 4 2 14 6 4 c a b h i g f e d

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

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

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

9 9WS 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 Satz: Die Färbungsmethode färbt alle Kanten eines zusammenhängenden Graphen rot oder grün.

10 10WS 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 v y x u

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

12 12WS 2006-07 4. Algorithmus von Kruskal 1.Sortiere die Kanten nach ihrem Gewicht in nicht absteigender Reihenfolge. 2.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.

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

14 WS 2006-07 Algorithmus von Kruskal 1. A 2. for all v V do B v { 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. B 1 FIND(u); B 2 FIND(v); 6. if B 1 B 2 then 7. A A {(u,v)}; UNION (B 1, B 2, B 1 ); 8. endif; 9. endfor; Laufzeit: O( m (m,n) + m + n log n )

15 15WS 2006-07 5. Algorithmus von Prim 1.Starte mit beliebigem Knoten als grünen Baum 2.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. 1 8 11 7 2 8 7 9 9 4 2 14 6 4 b a h i c g f d e

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

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

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

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

20 20WS 2006-07 Austauschschritt 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 v y x u ee´

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

22 22WS 2006-07 Austauschschritt T v y x u ee´


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

Ähnliche Präsentationen


Google-Anzeigen