Algorithmentheorie 6 – Greedy-Verfahren

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Christian Scheideler SS 2009
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
5. Sortier-Algorithmen Vorbemerkungen:
Simulated Annealing Marco Block & Miguel Domingo Seminar : Maschinelles Lernen und Markov KettenSommersemester 2002.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Verifizieren versus Berechnen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken XV Christian Schindelhauer
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
1 Bewegungsplanung Computational Geometry Prof. Dr. Th. Ottmann Bewegungsplanung bei unvollständiger Information Ausweg aus einem Labyrinth Finden eines.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1WS 06/07 Organisatorisches 1.Vorlesung am Montag, : 9-11 Uhr in Gebäude 106, Raum Podcasts: Probleme mit der Videoqualität sind behoben.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmentheorie 7 – Bin Packing
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Geometrisches Divide and Conquer
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
20:00.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Polynome und schnelle Fourier-Transformation
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Das Traveling Salesman Problem (TSP)
Korrektheit von Programmen – Testen
Analyse der Laufzeit von Algorithmen
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Wiederholung TexPoint fonts used in EMF.
 Präsentation transkript:

Algorithmentheorie 6 – Greedy-Verfahren Tobias Lauer WS 06/07

Greedy-Verfahren 1. Allgemeine Vorbemerkungen 2. Einfache Beispiele Münzwechselproblem Handlungsreisenden-Problem 3. Das Aktivitäten-Auswahlproblem WS 06/07

Greedy-Verfahren zur Lösung eines Optimierungsproblems Treffe in jedem Verfahrensschritt diejenige Entscheidung, die im Moment am besten ist! Möglichkeiten: 1. Wir erhalten stets die optimale Gesamtlösung. 2. Wir erhalten eine Lösung, die zwar nicht immer optimal ist, aber vom Optimum stets nur wenig abweicht. 3. Die berechnete Lösung kann beliebig schlecht werden. WS 06/07

Einfaches Beispiel: Münzwechselproblem EUR Bargeld-Werte: 500, 200, 100, 50, 20, 10, 5, 2, 1 Beobachtung Jeder ganze EUR Betrag kann durch Münzen und Banknoten mit diesen Werten bezahlt werden. Ziel Bezahlung eines Betrages n mit möglichst wenig Münzen bzw. Banknoten WS 06/07

Münzwechselproblem Greedy-Verfahren Wähle die maximale Zahl von Banknoten und Münzen mit jeweils größtmöglichem Wert, bis der gewünschte Betrag n erreicht ist. Beispiel: n = 487 500 200 100 50 20 10 5 2 1 WS 06/07

Allgemeines Münzwechselproblem Werte von Münzen und Banknoten: n1, n2, ..., nk n1 > n2 > ... > nk , und nk = 1. Greedy-Zahlungsverfahren: 1. w = n 2. for i = 1 to k do mi = # Münzen mit Wert ni = w / ni  w = w – m i∙ni Jeder Geldbetrag kann bezahlt werden! Liefert das Greedy-Verfahren immer eine optimale Lösung? Fehlt noch etliches WS 06/07

Land Absurdia Drei Münzen: n3 = 1, n2 > 1 beliebig, n1 = 2 n2 + 1 Beispiel: 41, 20, 1 Zu zahlender Betrag: n = 3 n2 (z.B. n = 60) Optimale Zahlungsweise: Greedy-Zahlungsverfahren: WS 06/07

Handlungsreisenden-Problem (TSP) Gegeben: n Orte und Kosten c(i, j), um von Ort i nach j zu reisen Gesucht: Eine billigste Rundreise, die alle Orte genau einmal besucht. Formal: Eine Permutation p von {1, 2, ..., n}, so dass c(p(1), p(2)) + ... + c(p(n-1), p(n)) + c(p(n), p(1)) minimal ist. WS 06/07

Handlungsreisenden-Problem (TSP) Greedy-Verfahren zur Lösung von TSP Beginne mit Ort 1 und gehe jeweils zum nächsten bisher noch nicht besuchten Ort. Wenn alle Orte besucht sind, kehre zum Ausgangsort 1 zurück. WS 06/07

Handlungsreisenden-Problem (TSP) Beispiel: c(i, i+1) = 1 für i = 1, ..., n - 1 c(n,1) = M für eine sehr große Zahl M c(i, j) = 2 sonst Vom Greedy Verfahren berechnete Tour: Optimale Tour: 1 2 3 n – 2 n – 1 n 1 2 3 n – 2 n – 1 n WS 06/07

