3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel



Ähnliche Dokumente
3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3.2 Generischer minimaler Spannbaum-Algorithmus

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Kapitel IV Minimale Spannbäume

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Das Briefträgerproblem

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

WS 2009/10. Diskrete Strukturen

Anmerkungen zur Übergangsprüfung

4 Greedy-Algorithmen (gierige Algorithmen)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Graphen: Datenstrukturen und Algorithmen

8 Diskrete Optimierung

Algorithmen II Vorlesung am

1 topologisches Sortieren

Algorithmentheorie Maximale Flüsse

Information Systems Engineering Seminar

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Algorithmen und Datenstrukturen

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Datenstrukturen & Algorithmen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

15 Optimales Kodieren

Kapiteltests zum Leitprogramm Binäre Suchbäume

Primzahlen und RSA-Verschlüsselung

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

13. Binäre Suchbäume

Statistische Untersuchungen zu endlichen Funktionsgraphen

Musterlösungen zur Linearen Algebra II Blatt 5

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

WS 2013/14. Diskrete Strukturen

Kombinatorische Optimierung

Kap. 6.5: Minimale Spannbäume ff

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Grundlagen: Algorithmen und Datenstrukturen

Suchen und Sortieren Sortieren. Heaps

Guten Morgen und Willkommen zur Saalübung!

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Theoretische Grundlagen der Informatik

Breiten- und Tiefensuche in Graphen

Grundlagen der Theoretischen Informatik, SoSe 2008

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Vorlesung Datenstrukturen

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

2. Das single-source-shortest-path-problem

Kapitel IV Minimale Spannbäume

Algorithmen und Datenstrukturen 2

Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.

Konzepte der Informatik

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

Informatik II, SS 2014

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Algorithmische Mathematik

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

16. All Pairs Shortest Path (ASPS)

Informatik II, SS 2016

Was meinen die Leute eigentlich mit: Grexit?

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Codierungstheorie Rudolf Scharlau, SoSe

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

6.2 Perfekte Sicherheit

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmen und Datenstrukturen Suchbaum

Kapitel 6: Graphalgorithmen Gliederung

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Einführung in die Algebra

Beweisbar sichere Verschlüsselung

FIS: Projektdaten auf den Internetseiten ausgeben

Berechnung minimaler Spannbäume. Beispiel

Die Komplexitätsklassen P und NP

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

3. Zusammenhang. 22 Andreas Gathmann

Fully dynamic algorithms for the single source shortest path problem.

Kombinatorische Optimierung

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Nachtrag zu binären Suchbäumen

Wie wird ein Graph dargestellt?

Grundlagen der Programmierung 2. Bäume

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Informationsblatt Induktionsbeweis

2.11 Kontextfreie Grammatiken und Parsebäume

EndTermTest PROGALGO WS1516 A

Kapitel 5: Dynamisches Programmieren Gliederung

Theoretische Grundlagen der Informatik WS 09/10

WS 2008/09. Diskrete Strukturen

7 Rechnen mit Polynomen

Datenaufbereitung in SPSS. Daten zusammenfügen

9 Minimum Spanning Trees

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Transkript:

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Satz 0 Sei G = (V, E) ein zusammenhängender ungerichteter Graph, w : E R eine Gewichtsfunktion, C = (V 1, V 2 ) ein Schnitt (d.h. V = V 1 V 2, V 1 V 2 =, V 1 V 2 ). Sei weiter E C = E (V 1 V 2 ) die Menge der Kanten über den Schnitt hinweg. Dann gilt: ( blaue Regel) 1 Ist e E C die einzige Kante minimalen Gewichts (über alle Kanten in E C ), dann ist e in jedem minimalen Spannbaum für (G,w) enthalten. 2 Hat e E C minimales Gewicht (über alle Kanten in E C ), dann gibt es einen minimalen Spannbaum von (G,w), der e enthält. EADS 3.1 Konstruktion von minimalen Spannbäumen 17/36

