11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Ähnliche Dokumente
9 Minimum Spanning Trees

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

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

\ 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.

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

Algorithmen und Datenstrukturen

Kapitel IV Minimale Spannbäume

3.2 Generischer minimaler Spannbaum-Algorithmus

Vorlesung Datenstrukturen

Informatik II, SS 2016

6. Flüsse und Zuordnungen

Informatik II, SS 2014

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Datenstrukturen und Algorithmen

Wie wird ein Graph dargestellt?

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen (für ET/IT)

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Diskrete Mathematik Graphentheorie (Übersicht)

Algorithmen & Komplexität

Algorithmen und Datenstrukturen (für ET/IT)

6 Flüsse und Matchings

Kapitel IV Minimale Spannbäume

Effiziente Algorithmen I

ADS: Algorithmen und Datenstrukturen 2

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Algorithmen und Datenstrukturen Kapitel 10

EDM, Algorithmen und Graphenspeicherung

Datenstrukturen und Algorithmen (SS 2013)

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

Flüsse in Netzwerken

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Betriebswirtschaftliche Optimierung

Algorithmen und Datenstrukturen 2

Algorithmen II Vorlesung am

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1.Aufgabe: Minimal aufspannender Baum

Algorithmen und Datenstrukturen

Betriebliche Optimierung

Flüsse, Schnitte, bipartite Graphen

Lernmodul 7 Algorithmus von Dijkstra

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

Informatik II, SS 2014

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Berechnung minimaler Spannbäume. Beispiel

Theoretische Informatik 1

ADS: Algorithmen und Datenstrukturen 2

15. Elementare Graphalgorithmen

Wiederholung zu Flüssen

10 Kürzeste Pfade SSSP-Problem

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Flüsse, Schnitte, Bipartite Graphen

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

Programmierkurs Python II

Vorlesung Datenstrukturen

Effiziente Algorithmen

Algorithmen und Datenstrukturen Kapitel 9. und

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Kap. 6.5: Minimale Spannbäume ff

Algorithmen und Datenstrukturen Kapitel 9. und

5. Bäume und Minimalgerüste

Rückblick: divide and conquer

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Bipartite Graphen. Beispiele

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

6. Flüsse und Zuordnungen

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

WS 2009/10. Diskrete Strukturen

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Minimal spannende Bäume

3. Musterlösung. Problem 1: Boruvka MST

Breitensuche BFS (Breadth First Search)

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen II Vorlesung am

ADS: Algorithmen und Datenstrukturen 2

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin:

Theoretische Informatik 1

ADS: Algorithmen und Datenstrukturen 2

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

Das Steinerbaumproblem

1 Kürzeste Pfade in Graphen

ADS: Algorithmen und Datenstrukturen 2

Flüsse und Schnitte von Graphen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Datenstrukturen. einfach verkettete Liste

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S.

10. Übung Algorithmen I

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

Informatik II, SS 2018

Kap. 6.6: Kürzeste Wege

Algorithmen I - Tutorium 28 Nr. 11

Transkript:

Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1

Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 2

Problemstellungen Maximaler Fluss Logistische Aufgabe: Verteilungsnetz mit Kapazitäten Wasserrohre Förderbänder Paketvermittlung im Rechnernetz Quelle liefert (beliebig viele) Objekte pro Zeiteinheit Senke verbraucht diese Jede Verbindung hat eine maximale Kapazität c und einen aktuellen Fluss f Wie hoch ist die Übertragungskapazität? Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 3

Problemstellungen Problemformalisierung Gegeben: Digraph (V,E) mit KapazitätsfunkOon c: E R, Knoten q V (Quelle) und z V (Ziel) 5 4 2 4 4 q 5 6 6 1 6 z 10 3 5 5 12 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 4

