Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22

Ähnliche Dokumente
Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen II. Sebastian Ehrenfels Sebastian Ehrenfels Graphalgorithmen II / 44

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

Algorithmen & Komplexität

Aufgaben zur Klausurvorbereitung

Grundlagen: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

Vorlesung Datenstrukturen

Wie wird ein Graph dargestellt?

Theoretische Informatik 1

Algorithmische Graphentheorie

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

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

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

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Algorithmen und Datenstrukturen Kapitel 9. und

Laufzeitanalyse (1) demogr.

4. Kreis- und Wegeprobleme

Algorithmen und Datenstrukturen Kapitel 9. und

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Bemerkung: Der vollständige Graph K n hat n(n 1)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Betriebswirtschaftliche Optimierung

Teil 2: Graphenalgorithmen

Betriebliche Optimierung

Algorithmen & Datenstrukturen 2 Praktikum 3

Graphen. Leonhard Euler ( )

Algorithmen und Datenstrukturen 2

9 Minimum Spanning Trees

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Datenstrukturen. einfach verkettete Liste

Algorithmen und Datenstrukturen 13

Kap. 6.5: Minimale Spannbäume

Algorithmen und Datenstrukturen

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Grundlagen der Informatik

3 Klassifikation wichtiger Optimierungsprobleme

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Euler und Hamiltonkreise

1 Kürzeste Pfade in Graphen

10 Kürzeste Pfade SSSP-Problem

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

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

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

Programmierkurs Python II

Datenstrukturen und Algorithmen SS07

Vorlesung 2 KÜRZESTE WEGE

Graphentheorie: Das Hamiltonische-Kreis-Problem: Definitionen, Resultate und Anwendungen

Übung zur Vorlesung Diskrete Strukturen I

Kap. 6.6: Kürzeste Wege

Minimal spannender Baum

3. Musterlösung. Problem 1: Heapsort

3. Musterlösung. Problem 1: Boruvka MST

25. Minimale Spannbäume

Kap. 6.6: Kürzeste Wege

Übungsblatt Nr. 5. Lösungsvorschlag

Datenstrukturen und Algorithmen

5. Bäume und Minimalgerüste

Bäume und Wälder. Definition 1

Effiziente Algorithmen

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Algorithmen und Datenstrukturen

Algorithmische Graphentheorie

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Kürzeste (billigste) Wege

12. AuD Tafelübung T-C3

Minimal spannende Bäume

Algorithmen und Datenstrukturen

3.2 Generischer minimaler Spannbaum-Algorithmus

ADS 2: Algorithmen und Datenstrukturen

1 Beispiele für Graphen

24. Minimale Spannbäume

10. Übung Algorithmen I

Graphen. Definitionen

Berechnung minimaler Spannbäume. Beispiel

Algorithmen und Datenstrukturen 2-1. Seminar -

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

Übungsblatt 2 - Lösung

Das Steinerbaumproblem

Graphen: Datenstrukturen und Algorithmen

Nachbarschaft, Grad, regulär, Inzidenz

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

Anmerkungen zur Übergangsprüfung

WS 2009/10. Diskrete Strukturen

Bipartite Graphen. Beispiele

Graphentheorie. Vorkurs Informatik WS 2016/2017. Dennis Aumiller

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

7: Graphentheorie. Definition 110

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

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

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

Vorlesung Datenstrukturen

Mustererkennung: Graphentheorie

Transkript:

Graphalgorithmen II Werner Sembach 14.04.2014 Werner Sembach Graphalgorithmen II 14.04.2014 1 / 22

Übersicht Datenstrukturen Union-Find Fibonacci-Heap Werner Sembach Graphalgorithmen II 14.04.2014 2 / 22

Übersicht Datenstrukturen Union-Find Fibonacci-Heap Kürzester Wege Bellman-Ford Floyd-Warshall Werner Sembach Graphalgorithmen II 14.04.2014 2 / 22

Übersicht Datenstrukturen Union-Find Fibonacci-Heap Kürzester Wege Bellman-Ford Floyd-Warshall Spezielle Pfade Eulerpfad/-kreis Hamilton-Kreis Werner Sembach Graphalgorithmen II 14.04.2014 2 / 22