Beweis: [durch Widerspruch] 1 Sei T ein minimaler Spannbaum von (G, w), sei e E C die minimale Kante. Annahme: e / T. Da T Spannbaum T E C. Sei T E C = {e 1, e 2,..., e k }, k 1. Dann enthält T {e} einen eindeutig bestimmten Kreis (den sogenannten durch e bzgl. T bestimmten Fundamentalkreis). Dieser Kreis muss mindestens eine Kante E C T enthalten, da die beiden Endpunkte von e auf verschiedenen Seiten des Schnitts C liegen. EADS 3.1 Konstruktion von minimalen Spannbäumen 1/36

Beweis (Forts.): T e e e e V 1 V 2 Sei e E C T. Dann gilt nach Voraussetzung w(e ) > w(e). Also ist T := T {e } {e} ein Spannbaum von G, der echt kleineres Gewicht als T hat, Widerspruch zu T ist minimaler Spannbaum. EADS 3.1 Konstruktion von minimalen Spannbäumen 1/36

Beweis (Forts.): 2 Sei e E C minimal. Annahme: e kommt in keinem minimalen Spannbaum vor. Sei T ein beliebiger minimaler Spannbaum von (G, w). e e / T E c V 1 V 2 e / T E C. Sei e E C T eine Kante auf dem durch e bezüglich T erzeugten Fundamentalkreis. Dann ist T = T {e } {e} wieder ein Spannbaum von G, und es ist w(t ) w(t ). Also ist T minimaler Spannbaum und e T. EADS 3.1 Konstruktion von minimalen Spannbäumen 20/36

Satz 1 Sei G = (V, E) ein ungerichteter, gewichteter, zusammenhängender Graph mit Gewichtsfunktion w : E R. Dann gilt: ( rote Regel) 1 Gibt es zu e E einen Kreis C in G, der e enthält und w(e) > w(e ) für alle e C \ {e} erfüllt, dann kommt e in keinem minimalen Spannbaum vor. 2 Ist C 1 = e 1,..., e k ein Kreis in G und w(e i ) = max{w(e j ); 1 j k}, dann gibt es einen minimalen Spannbaum, der e i nicht enthält. EADS 3.1 Konstruktion von minimalen Spannbäumen 21/36

Beweis: 1 Nehmen wir an, dass es einen minimalen Spannbaum T gibt, der e = {v 1, v 2 } enthält. Wenn wir e aus T entfernen, so zerfällt T in zwei nicht zusammenhängende Teilbäume T 1 und T 2 mit v i T i, i = 1, 2. Da aber e auf einem Kreis in G liegt, muss es einen Weg von v 1 nach v 2 geben, der e nicht benützt. Mithin gibt es eine Kante ê e auf diesem Weg, die einen Knoten in T 1 mit T 2 verbindet. Verbinden wir T 1 und T 2 entlang ê, so erhalten wir einen von T verschiedenen Spannbaum ˆT. Wegen w(ê) < w(e) folgt w( ˆT ) < w(t ), im Widerspruch zur Minimalität von T. EADS 3.1 Konstruktion von minimalen Spannbäumen 22/36

Beweis (Forts.): 2 Wir nehmen an, e i liege in jedem minimalen Spannbaum (MSB) von G, und zeigen die Behauptung durch Widerspruch. Sei T ein beliebiger MSB von G. Entfernen wir e i aus T, so zerfällt T in zwei nicht zusammenhängende Teilbäume T 1 und T 2. Da e i auf einem Kreis C 1 = e 1,..., e k in G liegt, können wir wie zuvor e i durch eine Kante e j des Kreises C 1 ersetzen, die T 1 und T 2 verbindet. Dadurch erhalten wir einen von T verschiedenen Spannbaum T, der e i nicht enthält. Da nach Voraussetzung w(e j ) w(e i ) gilt, folgt w( T ) w(t ) (und sogar w( T ) = w(t ), da T nach Annahme ein MSB ist). Also ist T ein MSB von G, der e i nicht enthält, im Widerspruch zur Annahme, e i liege in jedem MSB von G. EADS 3.1 Konstruktion von minimalen Spannbäumen 23/36

