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 Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts Prof.Dr.Th Ottmann

2 2WS 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 : a e c b d f

3 3WS Minimale spannende Bäume Ein minimaler spannender Baum ist ein Baum T E, der alle Knoten in V verbindet und minimale Kosten hat c a b h i g f e d

4 4WS 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 f a h b c d e g

5 5WS 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 c a b h i g f e d

6 6WS 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 Grüne Regel

8 8WS Rote Regel

9 9WS 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 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 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 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 Algorithmus von Kruskal: Beispiel b a h i c d e f g

14 WS 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 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 b a h i c g f d e

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