Problemstellungen Definition: Fluss Ein Fluss f von q V nach z V ist eine Funktion f q,z : E! R für die die folgenden zwei Bedingungen gelten: 1. Die Kapazitäten werden eingehalten: 8e 2 E : f q,z (e) apple c(e) 2. Was in einen Knoten hereinfließt, muss wieder herausfließen (mit Ausnahme von q und z): X 8v 2 V \{q, z} : f((u, v)) = X f((v, w)) u2p (v) w2s(v) wobei P (v) ={u (u, v) 2 E} (Vorgänger von v) und S(v) ={w (v, w) 2 E} (Nachfolger von v) Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 5

Problemstellungen Maximaler Fluss Wert eines Flusses val(g, f q,z )= X u2s(q) f q,z ((q, u)) Gesucht: Wert eines maximalen Flusses max{val(g, f) f ist Fluss von q nach z} f Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 6

Problemstellungen q Beispiel 1/3 Definiere f 1 durch f 1 ((1,2))=2 f 1 ((1,3))=4 f 1 ((2,4))=1 f 1 ((2,5))=1 f 1 ((3,2))=0 f 1 ((3,5))=4 f 1 ((4,5))=0 f 1 ((4,6))=1 f 1 ((5,6))=5 val(g,f 1 )=6 1 4 5 2 4 1 6 10 4 2 5 6 6 0 4 5 3 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 7 1 0 5 4 12 1 z

Problemstellungen q Beispiel 2/3 Definiere f 2 durch f 2 ((1,2))=5 f 2 ((1,3))=3 f 2 ((2,4))=4 f 2 ((2,5))=1 f 2 ((3,2))=2 f 2 ((3,5))=1 f 2 ((4,5))=1 f 2 ((4,6))=3 f 2 ((5,6))=3 f 2 ist kein Fluss 4 4 5 2 4 1 6 10 3 5 5 6 6 2 1 5 3 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 8 1 1 3 4 12 3 z

Problemstellungen q Beispiel 3/3 Definiere f 3 durch f 3 ((1,2))=5 f 3 ((1,3))=9 f 3 ((2,4))=4 f 3 ((2,5))=5 f 3 ((3,2))=4 f 3 ((3,5))=5 f 3 ((4,5))=0 f 3 ((4,6))=4 f 3 ((5,6))=10 val(g,f 3 )=14 (f 3 ist maximal) 4 4 5 2 4 1 6 10 9 5 5 6 6 4 5 5 3 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 9 5 0 10 4 12 4 z

Algorithmen Berechnung eines maximalen Flusses Ford-Fulkerson-Algorithmus Effiziente BesOmmung eines maximalen Flusses von q nach z Vorgehensweise: Mischung aus Greedy und Zufallsauswahl Prinzip: Füge so lange verfügbare Pfade zum Gesam5luss hinzu wie möglich. Finden eines nutzbaren Pfades etwa durch Tiefensuche Für Kanten werden drei Werte nooert: 1. Aktueller Fluss f entlang der Kante Im inioalisierten Graphen ist dieser Wert überall 0 2. Vorgegebene Kapazität c 3. Abgeleitete noch verfügbare (Rest-)Kapazität c-f Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 10

