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

Ähnliche Dokumente
Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum

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

Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

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

ADS: Algorithmen und Datenstrukturen 2

Informatik II, SS 2016

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

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

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

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

Grundlagen: Algorithmen und Datenstrukturen

3.2 Generischer minimaler Spannbaum-Algorithmus

Kapitel IV Minimale Spannbäume

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

Vorlesung Datenstrukturen

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

Kapitel IV Minimale Spannbäume

Kap. 6.5: Minimale Spannbäume

Berechnung minimaler Spannbäume. Beispiel

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

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

Informatik II, SS 2014

Wie wird ein Graph dargestellt?

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.

4 Greedy-Algorithmen (gierige Algorithmen)

Kap. 6.5: Minimale Spannbäume ff

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

Quicksort ist ein Divide-and-Conquer-Verfahren.

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

Datenstrukturen und Algorithmen

24. Minimale Spannbäume

Algorithmen II Vorlesung am

Algorithmen I. Tutorium Sitzung. Dennis Felsing

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Algorithmen I - Tutorium 28 Nr. 11

5. Bäume und Minimalgerüste

25. Minimale Spannbäume

Minimal spannende Bäume

Datenstrukturen und Algorithmen SS07

Algorithmen & Komplexität

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

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kombinatorische Optimierung

Algorithmen und Datenstrukturen

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen Kapitel 9. und

Algorithmische Graphentheorie

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Algorithmen für Planare Graphen

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

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

Freie Bäume und Wälder

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

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

1 Matroide. 1.1 Definitionen und Beispiele. Seminar zur ganzzahligen Optimierung Thema: Durchschnitt von Matroiden - Satz von Edmonds von Dany Sattler

Kombinatorische Optimierung

Effiziente Algorithmen I

Algorithmen II Vorlesung am

9 Minimum Spanning Trees

Algorithmen und Datenstrukturen Kapitel 9. und

Rückblick: Starke Zusammenhangskomponenten

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

Algorithmen II Vorlesung am

Laufzeitanalyse (1) demogr.

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

Algorithmische Methoden für schwere Optimierungsprobleme

Folien aus der Vorlesung Optimierung I SS2013

Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei

Erinnerung VL

WS 2013/14. Diskrete Strukturen

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

ADS: Algorithmen und Datenstrukturen 2

Informatik II, SS 2014

10. Übung Algorithmen I

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Informatik II, SS 2016

3 Klassifikation wichtiger Optimierungsprobleme

Datenstrukturen und Algorithmen (SS 2013)

Vorlesung Datenstrukturen

Effiziente Algorithmen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Durchschnitt von Matroiden

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

3. Musterlösung. Problem 1: Boruvka MST

1.Aufgabe: Minimal aufspannender Baum

Transkript:

Briefmarkensammeln (Folie 413, Seite 80 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!

Briefmarkensammeln (Folie 413, Seite 80 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!

Briefmarkensammeln (Folie 413, Seite 80 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 414, Seite 80 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: 1 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 415, Seite 80 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.

Matroide (Folie 415, Seite 80 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 416, Seite 80 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 1 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 417, Seite 80 im Skript) Wir nennen eine unabhängige Menge A maximal, wenn keine echte Obermenge von A unabhängig ist. Lemma (Lemma G1) 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.

Matroide (Folie 417, Seite 80 im Skript) Wir nennen eine unabhängige Menge A maximal, wenn keine echte Obermenge von A unabhängig ist. Lemma (Lemma G1) 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.

Matroide (Folie 417, Seite 80 im Skript) Wir nennen eine unabhängige Menge A maximal, wenn keine echte Obermenge von A unabhängig ist. Lemma (Lemma G1) 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 418, Seite 80 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 419, Seite 80 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 := emptyset; sort S into(s[1],..., s[n]) with w(s[i]) w(s[i + 1]); for i = 1,..., n do if R { s[i]} subseteq I then R := R { 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 420, Seite 80 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).

Korrektheit (Folie 420, Seite 80 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).

Korrektheit (Folie 420, Seite 80 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).

Korrektheit (Folie 420, Seite 80 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 421, Seite 80 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.

Kontraktion eines Matroids (Folie 421, Seite 80 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 422, Seite 80 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.

(Folie 422, Seite 80 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.

(Folie 422, Seite 80 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 423, Seite 80 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 1 wohldefiniert ist.

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskal: Minimaler Spannbaum (Folie 424, Seite 80 im Skript) 4 6 2 3 1 2 5 3 7 1 4

Kruskals Algorithmus Implementierung (Folie 425, Seite 80 im Skript) Algorithmus function Kruskal(G, w) : A := emptyset; for each vertex v in V[G] do Make Set(v) od; sort the edges of E into nondecreasing order by weight; for each edge { u, v} in E, nondecreasingly do if Find Set(u) Find Set(v) then A := A { { u, v}} ; Union(u, v) fi od; return A

Korrektheit und Laufzeit der Implementierung (Folie 426, Seite 80 im Skript) Die Korrektheit folgt als Korollar aus der Korrektheit des allgemeinen Greedy-Algorithmus und der Beobachtung zum graphischen Matroid. Laufzeit mit m = E und n = V und m n 1: n Make-Set-Operationen, O(m log m) Zeit für das Sortieren der Kanten, und O(m) Find-Set- und Union-Operationen. Mit einer geeigneten Union-Find-Implementierung zusammen O(m log m).

Korrektheit und Laufzeit der Implementierung (Folie 426, Seite 80 im Skript) Die Korrektheit folgt als Korollar aus der Korrektheit des allgemeinen Greedy-Algorithmus und der Beobachtung zum graphischen Matroid. Laufzeit mit m = E und n = V und m n 1: n Make-Set-Operationen, O(m log m) Zeit für das Sortieren der Kanten, und O(m) Find-Set- und Union-Operationen. Mit einer geeigneten Union-Find-Implementierung zusammen O(m log m).