Das Aktivitäten-Auswahl-Problem Gegeben: S = {a1,...,an} Menge von n Aktivitäten, die alle eine Ressource benötigen, z.B. einen Hörsaal. Aktivität ai: Beginn bi und Ende ei Aktivitäten ai und aj heißen kompatibel, falls [bi, ei)  [bj, ej) =  Gesucht: Eine größtmögliche Menge A  S paarweise kompatibler Aktivitäten. WS 06/07

1. Versuch Sortiere die Aktivitäten nach Anfangszeitpunkt, d.h. b1  b2  b3  ...  bn und nimm immer die nächste Aktivität hinzu, die zur bisherigen Menge kompatibel ist. Beispiel: 1 2 3 4 5 6 7 8 9 10 11 t WS 06/07 12

Das Aktivitäten-Auswahl-Problem 2 bi ei 6 1 4 2 13 3 5 8 7 9 10 11 12 14 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 8 10 1 8 11 1 8 1 8 11 WS 06/07 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

1. Versuch Sortiere die Aktivitäten nach Anfangszeitpunkt, d.h. b1  b2  b3  ...  bn und nimm immer die nächste Aktivität hinzu, die zur bisherigen Menge kompatibel ist. Problem: Dieses Verfahren ist nicht optimal! Beispiel: WS 06/07

2. Versuch Greedy-Strategie zur Lösung des Aktivitäten-Auswahl-Problems: Sortiere die Aktivitäten nach aufsteigendem Endzeitpunkt: e1  e2  e3  ...  en Wähle immer die Aktivität mit frühestem Endzeitpunkt, die legal eingeplant werden kann! Insbesondere ist die erste gewählte Aktivität die mit frühestem Endzeitpunkt. WS 06/07

2. Versuch Sortiere die Aktivitäten nach Endzeitpunkt, d.h. e1  e2  e3  ...  en 1 2 3 4 5 6 7 8 9 10 11 t 12 WS 06/07

Das Aktivitäten-Auswahl-Problem 2 bi ei 1 4 3 5 6 7 8 9 10 11 12 2 13 14 1 3 1 4 1 5 1 4 6 1 4 7 1 4 8 1 4 9 1 4 8 10 1 4 8 11 1 4 8 WS 06/07 1 4 8 11 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Aktivitäten-Auswahl Algorithmus Greedy-Aktivitäten Input: n Aktivitätenintervalle [bi, ei), 1  i  n mit ei  ei+1 Output: Eine maximal große Menge von paarweise kompatiblen Aktivitäten 1 A1 = {a1} 2 last = 1 /* last ist Index der zuletzt hinzugefügten Aktivität */ 3 for i = 2 to n do 4 if bi < elast 5 then Ai = Ai-1 6 else /* bi  elast */ 7 Ai = Ai-1  {ai} 8 last = i 9 return An Laufzeit: O(n) WS 06/07

Optimalität des Greedy-Verfahrens Satz Das Greedy-Verfahren liefert eine optimale Lösung. Beweis Wir zeigen: Für alle 1  i  n gilt: Es gibt eine optimale Gesamtlösung A* mit A*  {a1 ,...., ai} = Ai i = 1: Wähle A*  {a1 ,...., an}, A* ist optimal, A* = {ai1 ,...., aik} A* = ai1 ai2 ai3 aik a1 WS 06/07

Optimalität des Greedy-Verfahrens i –1 ® i: wähle A* Í {a1, ..., an}, A* ist optimal mit A* Ç {a1,...,ai-1 } = Ai-1 betrachte R = A* \ Ai-1 Beobachtung: R ist eine optimale Lösung für die Menge der Aktivitäten in {ai, ..., an}, die zu den Aktivitäten in Ai-1 kompatibel sind. WS 06/07

Optimalität des Greedy-Verfahrens Fall 1: bi < elast Ai-1 = ai ist nicht kompatibel zu Ai-1 ai ist nicht enthalten in A* A* Ç {a1,...,ai} = Ai-1 = Ai elast alast ai bi WS 06/07

Optimalität des Greedy-Verfahrens Fall 2: bi ³ elast Ai-1= ai ist kompatibel zu Ai-1 Es gilt: R Í {ai, ..., an} R = A*neu = Ai-1 È (R \ {c1}) È {ai} ist optimal A*neu Ç {a1,...,ai} = Ai-1 È {ai} = Ai elast alast ai bi c1 c2 c3 cl ai WS 06/07

Greedy-Verfahren Greedy-Wahl-Eigenschaft: Wenn man optimale Teillösung hat und man trifft eine lokal optimale Wahl, dann gibt es eine global optimale Lösung, die diese Wahl enthält. Optimalität von Teillösungen: Eine Teillösung einer optimalen Lösung ist eine optimale Lösung des Teilproblems.  nach jeder lokal optimalen Wahl erhalten wir ein zur Ausgangssituation analoges Problem WS 06/07