Literatur Robert E. Tarjan: Data Structures and Network Algorithms SIAM CBMS-NSF Regional Conference Series in Applied Mathematics Bd. (13) EADS 3.1 Konstruktion von minimalen Spannbäumen 2/36

3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen Baum T F aus bestimme eine leichteste Kante e = {v, w} aus T heraus sei v T, w T vereinige T und T, füge e zum minimalen Spannbaum hinzu od EADS 3.2 Generischer minimaler Spannbaum-Algorithmus 2/36

Generischer MST-Algorithmus T T Wald F T T V 1 V 2 EADS 3.2 Generischer minimaler Spannbaum-Algorithmus 26/36

3.3 Kruskals Algorithmus algorithm Kruskal (G, w) := sortiere die Kanten nach aufsteigendem Gewicht in eine Liste L initialisiere Wald F = {T i, i = 1,..., n}, mit T i = {v i } MSB:= for i := 1 to length(l) do {v, w} := L i x := Baum F, der v enthält; co x :=Find(v) oc y := Baum F, der w enthält; co y :=Find(w) oc if x y then MSB:=MSB {{v, w}} Union(x, y) co gewichtete Vereinigung oc fi od EADS 3.3 Kruskals Algorithmus 27/36

Korrektheit: Falls die Gewichte eindeutig sind (w( ) injektiv), folgt die Korrektheit direkt mit Hilfe der blauen und roten Regel. Ansonsten Induktion über die Anzahl V der Knoten: Ind. Anfang: V klein: Sei r R, E r := {e E; w(e) < r}. Es genügt zu zeigen: Sei T 1,..., T k ein minimaler Spannwald für G r := {V, E r } (d.h., wir betrachten nur Kanten mit Gewicht < r). Sei weiter T ein MSB von G, dann gilt die Hilfsbehauptung: Die Knotenmenge eines jeden T i induziert in T einen zusammenhängenden Teilbaum, dessen Kanten alle Gewicht < r haben. EADS 3.3 Kruskals Algorithmus 2/36

Beweis der Hilfsbehauptung: Sei T i =: (V i, E i ). Wir müssen zeigen, dass V i in T einen zusammenhängenden Teilbaum induziert. Seien u, v V i zwei Knoten, die in T i durch eine Kante e verbunden sind. Falls der Pfad in T zwischen u und v auch Knoten V i enthält (also der von V i induzierte Teilgraph von T nicht zusammenhängend ist), dann enthält der in T durch Hinzufügen der Kante e entstehende Fundamentalkreis notwendigerweise auch Kanten aus E \ E r und ist damit gemäß der roten Regel nicht minimal! Da T i zusammenhängend ist, folgt damit, dass je zwei Knoten aus V i in T immer durch einen Pfad verbunden sind, der nur Kanten aus E r enthält. EADS 3.3 Kruskals Algorithmus 2/36

Zeitkomplexität: (mit n = V, m = E ) Sortieren m log m = O(m log n) O(m) Find-Operationen O(m log n) n 1 Unions O(n log n) Satz 2 Kruskal s MSB-Algorithmus hat die Zeitkomplexität O((m + n) log n). Beweis: s.o. EADS 3.3 Kruskals Algorithmus 30/36

Beispiel 3 (Kruskals Algorithmus) 7 2 11 1 7 6 1 minimaler 2 Spannbaum 7 6 2 2 11 1 7 6 7 1 3 1 2 EADS 3.3 Kruskals Algorithmus 31/36

3. Prim s Algorithmus algorithm PRIM-MSB (G, w) := initialisiere Priority Queue PQ mit Knotenmenge V und Schlüssel, v V wähle Knoten r als Wurzel (beliebig) Schlüssel k[r] := 0 Vorgänger[r] := nil while P Q do u := ExtractMin(P Q) for alle Knoten v, die in G zu u benachbart sind do if v P Q and w({u, v}) < k[v] then Vorgänger[v] := u k[v] := w({u, v}) fi od od EADS 3. Prim s Algorithmus 32/36

Beispiel (Prim s Algorithmus) 0 v 7 2 v 6 11 v 1 v 7 6 v 1 v 2 v 3 1 2 7 v Ausgangszustand: alle Schlüssel = aktueller Knoten u: Startknoten: r (= ) EADS 33/36

