Algorithmen und Datenstrukturen

Ähnliche Dokumente
Algorithmen und Datenstrukturen 2

1 topologisches Sortieren

8 Diskrete Optimierung

Graphen: Datenstrukturen und Algorithmen

10 Graphenalgorithmen in Java

Algorithmen und Datenstrukturen (WS 2007/08) 63

4 Greedy-Algorithmen (gierige Algorithmen)

3. Musterlösung. Problem 1: Boruvka MST

Algorithmen II Vorlesung am

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

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

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

Algorithmen und Datenstrukturen 2

Breiten- und Tiefensuche in Graphen

11.1 Grundlagen - Denitionen

Informatik II, SS 2014

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

ADS: Algorithmen und Datenstrukturen 2

Algorithmische Graphentheorie

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

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

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

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.

Wiederholung zu Flüssen

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

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

Informatik II, SS 2014

WS 2009/10. Diskrete Strukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Effiziente Algorithmen I

Tutorium Algorithmen & Datenstrukturen

Flüsse, Schnitte, bipartite Graphen

Algorithmen und Datenstrukturen Kapitel 10

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

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

6. Flüsse und Zuordnungen

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

16. All Pairs Shortest Path (ASPS)

Algorithmen und Datenstrukturen Graphen - Einführung

Kapitel 6: Graphalgorithmen Gliederung

Das Briefträgerproblem

2. Musterlösung. Problem 1: Least Common Ancestor

Algorithmen und Datenstrukturen 2

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

Guten Morgen und Willkommen zur Saalübung!

Kombinatorische Optimierung

14. Rot-Schwarz-Bäume

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Algorithmische Methoden der Netzwerkanalyse

Algorithmische Mathematik

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

4.7 Der Algorithmus von Dinic für maximalen Fluss

Datenstrukturen & Algorithmen

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Grundlagen der Programmierung 2. Bäume

1. Einleitung wichtige Begriffe

Randomisierte Algorithmen

Algorithmentheorie Maximale Flüsse

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

Die Komplexitätsklassen P und NP

Praktikum Planare Graphen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Routing Algorithmen. Begriffe, Definitionen

Customization (Zuschneiden)

Vorlesung 4 BETWEENNESS CENTRALITY

Übung zur Vorlesung Algorithmische Geometrie

Periodische Fahrpläne und Kreise in Graphen

Datenstrukturen und Algorithmen

JAVA - Suchen - Sortieren

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

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

Algorithmen und Datenstrukturen Suchbaum

2. Repräsentationen von Graphen in Computern

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

13. Binäre Suchbäume

Algorithmen auf Graphen. Kapitel V. Algorithmen auf Graphen

Struktur am Beispiel einer Liste

Algorithmen & Datenstrukturen 1. Klausur

Maximale s t-flüsse in Planaren Graphen

die gelbe Jacke die rote Jacke die blaue Jacke die schwarze Jacke die violette Hose die rote Hose die grüne Hose die schwarze Hose

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Laufzeitabschätzung

Grundlagen der Informatik I (Studiengang Medieninformatik)

Maximale s t-flüsse in Planaren Graphen

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Netzwerkfluß. Gegeben ist ein System von Wasserrohren: Die Kapazität jedes Rohres ist 3, 5 oder 8 l/s.

Graphentheorie 1. Diskrete Strukturen. Sommersemester Uta Priss ZeLL, Ostfalia. Hausaufgaben Graph-Äquivalenz SetlX

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Einführung in Heuristische Suche

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

Lösungsvorschläge Blatt Z1

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

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

Ein Algorithmus für die

Transkript:

1 Algorithmen und Datenstrukturen Wintersemester 2017/18 20. Vorlesung Tiefensuche und topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I

Themen für den 3. Kurztest (Do, 25.01.18) 2 ot-schwarz-bäume (-S-Eigenschaften, Höhe) Augmentieren von Datenstrukturen Amortisierte Analyse Nächstes Paar (Teile und Herrsche) Graphen und Breitensuche

3 -? $ Maze-01 Grüningen hedge maze 1576 (destroyed) von TH Eigenes Werk. Lizenziert unter CC BY-SA 3.0 über Wikimedia Commons