Union/Find Zweck Datenstruktur zur Verwaltung disjunkter (überschneidungsfreier) Mengen mithilfe jeweils eines Repräsentanten. Werner Sembach Graphalgorithmen II 14.04.2014 3 / 22

Union/Find Zweck Datenstruktur zur Verwaltung disjunkter (überschneidungsfreier) Mengen mithilfe jeweils eines Repräsentanten. Werner Sembach Graphalgorithmen II 14.04.2014 3 / 22

Union/Find Operatoren Union(r, s) Vereinigt 2 Mengen und bestimmt neuen Repräsentanten Find(x) Gibt den Repräsentanten des Menge aus die x enthält Make-Set(x) Fügt ein neues Element als eigene Menge ein Werner Sembach Graphalgorithmen II 14.04.2014 4 / 22

Union/Find Operatoren Union(r, s) Vereinigt 2 Mengen und bestimmt neuen Repräsentanten Find(x) Gibt den Repräsentanten des Menge aus die x enthält Make-Set(x) Fügt ein neues Element als eigene Menge ein siehe Tafelanschrift Werner Sembach Graphalgorithmen II 14.04.2014 4 / 22

Union/Find Operatoren Union(r, s) Vereinigt 2 Mengen und bestimmt neuen Repräsentanten Find(x) Gibt den Repräsentanten des Menge aus die x enthält Make-Set(x) Fügt ein neues Element als eigene Menge ein siehe Tafelanschrift oder zum herumspielen www.cs.unm.edu/ rlpm/499/unionfind.jar Werner Sembach Graphalgorithmen II 14.04.2014 4 / 22

Union/Find Naive Implementierung Array speichert für jeden Wert direkt den Repräsentanten Werner Sembach Graphalgorithmen II 14.04.2014 5 / 22

Union/Find Naive Implementierung Array speichert für jeden Wert direkt den Repräsentanten Besser und gängige Implementierung Baum: wegen Optimierungsmöglichkeiten Heuristik Pfadkompression Werner Sembach Graphalgorithmen II 14.04.2014 5 / 22

Union/Find Heuristik Union hängt immer den flacheren Graph unter den tieferen. verhindert Entartung des Baums zur Liste Werner Sembach Graphalgorithmen II 14.04.2014 6 / 22

Union/Find Heuristik Union hängt immer den flacheren Graph unter den tieferen. verhindert Entartung des Baums zur Liste Pfadkompression Beim Aufruf von Find werden alle durchlaufenen Knoten direkt unter die Wurzel gehängt. reduziert häufigkeit des worst-case Werner Sembach Graphalgorithmen II 14.04.2014 6 / 22

Union/Find Laufzeiten im Worst-Case: Implementierung als Array: Find O(1), Union O(n) Implementierung als Baum: Find O(n), Union O(n 2 ) (bei bekannten Repräsentanten O(1)) mit Heuristik: Find O(log n), Union O(log 2 n) mit Pfadkompression: Find O(log n), Union O(log 2 n) Werner Sembach Graphalgorithmen II 14.04.2014 7 / 22

Union/Find Laufzeiten im Worst-Case: Implementierung als Array: Find O(1), Union O(n) Implementierung als Baum: Find O(n), Union O(n 2 ) (bei bekannten Repräsentanten O(1)) mit Heuristik: Find O(log n), Union O(log 2 n) mit Pfadkompression: Find O(log n), Union O(log 2 n) Anwendung Verwaltung von Zusammenhangskomponenten z.b. für Kruskal (minimaler Spannbaum) Werner Sembach Graphalgorithmen II 14.04.2014 7 / 22

Fibonacci-Heap Datenstrucktur, die schnellen Zugriff und Entnehmen eines minimalen (maximalen) Elements zulässt Werner Sembach Graphalgorithmen II 14.04.2014 8 / 22

Fibonacci-Heap Datenstrucktur, die schnellen Zugriff und Entnehmen eines minimalen (maximalen) Elements zulässt Werner Sembach Graphalgorithmen II 14.04.2014 8 / 22