Algorithmen Ford-Fulkerson-Algorithmus (Pseudocode) Vorläufige Version: initialisiere Graph mit leerem Fluss; do wähle nutzbaren Pfad aus; füge Fluss des Pfades zum Gesamtfluss hinzu; while noch nutzbarer Pfad verfügbar Nutzbarer Pfad (zyklenfreier) Pfad von Quelle q zum Ziel z, der an allen Kanten eine verfügbare Kapazität hat Nutzbarer Fluss Minimum der verfügbaren Kapazitäten der einzelnen Kanten Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 11

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 5 4 2 4 4 s 5 6 6 1 6 t 10 Graph mit Kapazitäten 3 5 5 12 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 12

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 0/5/5 0/4/4 2 4 0/4/4 s 1 0/6/6 6 0/10/10 0/5/5 0/6/6 t 3 5 0/5/5 0/12/12 IniOalisiere mit Fluss: 0 NotaOon: <aktueller Fluss f> / <Kapazität c> / <verfügbare Kapazität c-f> Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 13

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus Auswahl nutzbarer Pfade: zufällig oder geeignete HeurisOk Anmerkung: es gibt kürzere Pfade und mit höherer Kapazität 0/5/5 0/4/4 2 4 0/4/4 s 1 0/6/6 6 0/10/10 0/5/5 0/6/6 t 3 5 0/5/5 0/12/12 Auswahl eines Pfades: 1 à 2 à 5 à 6 Nutzbarer Fluss: 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 14

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 5/5/0 0/4/4 2 4 0/4/4 s 1 0/6/6 6 0/10/10 5/5/0 0/6/6 t 3 5 0/5/5 5/12/7 Aktualisieren des Flusses Auswahl eines Pfades: 1 à 3 à 5 à 6 Nutzbarer Fluss: 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 15

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 5/5/0 0/4/4 2 4 0/4/4 s 1 0/6/6 6 5/10/5 5/5/0 0/6/6 t 3 5 5/5/0 10/12/2 Aktualisieren des Flusses Auswahl eines Pfades: 1 à 3 à 2 à 4 à 6 Nutzbarer Fluss: 4 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 16

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 5/5/0 4/4/0 2 4 4/4/0 s 1 4/6/2 6 9/10/1 5/5/0 0/6/6 t 3 5 5/5/0 10/12/2 Aktualisieren des Flusses Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 17

Algorithmen Beispiel: Ford-Fulkerson-Algorithmus 5/5/0 4/4/0 2 4 4/4/0 s 1 4/6/2 6 9/10/1 5/5/0 0/6/6 t 3 5 5/5/0 10/12/2 Keine weiteren Pfade möglich è Berechnung beendet Maximaler Fluss: 14 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 18

Algorithmen Problem: Ungünstige Pfadwahl Die bisher betrachtete Version des Algorithmus ist nicht immer opomal 0/5/5 2 0/5/5 s 1 0/5/5 4 t 0/5/5 3 0/5/5 Auswahl eines Pfades: 1 à 3 à 2 à 4 Nutzbarer Fluss: 5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 19

Algorithmen Problem: Ungünstige Pfadwahl Die bisher betrachtete Version des Algorithmus ist nicht immer opomal 0/5/5 2 5/5/0 s 1 5/5/0 4 t 5/5/0 0/5/5 Aktualisieren des Flusses Keine weitere Pfadwahl mehr möglich (opomal Lösung aber Pfade (1,2,4) und (1,3,4)) 3 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 20

Algorithmen Problem: Ungünstige Pfadwahl Problem: Fluss kann nicht zurückgenommen werden Lösung: erlaube entgegengesetzte Flussrichtung durch Rückkanten s 0/5/5 2 0/0/0 1 0/5/5 4 0/5/5 0/0/0 0/0/0 3 0/0/0 0/0/0 0/5/5 0/5/5 Auswahl eines Pfades: 1 à 3 à 2 à 4 Nutzbarer Fluss: 5 t Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 21

Algorithmen Problem: Ungünstige Pfadwahl Problem: Fluss kann nicht zurückgenommen werden Lösung: erlaube entgegengesetzte Flussrichtung durch Rückkanten s 0/5/5-5/0/5 1 5/5/0 4 5/5/0 0/0/0-5/0/5 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 22 2 3-5/0/5 0/0/0 5/5/0 0/5/5 Aktualisieren des Flusses Auswahl eines Pfades: 1 à 2 à 3 à 4 Nutzbarer Fluss: 5 t

Algorithmen Problem: Ungünstige Pfadwahl Problem: Fluss kann nicht zurückgenommen werden Lösung: erlaube entgegengesetzte Flussrichtung durch Rückkanten s 5/5/0 2 0/0/0 1 0/5/5 4 5/5/0-5/0/5-5/0/5 3-5/0/5-5/0/5 5/5/0 5/5/0 Aktualisieren des Flusses Keine weiteren Pfade möglich è Berechnung beendet (Maximaler Fluss: 10) t Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 23

