Vorlesung Datenstrukturen

Ähnliche Dokumente
Grundlagen: Algorithmen und Datenstrukturen

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

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

9 Minimum Spanning Trees

Berechnung minimaler Spannbäume. Beispiel

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Algorithmen & Komplexität

5. Bäume und Minimalgerüste

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

Graphen: Datenstrukturen und Algorithmen

1.Aufgabe: Minimal aufspannender Baum

Wie wird ein Graph dargestellt?

Minimal spannende Bäume

Datenstrukturen und Algorithmen SS07

4 Greedy-Algorithmen (gierige Algorithmen)

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

Übungsblatt 2 - Lösung

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

Maximale s t-flüsse in Planaren Graphen

Algorithmische Graphentheorie

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Kap. 6.5: Minimale Spannbäume

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

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

Freie Bäume und Wälder

Datenstrukturen. einfach verkettete Liste

Vorlesung Datenstrukturen

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Das Steinerbaumproblem

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

3 Klassifikation wichtiger Optimierungsprobleme

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. Übungsblatt zu Algorithmen I im SS 2010

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

Minimal spannender Baum

Theoretische Informatik 1

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

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

10. Übungsblatt zu Algorithmen I im SoSe 2016

Algorithmen und Datenstrukturen

3. Musterlösung. Problem 1: Boruvka MST

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

3. Musterlösung. Problem 1: Heapsort

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

DATENSTRUKTUREN UND ALGORITHMEN

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen

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

Graphdurchmusterung, Breiten- und Tiefensuche

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Bäume und Wälder. Definition 1

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

Minimal spannende Bäume

Algorithmen und Datenstrukturen 2-1. Seminar -

f h c 7 a 1 b 1 g 2 2 d

2. Optimierungsprobleme 6

Nachbarschaft, Grad, regulär, Inzidenz

Einführung in die Informatik 2

1 Kürzeste Pfade in Graphen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

Vorlesung Datenstrukturen

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117

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

WS 2009/10. Diskrete Strukturen

Isomorphie von Bäumen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

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

ADS: Algorithmen und Datenstrukturen 2

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

Kap. 6.6: Kürzeste Wege

Zentralübung zur Vorlesung Diskrete Strukturen

1 DFS-Bäume in ungerichteten Graphen

6. Übung zur Linearen Optimierung SS08

Diskrete Mathematik 1

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Datenstrukturen & Algorithmen

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Algorithmen II Vorlesung am

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Maximale s t-flüsse in Planaren Graphen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Transkript:

Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017

Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem: Gegeben ist ein zusammenhängender ungerichteter Graph G = (V, E) mit positiven reellen Kantenkosten c: E R +. Gesucht ist ein minimaler Spannbaum (MST) von G, d.h. eine Menge T E, so dass G = (V, T ) ein zusammenhängender Baum mit minimalen Kosten c(t ) = e T c(e) ist. Vorgehen: Wir leiten zunächst zwei grundlegende Eigenschaften her, die Grundlage der folgenden Algorithmen sein werden.

11.1 Schnitteigenschaft und Kreiseigenschaft Wir zeigen zwei Lemmata. Eines erlaubt, Kanten in einen entstehenden MST aufzunehmen, das andere Kanten auszuschliessen. Definition: Ein Schnitt in einem Graphen ist eine Partitionierung S, V \S der Knotenmenge V in zwei nicht-leere Teile. Dazu gehört die Kantenmenge E S = {{u, v} E u S, v V \S}. E S S V \S

11.1 Schnitteigenschaft und Kreiseigenschaft Lemma (Schnitteigenschaft): Sei S, V \S ein Schnitt mit Kantenmenge E S und e E S eine Kante mit minimalen Kosten in E S. Sei weiter T eine Kantenmenge, die in einem MST enthalten ist und keine Kante aus E S enthält. Beweis: Betrachte MST T von G mit T T. Die Endpunkte von e seien u S und v V \S. Da T MST ist, gibt es einen Weg P von u nach v in T. P muss eine Kante e = (u, v ) E S enthalten. Nach Voraussetzung e / T. Dann bildet T := (T \{e }) {e} ebenfalls einen Spannbaum. Da c(e) in E S minimal ist, folgt c(t ) c(t ). Also ist T ebenfalls MST (mit c(t ) = c(t )) und T {e} T. u u e v S V \S E S e v