Fibonacci-Heap Datenstrucktur, die schnellen Zugriff und Entnehmen eines minimalen (maximalen) Elements zulässt Anwendung: Dijkstra, Prim Werner Sembach Graphalgorithmen II 14.04.2014 8 / 22

Bellman-Ford-Algorithmus Algorithmus zum Finden des kürzesten Pfad von einem Startpunkt zu einem/allen anderen Punkt(en) eines Graphen Werner Sembach Graphalgorithmen II 14.04.2014 9 / 22

Bellman-Ford-Algorithmus Algorithmus zum Finden des kürzesten Pfad von einem Startpunkt zu einem/allen anderen Punkt(en) eines Graphen Vergleich zu Dijkstra Vorteile Funktioniert auch bei negativem Kantengewicht Findet die kürzesten Pfade zu allen anderen Knoten Werner Sembach Graphalgorithmen II 14.04.2014 9 / 22

Bellman-Ford-Algorithmus Algorithmus zum Finden des kürzesten Pfad von einem Startpunkt zu einem/allen anderen Punkt(en) eines Graphen Vergleich zu Dijkstra Vorteile Funktioniert auch bei negativem Kantengewicht Findet die kürzesten Pfade zu allen anderen Knoten Nachteil Langsamer als Dijkstra Werner Sembach Graphalgorithmen II 14.04.2014 9 / 22

Bellman-Ford-Algorithmus Pseudocode Werner Sembach Graphalgorithmen II 14.04.2014 9 / 22

Bellman-Ford-Algorithmus Erkennen negativer Zyklen Zeil 10-12: Zyklenfreie Pfade maximal der länge n-1 wird im n-ten Durchlauf ein kürzerer Pfad gefunden, bedeutet dies, es gibt einen Zyklus negativen Gewichts Werner Sembach Graphalgorithmen II 14.04.2014 10 / 22

Bellman-Ford-Algorithmus Erkennen negativer Zyklen Zeil 10-12: Zyklenfreie Pfade maximal der länge n-1 wird im n-ten Durchlauf ein kürzerer Pfad gefunden, bedeutet dies, es gibt einen Zyklus negativen Gewichts Laufzeit n := Knoten m := Kanten O(n * m) Dijkstra mit Fibonacci-Heap: O(n * log n + m) Werner Sembach Graphalgorithmen II 14.04.2014 10 / 22

Floyd-Warshall-Algorithmus Zweck: Finden aller kürzester Pfade in einem Graphen Idee Wenn ein kürzester Pfad von u nach v über w läuft, sind die Teilpfade (u,w) und (w,v) ebenfalls kürzerste Pfade. Wenn durch Hinzunehmen eines Knoten k ein kürzerer Pfad entsteht, läuft dieser über k, benutzt aber ansonsten breits bekannte kürzeste Pfade. Werner Sembach Graphalgorithmen II 14.04.2014 11 / 22

Floyd-Warshall-Algorithmus Pseudocode Werner Sembach Graphalgorithmen II 14.04.2014 12 / 22

Floyd-Warshall-Algorithmus Pseudocode Laufzeit: O(n 3 ) Werner Sembach Graphalgorithmen II 14.04.2014 12 / 22

Eulerpfad/-kreis Definition Eulerpfad: Pfad in einem Graphen, der jede Kante genau einmal durchläuft. Eulerkreis: Eulerpfad, bei dem Start und Endknoten übereinstimmen. Werner Sembach Graphalgorithmen II 14.04.2014 13 / 22

Eulerpfad/-kreis Definition Eulerpfad: Pfad in einem Graphen, der jede Kante genau einmal durchläuft. Eulerkreis: Eulerpfad, bei dem Start und Endknoten übereinstimmen. Existenz Eulerpfad: Graph ist zusammenhängend und genau 2 Knoten haben ungeraden Grad. Eulerkreis: Graph ist zusammenhängend und alle Knoten haben geraden Grad. Werner Sembach Graphalgorithmen II 14.04.2014 13 / 22