Algorithmen Ford-Fulkerson-Algorithmus (Pseudocode) Finale Version: für jede Kante (u,v) füge Kante (v,u) mit Kapazität 0 ein initialisiere Graph mit leerem Fluss; do wähle nutzbaren Pfad aus; füge Fluss des Pfades zum Gesamtfluss hinzu; while noch nutzbarer Pfad verfügbar Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 24

Analysen Analyse Theorem (Terminierung) Sind alle Kapazitäten in G nicht-negaov und ra<onal, dann terminiert der Algorithmus von Ford-Fulkerson nach endlicher Zeit. Ohne Beweis Theorem (Laufzeit) Ist X der Wert eines maximales Flusses in G=(V,E) und sind alle Kapazitäten in G nicht-negaov und ganzzahlig, so hat der Algorithmus von Ford-Fulkerson eine Laufzeit von O( E X). Ohne Beweis Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 25

Analysen Analyse Theorem (Korrektheit) Sind alle Kapazitäten in G nicht-negaov und ra<onal, dann berechnet der Algorithmus von Ford-Fulkerson den Wert eines maximalen Flusses. Ohne Beweis Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 26

Analysen Ford-Fulkerson-Algorithmus Wahl des Pfades beeinflusst Anzahl benöogter IteraOonen Verfahren von Edmonds und Karp Anzahl der Pfade die in einem Graphen G = (V,E) bis zum Finden des maximalen Flusses verfolgt werden müssen ist kleiner als V E, wenn jeweils der kürzeste Pfad von Quelle q zu Ziel z gewählt wird Daher: Auswahl des nächsten (kürzesten) Pfades kann basierend auf einer Variante der Breitensuche erfolgen Verbessert die Laufzeit auf O( V E 2 ) Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 27

Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE ZUSAMMENFASSUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 28

Zusammenfassung Berechnung eines maximales Flusses Algorithmus von Ford-Fulkerson Idee: Füge so lange verfügbare Pfade zum Gesamqluss hinzu wie möglich Einfügung von Rückwärtskanten notwendig um OpOmalität zu garanoeren Laufzeit abhängig von Ergebniswert Nur für nicht-negaove und raoonale Kapazitäten korrekt Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 29

Algorithmen und Datenstrukturen 11.2. SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 30

Problemstellungen Beispiel: Kommunikationsnetz Zwischen n Knotenpunkten v 1,, v n soll ein möglichst günstiges Kommunikationsnetz geschaltet werden, so dass jeder Knotenpunkt mit jedem anderen verbunden ist, ggf. auf einem Umweg über andere Knotenpunkte. Bekannt sind Kosten c i,j für die direkte Verbindung zwischen v i und v j, 1 i,j n. Alle Kosten c i,j seien verschieden und größer als Null. Modellierung als gewichtete, ungerichtete und vollständige Graphen mit Gewichtsfunktion c Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 31

Problemstellungen Beispiel: Eingabe für Kommunikationsnetz G=(V,E) V={ v 1,, v 5 } E={ (v 1,v 2 ),(v 1,v 3 ),(v 1,v 4 ), (v 1,v 5 ),(v 2,v 3 ),(v 2,v 4 ),(v 2,v 5 ),(v 3,v 4 ),(v 3,v 5 ),(v 4,v 5 ) } c((v 1,v 2 ))=6, c((v 1,v 3 ))=7, etc.; abgekürzt: c 1,2 =6, c 1,3 =7, etc. Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 32

Problemstellungen Problemstellung: Finde minimal aufspannenden Baum Einige DefiniOonen (Wdh.): Ein Graph G=(V,E) heisst zusammenhängend, wenn für alle v,w V ein Weg von v nach w in G exisoert Ein Graph G=(V,E) enthält einen Kreis, wenn es unterschiedliche Knoten v 1,,v n V gibt, so dass {v 1,v 2 },,{v n-1, n },{v n,v 1 } E Ein Graph G=(V,E) heisst Baum, wenn er zusammenhängend ist und keinen Kreis enthält Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 33