Beispiel (Prim s Algorithmus) 7 0 v 7 2 v 6 11 v 1 v 7 6 v 1 v 2 v 3 1 2 v 7 2 v 6 11 v 1 v 7 6 v 1 v 2 v 3 1 2 7 v v Ausgangszustand: alle Schlüssel = aktueller Knoten u: Startknoten: r (= ) (v 1 =, v 7 = ) EADS 33/36

Beispiel (Prim s Algorithmus) 7 v 7 2 v 6 11 v 1 v 7 6 v 1 v 2 v 3 1 2 1 v 7 2 v 6 11 v 1 v 7 6 v 1 v 2 v 3 1 2 7 v v (v 1 =, v 7 = ) (v 6 = ) EADS 33/36

Beispiel (Prim s Algorithmus) 7 v 7 v 6 v 1 2 11 v 1 v 7 6 v 1 v 2 v 3 1 2 1 v 7 2 2 v 6 2 11 v 1 v 7 6 v 1 v 2 v 3 1 2 7 v 7 (v 6 = ) (v 3 =, v = 7, v = 2) EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 7 v 7 v 6 v 1 2 2 11 v 1 v 7 6 v 1 v 2 v 3 1 2 1 v 7 2 3 v 6 11 v 1 v 7 6 v 1 v 2 v 3 7 1 6 2 7 v 7 (v 3 =, v = 7, v = 2) (v 1 = 7, v 2 = 6) EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 7 v 7 v 6 v 1 3 11 v 1 v 7 6 v 1 v 2 v 3 7 1 6 2 1 v 7 2 3 11 v 1 7 6 v v 1 v 2 7 1 2 2 v 3 v 6 7 v 7 (v 1 = 7, v 2 = 6) (v 2 = 2, v = ) EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 7 v 7 v 6 v 1 3 11 v 1 7 6 v v 1 v 2 7 1 2 2 v 3 1 v 7 2 3 11 v 1 7 6 v v 1 1 1 v 2 v 3 v 6 7 v 7 (v 2 = 2, v = ) (v 1 = 1) EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 7 v 7 v 6 v 1 3 11 v 1 7 6 v v 1 1 1 v 2 v 3 2 7 7 v 7 v 6 v 1 3 11 v 1 7 6 v v 1 6 v 2 v 3 (v 1 = 1) solche Nachbarn existieren nicht EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 7 v 7 v 6 v 1 3 11 v 1 7 6 v v 1 6 v 2 v 3 2 7 v 7 v 6 v 1 3 11 v 1 7 6 v v 1 6 v 2 v 3 solche Nachbarn existieren nicht (v = ) EADS 33/36

Beispiel (Prim s Algorithmus) 2 7 v 7 v 6 v 1 3 11 v 1 7 6 v 1 6 v 2 v 3 1 v 7 2 3 v 6 11 v 1 7 6 v 1 6 v 2 v 3 7 v v (v = ) Endzustand: v, damit ist P Q leer und der Algorithmus beendet EADS 3. Prim s Algorithmus 33/36

Korrektheit: ist klar. Zeitkomplexität: n ExtractMin O(m) sonstige Operationen inclusive DecreaseKey Implementierung der Priority Queue mittels Fibonacci-Heaps: Initialisierung O(n) ExtractMins O(n log n) ( n Stück) DecreaseKeys O(m) ( m Stück) Sonstiger Overhead O(m) EADS 3. Prim s Algorithmus 3/36

Satz Sei G = (V, E) ein ungerichteter Graph (zusammenhängend, einfach) mit Kantengewichten w. Prim s Algorithmus berechnet, wenn mit Fibonacci-Heaps implementiert, einen minimalen Spannbaum von (G, w) in Zeit O(m + n log n) (wobei n = V, m = E ). Dies ist für m = Ω(n log n) asymptotisch optimal. Beweis: s.o. EADS 3. Prim s Algorithmus 3/36

EADS 3. Prim s Algorithmus 36/36