Graphalgorithmen Netzwerkalgorithmen. Laufzeit

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

ADS: Algorithmen und Datenstrukturen 2

4 Greedy-Algorithmen (gierige Algorithmen)

Algorithmen II Vorlesung am

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

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

Kombinatorische Optimierung

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

Wiederholung zu Flüssen

KAPITEL 4 FLÜSSE IN NETZWERKEN

Algorithmen II Vorlesung am

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

Durchschnitt von Matroiden

Das Briefträgerproblem

Suchen und Sortieren Sortieren. Heaps

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

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Algorithmen und Datenstrukturen Kapitel 10

Übungsblatt 2 - Lösung

Minimal spannende Bäume

Algorithmen und Datenstrukturen 2

Maximale s t-flüsse in Planaren Graphen

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmentheorie Maximale Flüsse

Graphen: Datenstrukturen und Algorithmen

3 Klassifikation wichtiger Optimierungsprobleme

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

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

WS 2009/10. Diskrete Strukturen

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

3. Musterlösung. Problem 1: Boruvka MST

ADS: Algorithmen und Datenstrukturen 2

Kombinatorische Optimierung

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

4.7 Der Algorithmus von Dinic für maximalen Fluss

9. Übung Algorithmen I

16. All Pairs Shortest Path (ASPS)

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

Effiziente Algorithmen I

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

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

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

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

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Algorithmische Methoden der Netzwerkanalyse

Grundbegriffe der Informatik

8 Diskrete Optimierung

Flüsse, Schnitte, bipartite Graphen

Grundbegriffe der Informatik

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen und Datenstrukturen Suchbaum

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

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

11. Übungsblatt zu Algorithmen I im SS 2010

4. Kreis- und Wegeprobleme Abstände in Graphen

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

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

DATENSTRUKTUREN UND ALGORITHMEN

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt;

Algorithmische Methoden zur Netzwerkanalyse

Resolutionsalgorithmus

Vorlesung 3 MINIMALE SPANNBÄUME

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

WS 2009/10. Diskrete Strukturen

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.

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Very simple methods for all pairs network flow analysis

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Minimal spannende Bäume

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Vorlesung 4 BETWEENNESS CENTRALITY

Übung zur Vorlesung Berechenbarkeit und Komplexität

Breiten- und Tiefensuche in Graphen

Maximale s t-flüsse in Planaren Graphen

2. Optimierungsprobleme 6

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Algorithmen zur Berechnung von Matchings

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

entheoretische Konzepte und Algorithmen

Minimum Spanning Tree

Codierung, Codes (variabler Länge)

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Gemischt-ganzzahlige und Kombinatorische Optimierung

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

8. Übung zu Algorithmen I 15. Juni 2016

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

Transkript:

Netzwerkalgorithmen Laufzeit (Folie 390, Seite 78 im Skript) Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V, V 2 }) mit der Ford Fulkerson Methode. Der Fluß ist höchstens f = min{ V, V 2 }. Finden eines Pfads dauert O( E ).

Netzwerkalgorithmen Variante der Ford Fulkerson Methode (Folie 39, Seite 78 im Skript) Dieser Algorithmus funktioniert bei ganzzahligen Kapazitäten: Algorithmus K 2 log2 (max{ c(u, v) (u, v) E }) f 0 while K do while es gibt einen augmentierenden Pfad p mit c f (p) K do augmentiere f entlang p K K/2 return f Die Laufzeit ist O( E 2 log K). vergleiche mit O( E f ).

Netzwerkalgorithmen Variante der Ford Fulkerson Methode (Folie 392, Seite 78 im Skript) Theorem Die Laufzeit dieser Variante beträgt O( E 2 log C), wobei C = max{ c(u, v) (u, v) E }. Beweis. Die Restkapazität eines minimalen Schnitts ist stets höchstens 2K E. Für jedes K gibt es nur E Augmentierungen Es gibt O(log C) verschiedene K

Netzwerkalgorithmen Der Edmonds Karp Algorithmus (Folie 393, Seite 78 im Skript) Die Ford Fulkerson Methode kann sehr langsam sein, auch wenn das Netzwerk klein ist. Der Edmonds Karp Algorithmus ist polynomiell in der Größe des Netzwerks. Algorithmus Initialisiere Fluß f zu 0 while es gibt einen augmentierenden Pfad do finde einen kürzesten augmentierenden Pfad p augmentiere f entlang p return f Unterschied: Es wird ein kürzester Pfad gewählt