Problemstellungen Problemstellung: Finde minimal aufspannenden Baum Einige DefiniOonen (Wdh.): Ein Graph G =(V,E ) heisst Teilgraph von G=(V,E), wenn V V und E E (V xv ) Ein Graph G =(V,E ) heisst induzierter Teilgraph von G=(V,E) bzgl V V, wenn E = E (V xv ) Ein Graph G =(V,E ) heisst Spannbaum von G=(V,E), wenn G ist Teilgraph von G, V =V und G ist ein Baum Frage: Wie viele Kanten hat ein Spannbaum? Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 34

Problemstellungen Problemstellung: Finde minimal aufspannenden Baum Weitere DefiniOonen: Das Gewicht eines Graphen G=(V,E) ist C(G) = X (i,j)2e c i,j Ein Graph G =(V,E ) ist ein minimaler Spannbaum von G=(V,E) wenn G ist ein Spannbaum von G Unter allen Spannbäumen von G hat G minimales Gewicht Aufgabe: Gegeben G=(V,E), finde einen minimalen Spannbaum von G Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 35

Algorithmen Beispiel Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 36

Algorithmen Lösungsansatz: Algorithmus von Prim Vorgehensweise Schrittweise Verfeinerung Aufbau eines aufspannenden Baumes durch Hinzufügen von Kanten Greedy-Muster Jeweils kostengünstigste geeignete Kante als Erweiterung Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 37

Algorithmen Aufspannender minimaler Baum Pseudocode: // Teilbaum B besteht anfangs aus einem // beliebigen Knoten while [ B noch nicht G V aufspannt ] do [ suche kostengünstige von B ausgehende Kante ]; [ füge diese Kante zu B hinzu ]; od Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 38

Algorithmen Beispiel Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 39

Analysen Analyse Theorem (Terminierung) Der Algorithmus von Prim terminiert nach endlicher Zeit. Beweis: Einfache Schleifenanalyse. Theorem (Laufzeit) Wird für die ImplemenOerung ein Fibonacci-Heap benutzt, so hat der Algorithmus von Prim eine Laufzeit von O( E + V log V ). Ohne Beweis Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 40

Analysen Analyse Theorem (Korrektheit) Ist G ein verbundener ungerichteter gewichteter Graph, so berechnet der Algorithmus von Prim einen minimalen Spannbaum von G. Beweis: Betrachte while [ B noch nicht G V aufspannt ] do [ suche kostengünstige von B ausgehende Kante ]; [ füge diese Kante zu B hinzu ]; od Beobachtung: B ist am Ende ein Baum B ist am Ende ein Spannbaum Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 41

Analysen Analyse Noch zu zeigen: B ist am Ende ein minimaler Spannbaum. while [ B noch nicht G V aufspannt ] do [ suche kostengünstige von B ausgehende Kante ]; [ füge diese Kante zu B hinzu ]; od Sei B ein minimaler Spannbaum von G und B B. Betrachte den Zeitpunkt in der Hauptschleife, an dem sich die KonstrukOon von B von B unterscheidet. Sei e die Kante, die dann zu B hinzugefügt wird. Sei V 1 die Menge der Knoten, die schon in B sind und V 2 =V\V 1 Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 42

Analysen Analyse Da B ein minimaler Spannbaum ist, gibt es eine Kante e, die V 1 mit V 2 verbindet. Da im Algorithmus stets eine günsogste Kante gewählt wird, muss gelten g(e) g(e ). Tauschen wir in B die Kante e durch e erhalten wir also einen minimalen Spannbaum, der nicht mehr kostet als B, es folgt g(e)=g(e ). IndukOv folgt damit die Korrektheit. Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 43

Algorithmen und Datenstrukturen 11.2 SPANNBÄUME ZUSAMMENFASSUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 44

Zusammenfassung Spannbaum: Subgraph, der alle Knoten und genau V -1 Kanten enthält Minimaler Spannbaum: Spannbaum mit minimalem Gesamtgewicht Algorithmus von Prim Idee: Wähle stets günsogste vom aktuellen Baum ausgehende Kante aus Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 45