Tiefensuche Eingabe: Ausgabe: (un)gerichteter Graph G discovery time Besuchsintervalle ( ) (u.d/u.f ) DFS-Wald π u π v w 1/ 1/8 4/ 4/5 Klassifizierung der Graphkanten: Baumkanten (Kanten von G π ) ückwärtskanten () finish time Kanten des DFS-Waldes (entgegen π gerichtet) Nicht-Baumkanten zu einem Vorgängerknoten V 2/ 2/7 3/ 3/6 K x y z weiss grau 9/12 9/ 10/11 10/ 4 - Farbe Zielknoten: Vorwärtskanten (V) Nicht-Baumkanten zu einem Nachfolgerknoten Kreuzkanten (K) Kanten, bei denen kein Endpunkt Vorgänger des anderen ist. schwarz und start.d < ziel.d schwarz und start.d > ziel.d

Tiefensuche Pseudocode DFS(Graph G = (V, E)) foreach u V do u.color = white u.π = nil time = 0 // globale Variable! foreach u V do if u.color == white then DFSVisit(G, u) DFSVisit(Graph G, Vertex u) time = time + 1 u.d = time; u.color = gray foreach v Adj[u] do if v.color == white then v.π = u; DFSVisit(G, v) time = time + 1 u.f = time; u.color = black u v w 1/8 V 2/7 4/5 3/6 K x y z 9/12 10/11 Laufzeit von DFS? DFSVisit wird nur für weiße Knoten aufgerufen. In DFSVisit wird der neue Knoten sofort grau gefärbt. DFSVisit wird für jeden Knoten genau 1 aufgerufen. 5 - DFS ohne if O(V ) Zeit (out-) DFSVisit ohne ek. O(deg u) DFS gesamt O(V + E) Zeit

Tiefensuche Eigenschaften 3/6 y z s t 2/9 1/10 11/16 6 - ( s 4/5 x 7/8 w ( z ( y (x x) y ) ( w w ) ) z 12/13 ) ( s t v ( ) ( ) v v u u 14/15 ) t u B y x s t z v u V w K 1 2 5 10 15 time

Tiefensuche Analyse Satz. (Klammerntheorem) Nach DFS(G) gilt für {u, v} ( V 2) genau eine der Bedingungen (i) Besuchsintervalle disjunkt und Baumkanten enthalten weder u-v- noch v-u-weg. (ii) [u.d, u.f ] [v.d, v.f ] und Baumkanten enthalten v-u-weg. (iii) Wie (ii), nur umgekehrt. Beweis. Wir betrachten zwei Fälle. 1. Fall: u.d < v.d. A) v.d < u.f,. d.h. v wurde entdeckt, als u noch grau war. v ist Nachfolger von u, d.h. es gibt einen u-v-weg. Wegen u.d < v.d gilt: DFSVisit(Graph G, Vertex u) time = time + 1 u.d = time; u.color = gray foreach v Adj[u] do if v.color == white then v.π = u; DFSVisit(G, v) time = time + 1 u.f = time; u.color = black v wurde später als u entdeckt. alle Kanten, die v verlassen, sind erforscht; v wird schwarz, bevor DFS zu u zurückkehrt und u schwarz macht [v.d, v.f ] [u.d, u.f ], d.h. (ii) 7 -

Tiefensuche Analyse Satz. (Klammerntheorem) Nach DFS(G) gilt für {u, v} ( V 2) genau eine der Bedingungen (i) Besuchsintervalle disjunkt und Baumkanten enthalten weder u-v- noch v-u-weg. (ii) [u.d, u.f ] [v.d, v.f ] und Baumkanten enthalten v-u-weg. (iii) Wie (ii), nur umgekehrt. Beweis. Wir betrachten zwei Fälle. 1. Fall: u.d < v.d. 2. Fall: v.d < u.d. Symmetrisch! A) v.d < u.f. B) u.f < v.d. DFSVisit(Graph G, Vertex u) time = time + 1 u.d = time; u.color = gray foreach v Adj[u] do if v.color == white then v.π = u; DFSVisit(G, v) time = time + 1 u.f = time; u.color = black (Vertausche im Beweis u v.) Laut Code gilt u.d < u.f < v.d < v.f (siehe Code). [u.d, u.f ] [v.d, v.f ] = (i) Keiner der beiden Knoten wurde entdeckt, während der andere noch grau war., d.h. keiner Nachf. des anderen. 7 -