Eulerpfad/-kreis Algorithmus von Fleury wähle beliebigen Startknoten gehe über unmarkierte Kante zu nächsten Knoten nicht Brückenkanten nach Möglichkeit immer vorzuziehen solange weiterwandern, bis alle Kanten eingeschlossen sind Werner Sembach Graphalgorithmen II 14.04.2014 14 / 22

Eulerpfad/-kreis Algorithmus von Fleury wähle beliebigen Startknoten gehe über unmarkierte Kante zu nächsten Knoten nicht Brückenkanten nach Möglichkeit immer vorzuziehen solange weiterwandern, bis alle Kanten eingeschlossen sind Laufzeit: O(n 2 ) Werner Sembach Graphalgorithmen II 14.04.2014 14 / 22

Eulerpfad/-kreis Algorithmus von Hierholzer wähle beliebigen Startknoten konstruiere beliebigen Kreis, der keine doppelte Kante besitzt konstruiere an ersten Eckpunkt des Kreises, der noch freie Kanten hat, einen neuen Kreis und füge ihn in den Alten ein dieser Kreis darf keine bisherige Kante besitzen und ebenfalls keine Kante 2 mal durchlaufen wiederhole, bis es keine freien Kanten mehr gibt Werner Sembach Graphalgorithmen II 14.04.2014 15 / 22

Eulerpfad/-kreis Algorithmus von Hierholzer wähle beliebigen Startknoten konstruiere beliebigen Kreis, der keine doppelte Kante besitzt konstruiere an ersten Eckpunkt des Kreises, der noch freie Kanten hat, einen neuen Kreis und füge ihn in den Alten ein dieser Kreis darf keine bisherige Kante besitzen und ebenfalls keine Kante 2 mal durchlaufen wiederhole, bis es keine freien Kanten mehr gibt Laufzeit: O(n) Werner Sembach Graphalgorithmen II 14.04.2014 15 / 22

Eulerpfad/-kreis Werner Sembach Graphalgorithmen II 14.04.2014 16 / 22

Eulerpfad/-kreis Trivia: Für das Haus vom Nikolaus gibt es ohne Spiegelungen 44 Lösungen. Werner Sembach Graphalgorithmen II 14.04.2014 16 / 22

Hamiltonkreis Definition Geschlossener Pfad, der alle Knoten eines Graphen genau einmal enthält. Werner Sembach Graphalgorithmen II 14.04.2014 17 / 22

Hamiltonkreis Definition Geschlossener Pfad, der alle Knoten eines Graphen genau einmal enthält. Existenz und Form NP-Vollständig d.h. eines von 21 komplexesten und vermutlich nicht effizent zu lösenden Probleme der Informatik. Werner Sembach Graphalgorithmen II 14.04.2014 17 / 22

Hamiltonkreis Zugehörige Sätze aus Wikipedia Werner Sembach Graphalgorithmen II 14.04.2014 18 / 22

Hamiltonkreis Sonstige Hinreichende Eigenschaften vollständig und n >= 3 Kantengraph eines Euler- oder Hamiltongraphen besitzt Teilgraphen, bei dem nur Kanten entfernt wurden, der Kantengraph eines Euler- oder Hamiltongraphen ist panzyklischer Graph Werner Sembach Graphalgorithmen II 14.04.2014 19 / 22

Hamiltonkreis Notwendige Eigenschaften kein Schnittknoten vorhanden keine Brücke vorhanden der Blockgraph ist ein isolierter Knoten besitzt 2-Faktor ist 2-zusammenhängend Minimalgrad >= 2 Durchmesser <= n/2 ist 1-tough und path-tough Werner Sembach Graphalgorithmen II 14.04.2014 20 / 22

Problem des Handelsreisenden Spezialfall des Hamilton Kreises: Finden eines Minimalen Hamilton-Kreises https://icpc.informatik.uni-erlangen.de/wiki/ doku.php/templates:dynamische_programmierung# traveling_salesman_problemaufwand_o_n_n_2_n Werner Sembach Graphalgorithmen II 14.04.2014 21 / 22

Fragen Fragen? Werner Sembach Graphalgorithmen II 14.04.2014 22 / 22