Kap. 6.5: Minimale Spannbäume ff

Ähnliche Dokumente
Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege

9 Minimum Spanning Trees

3.2 Generischer minimaler Spannbaum-Algorithmus

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

Kap. 6.5: Minimale Spannbäume

Kap. 3 Sortieren. 7. VO DAP2 SS Mai Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr HeapSort ff 3.1.

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

Informatik II, SS 2014

Vorlesung Datenstrukturen

25. Minimale Spannbäume

24. Minimale Spannbäume

Algorithmen und Datenstrukturen

Informatik II, SS 2016

Algorithmen & Komplexität

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Berechnung minimaler Spannbäume. Beispiel

Datenstrukturen und Algorithmen

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

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

15. Elementare Graphalgorithmen

Algorithmen und Datenstrukturen 2

Informatik II, SS 2018

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

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim

Überblick. Grundideen MST Eigenschaft. MST Eigenschaft. Kap. 6.5: Minimale Spannbäume ff

Wie wird ein Graph dargestellt?

Algorithmen und Datenstrukturen Kapitel 9. und

ADS: Algorithmen und Datenstrukturen 2

Grundlagen: Algorithmen und Datenstrukturen

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kap. 3: Sortieren (3)

WS 2009/10. Diskrete Strukturen

Datenstrukturen und Algorithmen (SS 2013)

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Kapitel 8 Graphenalgorithmen. Minimaler Spannbaum Union-find-Problem Kürzeste Wege

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS

Algorithmen II Vorlesung am

5. Bäume und Minimalgerüste

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Rückblick: Starke Zusammenhangskomponenten

Algorithmen und Datenstrukturen (für ET/IT)

Sortieren II / HeapSort Heaps

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

ADS: Algorithmen und Datenstrukturen 2

Kürzeste (billigste) Wege

Algorithmen und Datenstrukturen

Maximale s t-flüsse in Planaren Graphen

Algorithmen und Datenstrukturen Kapitel 9. und

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

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

Folien aus der Vorlesung Optimierung I SS2013

Algorithmen II Vorlesung am

Algorithmische Graphentheorie

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen

Minimal spannende Bäume

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

VL-16: Minimale Spannbäume. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger

Datenstrukturen und Algorithmen SS07

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

Algorithmen I - Tutorium 28 Nr. 11

10. Übung Algorithmen I

Kap. 3ff: Untere Laufzeitschranke und Lineare Verfahren

Motivation Überblick

Algorithmen & Komplexität

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

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

5. Vorrangwarteschlangen - Priority Queues

4.2 Fibonacci-Heaps Aufbau Potenzialfunktion. Knoten v hat folgende Felder:

Kapitel IV Minimale Spannbäume

markiert, 0: unmarkiert.)

3 Klassifikation wichtiger Optimierungsprobleme

ADS: Algorithmen und Datenstrukturen 2

3. Musterlösung. Problem 1: Boruvka MST

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Minimum Spanning Tree

1.Aufgabe: Minimal aufspannender Baum

Informatik II, SS 2018

Abstrakte Datentypen und Datenstrukturen

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

Effiziente Algorithmen

Vorlesung Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

Teil 2: Graphenalgorithmen

4 Greedy-Algorithmen (gierige Algorithmen)

Motivation Kap. 6: Graphen

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

Algorithmen und Datenstrukturen 2

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

Transkript:

Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1

Überblick 6.: Minimale Spannbäume (MST) ff: Algorithmus von Prim 2

Grundideen MST: Algorithmus von Prim Kürzeste Wege in Graphen (s. nächste Vorlesung): Algorithmus von Dijkstra Beide nutzen ähnliches Konzept: Greedy (gierig, gefräßig) Priority Queue später mehr dazu Lassen einzelnen Baum wachsen 4

Algorithmus von Prim basiert auf MST Eigenschaft: 12

basiert auf: MST Eigenschaft Aussichtsreiche Menge T von Kanten: Es existiert ein MST, der alle Kanten von T enthält. 13

MST Eigenschaft Lemma 1 (Wiederholung): Sei G=(V,E) zshgd. mit Gewichtsfunktion w : E R. Seien: S V T E aussichtsreich und keine Kante aus T verlässt S e E Kante mit minimalem Gewicht, die S verlässt Dann ist T {e} aussichtsreich. 14