Netzwerkalgorithmen Der Edmonds Karp Algorithmus (Folie 394, Seite 78 im Skript) Algorithmus for each edge (u, v) E do f (u, v) 0 f (v, u) 0 while there exists a path from s to t in G f do p a shortest path from s to t in G f c f (p) min{ c f (u, v) (u, v) is in p } for each edge (u, v) in p do f (u, v) f (u, v) + c f (p) f (v, u) f (u, v) return f

(Folie 395, Seite 78 im Skript) 3 3 2 2 5 2 3 3 Eingabe: Ungerichteter Graph mit Kantengewichten Ausgabe: Ein Baum, der alle Knoten enthält und minimales Kantengewicht hat

Der Algorithmus von Prim Beispiel (Folie 396, Seite 78 im Skript) 3 2 2 3 2 0 2 2 5 3 2 3 Beginne mit leerem Baum (nur Wurzel) Hänge wiederholt billigste Kante an ohne einen Kreis zu schließen

Java (Folie 397, Seite 78 im Skript) public void prim(map Node, Node p) { SimpleIterator Node it; for(it = nodeiterator(); it.more(); it.step()) it.key().weight = e0; it = nodeiterator(); it.key().weight = 0.0; Heap Node H = new Heap Node (); for(it = nodeiterator(); it.more(); it.step()) H.insert(it.key()); while(!h.isempty()) { Node u = H.extract min(); Iterator Node, Edge et; for(et = neighbors.find(u).iterator(); et.more(); et.step()) { Node v = et.key(); Edge e = et.data(); if(h.iselement(v) && e.weight < v.weight) { p.insert(v, u); v.weight = e.weight; H.decrease key(v); } } } }

Der Algorithmus von Prim Laufzeit (Folie 398, Seite 78 im Skript) Laufzeit für einen Graphen G = (V, E). Anzahl von extract min: V Anzahl von decrease key: E Laufzeit ist O(( V + E ) log V ), falls wir einen Heap als Prioritätswarteschlange verwenden. Laufzeit ist O( V log V + E ), falls wir stattdessen einen Fibonacci-Heap nehmen. Korrektheit des Algorithmus folgt später.

Greedy Algorithmen Münzen wechseln (Folie 399, Seite 78 im Skript) Es gibt diese acht Euromünzen: Was ist die minimale Zahl von Münzen um 3.34 Euro zu zahlen? Antwort: Wir brauchen sechs Münzen: Es ist unmöglich, weniger Münzen zu verwenden.

Münzwechsel Ein Greedy-Algorithmus (Folie 400, Seite 78 im Skript) Wir wollen den Betrag n wechseln: Algorithmus r := n; while r > 0 do Choose biggest coin c with value(c) r; S := S {c}; r := r value(c) od; return S

Korrektheit (Folie 40, Seite 78 im Skript) Lemma A Sei C eine Münze und v ein Betrag, der mindestens so groß ist wie der Wert von C. Dann ist es suboptimal, v mit Münzen kleiner als C auszudrücken. Beweise das Lemma für jede Münze von der kleinsten bis zur größten. Nimm als Beispiel. Sei v mindestens EUR. Nehmen wir an, v kann mit genau k und kleineren Münzen für die verbleibenden v 50k Cents optimal bezahlt werden. Da diese v 50k Cents optimal ausgezahlt werden, muß v 50k < 50 und somit auch 00 v < 50(k + ) gelten. Es folgt k 2, ein Widerspruch zur Optimalität.

Korrektheit (Folie 402, Seite 78 im Skript) Theorem Der Greedy-Algorithmus für den Münzwechsel ist optimal. Beweis. Nimm an, C, C 2,..., C n ist eine Greedy-Lösung (mit C i C i+ ). Zeige mit Induktion über k, daß eine optimale Lösung mit C, C 2,..., C k beginnt. Falls dem nicht so wäre, gäbe es eine optimale Lösung C, C 2,..., C k, C k,..., C m wobei C k > C i für i = k,..., m. Da C k + + C m C k ist dies ein Widerspruch zu Lemma A.

Briefmarkensammeln (Folie 403, Seite 78 im Skript) Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo? Welche Briefmarken für einen 20 fen Brief? Der Greedy-Algorithmus führt nicht zu einer optimalen Lösung und findet manchmal gar keine!

Matroide (Folie 404, Seite 78 im Skript) Der Korrektheitsbeweis für Greedy-Algorithmen kann sehr trickreich sein. Münzwechsel ist hierfür ein Beispiel. Viele Beweise können allerdings mit Hilfe von der Theorie der Matroide geführt werden. Definition (Matroid) Ein Matroid M = (S, I) besteht aus einer Basis S und einer Familie I 2 S von unabhängigen Mengen mit: Falls A B und B I, dann A I (M ist hereditary). 2 Falls A, B I und A < B dann gibt es ein x B so daß A {x} I (M hat die Austauscheigenschaft).