Tiefensuche in ungerichteten Graphen 8 - Satz. G ungerichtet G hat nur Baum- und ückwärtskanten. Beweis. Sei uv (kurz für {u, v}) eine beliebige Kante von G. u u B v v O.B.d.A. gilt u.d < v.d. Dann entdeckt DFS v und färbt v schwarz, bevor u schwarz gefärbt wird (da v Adj[u]). Falls DFS uv zum ersten Mal von u nach v überschreitet, ist v zu diesem Zeitpunkt weiss. Dann ist uv Baumkante. Andernfalls wird uv zum ersten Mal von v nach u überschritten. Dann ist uv -Kante, da u dann schon (und immer noch) grau ist.

9 - Ablaufplanung Kante bedeutet: Unterhose vor Hose anziehen! Hose Unterhose Socken Schuhe Gürtel Schal Uhr T-Shirt Anorak Pulli Aufgabe: Finde Ablaufplan d.h. eihenfolge der Knoten, so dass alle Einschränkungen erfüllt sind (z.b. T-Shirt vor Pulli). Topologische Sortierung: Lineare Ordnung der Knoten, so dass aus (u, v) E folgt: u kommt vor v.

Ablaufplanung 9 - Kante bedeutet: Unterhose vor Hose anziehen! 1/8 Hose Gürtel Unterhose Socken 19/20 Schuhe 2/7 3/4 Uhr 5/6 9/10 14/15 Schal T-Shirt 11/18 13/16 Anorak Pulli 12/17 Idee: Nutze Tiefensuche! Alle Kanten sind Sortiere Knoten nach absteigenden f -Zeiten. DFS-Besuchsintervalle nach rechts gerichtet. 19/20 Socken 11/18 T-Shirt 12/17 Pulli 13/16 Anorak 14/15 Schal Uhr 9/10 Unterhose 1/8 Hose 2/7 Gürtel 5/6 Schuhe 3/4

Topologisch sortieren 10 Topologische Sortierung: Lineare Ordnung der Knoten, so dass aus (u, v) E folgt: u kommt vor v. TopologicalSort(DirectedGraph G) L = new List() DFS(G) mit folgender Änderung: Wenn ein Knoten schwarz gefärbt wird, häng ihn vorne an die Liste L an. return L Laufzeit? O(V + E) Korrekt? Wann funktioniert s? Def. Ein (gerichteter) Graph ist kreisfrei, wenn er keinen (gerichteten) Kreis enthält.

Kreisfrei keine -Kanten 11 Lem. Beweis. v W u v i 1 Ein gerichteter Graph G ist kreisfrei DFS(G) liefert keine ückwärtskanten. v i Sei G kreisfrei. Angenommen DFS(G) liefert -Kante (u, v). Dann ist u Nachfolger von v im DFS-Wald. D.h. G enthält einen gerichteten v-u-weg W. Aber dann ist W (u, v) ein gerichteter Kreis. DFS(G) liefere keine -Kanten. Ang. G enthält trotzdem Kreis C = v 1,..., v k. Sei v i der 1. Knoten in C, den DFS(G) erreicht. Es gibt einen Weg von v i nach v i 1 in G. DFS gelangt zu v i 1, solange v i grau ist. (v i 1, v i ) ist -Kante.

Korrektheit von TopologicalSort 12 Satz. Sei G ein gerichteter kreisfreier Graph. Dann liefert TopologicalSort(G) eine topologische Sortierung von G. Beweis. Sei L = v n, v n 1,..., v 1 = TopologicalSort(G). u v Dann gilt v 1.f < v 2.f < < v n.f. Sei (u, v) Kante von G. Zu zeigen: v.f < u.f Welche Farbe hat v, wenn DFS (u, v) überschreitet? v grau (u, v) ist -Kante v weiß v schwarz Widerspruch zu Lemma: G kreisfrei! v Nachfolger von u v.f < u.f u.f noch nicht gesetzt, v.f gesetzt v.f < u.f

Vergleich Durchlaufstrategien für Graphen 13 Breitensuche Tiefensuche Laufzeit O(V + E) O(V + E) Ergebnis BFS-Baum, d.h. kürzeste Wege d- und f -Werte, z.b. für top. Sortierung Datenstruktur Schlange ekursion bzw. Stapel Vorgehen nicht-lokal lokal