PRIMs Algorithmus: lasse Baum von s aus MST Eigenschaft wachsen mit MST Eigenschaft Kantenmenge T, aussichtsreich Kante e verläßt S mit min. Gewicht s e Knotenmenge S MST sind nicht eindeutig!! Dann: T e aussichtsreich 1

Algorithmus von Prim Vgl. mit Kruskal: Kruskal läßt Wald wachsen mit Union-Find bis Spannbaum erzeugt Prim läßt von Startknoten s einen einzelnen Baum wachsen s 16

Algorithmus von Prim Idee: Verwalte Menge S von Knoten in Unterbaum,ausgehend von s, T leer Wähle billigste S verlassende Kante e=(u,v), v S, e T (Lemma 1) T aussichtsreich Stop, falls S=V T bildet MST 17

Schema: Algorithmus von Prim Wähle Startknoten s V S := {s}; T := ø // S Unterbaumknoten, T Kanten while S V do { Wähle e = (u, v), e verläßt S mit min. Gewicht T := T {e}: S:= S {v} } 18

Korrektheit Prim Induktion über Kanten e 1,,e k, die zu T hinzugefügt werden: Zeige: T i = {e 1,,e i } aussichtsreich für 0 i k i = 0: T 0 = ø aussichtsreich 1 i k: T i-1 aussichtsreich, S Knotenmenge vor Hinzunahme von e i, keine Kante aus T i-1 verläßt S e i leichteste S verlassende Kante Mit Lemma 1: T i = T i-1 {e i } aussichtsreich Und: Keine Kante aus T i verläßt neues S Am Ende hat T genau V -1 Kanten MST 19

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 20

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 21

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 22

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 23

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 24

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 2

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 26

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 27

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 28

Algorithmus von Prim s 4 12 b 2 d 10 g 9 11 e 2 4 7 8 c f 1 h 7 i Knotenmenge S, Kantenmenge T: In Teilbaum T i 29

Schema: Algorithmus von Prim Wähle Startknoten s V S := {s}; T := ø // S Unterbaumknoten, T Kanten while S V do { Wähle e = (u, v), e verläßt S mit min. Gewicht T := T {e}: S:= S {v} } Effiziente Realisierung? 30

Realisierung von Prim Testen auf Kreise (Union-Find Partition) wie bei Kruskal nicht nötig Kein Sortieren nötig Auswahl leichtester Kante nötig Priority Queue Wir speichern nicht die Kanten selbst, sondern die Knoten v V \ S. Priorität ist das Gewicht der Kante von S nach v 31

Dazu: ADT Priority Queue Dyn. Verwaltung von Elementmenge mit Prioritäten Operationen: INSERT(p, v) : Position // Knoten v, Priorität p DELETE(pos) MINIMUM() : Position EXTRACTMIN() : P x V //Rückg: min-knoten und prio DECREASEPRIORITY(pos, p) // neue Priorität p Bekannt: Binary (Min-)Heap in Array 32

Pseudo-Code: Initialisierung G=(V, E), float w[e] // Graph und Gewichte (1) var π[v], PriorityQueue Q, pos[v] // π: Vorgänger in MST // pos: Position in Q (2) for each u V \ {s} do { (3) pos[u] := Q.INSERT(, u) (4) } () pos[s] := Q.INSERT(0, s) (6) π[s] := nil 33

Pseudo-Code Prim (7) while not Q.ISEMPTY() do // über alle Knoten (8) (p, u) := Q.EXTRACTMIN() (9) pos[u] := nil // gewählten Knoten entfernen (10) for all e = (u,v) E(u) do { // ausgehende Kanten (11) if pos[v] nil and // e verlässt S? (12) w(e) < Q.PRIORITY(pos[v]) then { // günstiger? (13) Q.DECREASEPRIORITY(pos[v], w(e)) (14) π[v] := u (1) } } } 34

Analyse Aufbau des Heaps für PQ: in Θ( V ) V Durchläufe der while-schleife mit EXTRACTMIN O( V log V ) 2 Durchläufe der forall-schleife für jede Kante max. E Aufrufe von DECREASEPRIORITY O( E log V ) Gesamtlaufzeit O( E log V ), da E V -1 3

Warum kann Greedy- Verfahren funktionieren? MST besteht aus Teilbäumen, die ebenfalls MSTs sind Lokal beste Entscheidung (leichteste Kante) führt zu MST nächste VO: kürzeste Wege Algorithmen 36