Matroide (Folie 405, Seite 78 im Skript) Beispiel Der graphische Matroid Sei G = (V, E) ein ungerichteter Graph. Sei F = { F E (V, F ) ist azyklisch }. Dann ist (E, F ) ein Matroid. Zum Beweis machen wir zunächst eine Beobachtung: Es sei G = (V, E) ein Wald. Dann verbindet die Kante e E zwei Bäume in G gdw. G = (V, E {e}) kreisfrei ist.

(Folie 406, Seite 78 im Skript) Beweis. Vererbungseigenschaft: Wegnehmen von Kanten kann keine Kreise schließen. Austauscheigenschaft: Seien G A = (V, A) und G B = (V, B) Teilwälder von G und A < B Beobachtung: Ein Wald mit k Kanten besteht aus V k Bäumen. 2 G A hat mehr Bäume als G B 3 Es gibt einen Baum T in G B, der zwei Bäume in G A verbindet 4 Es gibt eine Kante in T, die keinen Kreis in G A schließt

Matroide (Folie 407, Seite 78 im Skript) Wir nennen eine unabhängige Menge A maximal, wenn keine echte Obermenge von A unabhängig ist. Lemma (Lemma G) Alle maximalen unabhängigen Mengen eines Matroids haben die gleiche Größe. Beweis. Angenommen, daß A und B maximale unabhängige Mengen sind, aber A < B. Nach der Austauscheigenschaft gibt es ein x B, so daß A {x} unabhängig ist. Das widerspricht der Maximalität von A.

Gewichtete Matroide (Folie 408, Seite 78 im Skript) Beispiel Ein gewichtetes Matroid ist ein Matroid M = (S, I) mit einer Gewichtsfunktion w : S Q. Wir nennen eine Menge maximalen Gewichts unter allen maximalen unabhängigen Mengen optimal. Viele Optimierungsprobleme können durch das Finden einer optimalen Menge in einem Matroid gelöst werden. Ein minimaler Spannbaum ist eine optimale Menge im graphischen Matroid.

(Folie 409, Seite 78 im Skript) Der Greedy-Algorithmus auf gewichteten Matroiden Sei M = (S, I) ein Matroid mit Gewichten w. Dieser Algorithmus findet eine optimale Menge. Algorithmus function Greedy(S) : R := ; sort S into (s[],..., s[n]) with w(s[i]) w(s[i + ]); for i =,..., n do if R {s[i]} I then R := A {s[i]} fi od; return R Die Laufzeit ist O(n log n + nf (n)), wenn ein Vergleich konstante Zeit braucht, und der Unabhängigkeitstest O(f (n)).

Korrektheit (Folie 40, Seite 78 im Skript) Lemma (G2) Sei M = (S, I) ein Matroid mit Gewichten w. Wenn x S maximales Gewicht unter allen x hat, für die {x} unabhängig ist, dann gibt eine optimale Menge, die x enthält. Beweis. Sei B eine optimale Menge mit x / B. Wir haben w(y) w(x) für jedes y B, weil {y} nach der Vererbungseigenschaft unabhängig ist. Beginne mit A = {x} und füge Elemente von B zu A hinzu (A bleibt unabhängig, wegen der Austauscheigenschaft) bis A = B. Dann ist A = B {y} {x} für ein y B und daher gilt w(a) W (B).

Kontraktion eines Matroids (Folie 4, Seite 78 im Skript) Definition Sei M = (S, I) ein Matroid und x S. Dann ist M = (S, I ) die Kontraktion von M um x, wobei S = { y S {x, y} I, x y }, I = { A S {x} A {x} I }. Wir beobachten, daß der Greedy-Algorithmus auf M arbeitet, nachdem er x gewählt hat.

(Folie 42, Seite 78 im Skript) Lemma (G3) Sei M = (S, I) ein Matroid mit Gewichten w. Sei x das erste Element, daß durch den Greedy-Algorithmus gewählt wird. Dann ist eine optimale Menge für die Kontraktion M von M um x zusammen mit x eine optimale Menge für M. Beweis. Sei x A und B = A {x}. Dann ist A maximal unabhängig in M gdw. B maximal unabhängig in M ist. Da w(a) = w(b) + w(x) gilt, ist A optimal in M gdw. B optimal in M ist.

Korrektheit des Greedy-Algorithmus (Folie 43, Seite 78 im Skript) Theorem Der Greedy-Algorithmus berechnet eine optimale Menge in einem gewichteten Matroid. Beweis. Aus G2 und G3 folgt die Korrektheit mittels Induktion über die Größe der maximalen unabhängigen Menge, die nach G wohldefiniert ist.