11.1 Schnitteigenschaft und Kreiseigenschaft Lemma (Kreiseigenschaft): Es sei C ein einfacher Kreis in G und es sei e ein Kante in C mit maximalen Kosten. Dann ist jeder MST von G = (V, E\{e}) auch ein MST von G. Beweis: Ein Spannbaum von G ist ebenfalls Spannbaum von G. Also genügt zu zeigen, dass sich minimale Kosten ebenfalls übertragen. Betrachte dazu MST T von G. Wenn e / T, folgt sofort, dass alle MSTs von G die gleichen Kosten wie T haben. Nehmen wir nun an e = (u, v) T. Wenn man e aus T entfernt, entstehen zwei Teilbäume T u und T v mit u T u und v T v. Da C ein Kreis, gibt es eine Kante e = (u, v ) e auf C mit u T u und v T v. Dann ist T := (T \{e }) {e} ebenfalls ein Spannbaum in G mit c(t ) = c(t ) c(e) + c(e) c(t ). Also folgt, dass alle MSTs in G die gleichen Kosten wie T haben.

11.1 Schnitteigenschaft und Kreiseigenschaft Die Schnitteigenschaft führt zu einer einfachen Greedy- Strategie: beginne mit der leeren Kantenmenge T =. Solange T kein Spannbaum ist, wiederhole folgenden Schritt: Suche einen Schnitt S, V \S, so dass keine Kante aus T die beiden Seiten verbindet. Füge eine Kante aus E S mit minimalen Kanten hinzu. Wir betrachten zwei Algorithmen, die diese Strategie umsetzen: Jarnik-Prim und Kruskal. Die Kreiseigenschaft führt ebenfalls zu einer einfachen Strategie: Beginne mit der gesamten Kantenmenge und finde wiederholt Kreise und entferne deren teuerste Kante. Allerdings ist keine effiziente Umsetzung dieses Ansatzes bekannt.

11.2 Der Algorithmus von Jarnik-Prim Der Algorithmus ähnelt dem Algorithmus von Dijkstra. Vorgehen: Starte mit S = {s} und T = für beliebigen Knoten s und baue MST auf, indem nach und nach Knoten zu S und Kanten zu T hinzugefügt werden. Betrachte beliebige Iterationsrunde mit Knoten S V und Baumkanten T. Verwende den Schnitt (S, V \S). Wähle also Kante aus E S mit minimalen Kosten, füge diese zu T und den Zielknoten zu S hinzu. Um diese Kante in jedem Schritt effizient zu finden, verwende PrioWS Q für Knoten in V \S mit minimalen Kantenkosten zu S. Verwende ebenfalls Arrays d und p für Abstände und Vorgängerzeiger. Wenn ein Knoten zu S hinzugefügt wird, erniedrige ggfs. die Abstände zu inzidenten Knoten in V \S.

11.2 Der Algorithmus von Jarnik-Prim Pseudocode: Laufzeit: überträgt sich von Dijkstra, dh. O(n log n + m) bei Verwendung von Fibonacci-heaps.

11.3 Der Algorithmus von Kruskal Vorgehen: Betrachte Kanten in der Reihenfolge aufsteigender Kosten. Führe eine kreisfreie Kantenmenge T, einen Wald, mit, welche anfangs leer ist. Invariante: T kann zu einem MST erweitert werden. Wenn eine Kante zwei Komponten verbindet, wird sie zu T hinzugenommen, sonst nicht. Sei (u, v) die Kante, S u die Komponente, die u enthält, dann verwende Schnitt (S u, V \S u ) Pseudocode: Laufzeit: Wir werden sehen, dass sich Test so effizient implementieren lässt, dass das Sortieren der Kanten O(m log m) dominiert.

11.4 Die Union-Find-Datenstruktur Im Algorithmus von Kruskal wird die Knotenmenge V durch den Wald T in Blöcke (= Zushgs.komponenten) partitioniert. Die Union-Find Datenstruktur verwaltet eine Partitionierung einer Menge 1... n unter den Operationen Find und Union: Find(v) gibt Repräsentanten des Blockes von v wider Union(r,s) vereinigt die Blöcke mit Repräsentanten r, s Umsetzung der Union-Find Datenstruktur: Jeder Block als Baum mit Wurzel als Repräsentant. Speichere Vorgänger im Baum in Array parent. Diese Umsetzung wird effizient bei Verwendung von Vereinigung nach Rang Pfadkompression Analyse: siehe Buch