Algorithmentheorie 0 Greedy Verfahren Prof. Dr. S. Albers
Greedy Verfahren. Allgemeine Vorbemerkungen 2. Einfache Beispiele Münzwechselproblem Handlungsreisenden-Problem 3. Das Aktivitäten Auswahlproblem 2
Greedy Verfahren zur Lösung eines Optimierungsproblems Treffe in jedem Verfahrensschritt diejenige Entscheidung, die im Moment am besten ist! Möglichkeiten:. 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. 3
Einfache Beispiele: Münzwechsel-Problem EUR Bargeld-Werte: 500, 200, 00, 50, 20, 0, 5, 2, Beobachtung Jeder EUR Betrag kann durch Münzen und Banknoten mit diesen Werten bezahlt werden. Ziel Bezahlung eines Betrages n mit möglichst wenig Münzen und Banknoten
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 = 87 500 200 00 50 20 0 5 2 5
Allgemeines Münzwechselproblem Werte von Münzen und Banknoten: n, n 2,..., n k n > n 2 >... > n k, und n k =. Greedy Zahlungsverfahren:. w = n 2. for i = to k do # Münzen mit Wert m i = w/ n i w = w - m i n i Jeder Geldbetrag kann bezahlt werden! 6
Land Absurdia Drei Münzen: n 3 =, n 2 > beliebig, n = 2 n 2 + Beispiel:, 20, Zu zahlender Betrag: n = 3 n 2 (z.b. n = 60) Optimale Zahlungsweise: Greedy Zahlungsverfahren: 7
Handlungsreisenden-Problem (TSP) Gegeben: n Orte und Kosten c(i,j), um von i nach j zu reisen Gesucht: Eine billigste Rundreise, die alle Orte genau einmal besucht. Formal: Eine Permutation p von {, 2,..., n}, so dass c(p(),p(2)) + + c(p(n-),p(n)) + c(p(n),p()) minimal ist. 8
Handlungsreisenden-Problem (TSP) Greedy Verfahren zur Lösung von TSP Beginne mit Ort und gehe jeweils zum nächsten bisher noch nicht besuchten Ort. Wenn alle Orte besucht sind, kehre zum Ausgangsort zurück. 9
Handlungsreisenden-Problem (TSP) Beispiel c(i,i+) =, für i =,..., n - c(n,) = M (für eine sehr große Zahl M) c(i,j) = 2, sonst Optimale Tour: 2 3 n 2 n n Vom Greedy Verfahren berechnete Tour: 2 3 n 2 n n 0
Das Aktivitäten-Auswahl-Problem Gegeben: S = {a,...,a n }, Menge von n Aktivitäten,die alle eine Ressource benötigen, z.b. einen Hörsaal. Aktivität a i : Beginn b i und Ende e i Aktivitäten a i und a j heißen kompatibel, falls [b i, e i ) [b j, e j ) = Gesucht: Eine größt mögliche Menge paarweise kompatibler Aktivitäten. Annahme: Aktivitäten sind nach aufsteigender Zeit des Endes sortiert: e e 2 e 3... e n
Greedy Strategie zur Lösung des Aktivitäten-Auswahl-Problems: 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. Satz Das Greedy Verfahren zur Auswahl der Aktivitäten liefert eine optimale Lösung des Aktivitäten-Auswahl-Problems. 2
Das Aktivitäten-Auswahl-Problem b i e i 3 5 0 6 5 7 3 2 5 3 8 5 9 6 0 6 7 8 8 2 2 3 2 0 8 8 8 9 8 8 0 2 3 5 6 7 8 9 0 2 3 3
Aktivitäten-Auswahl Algorithmus Greedy-Aktivitäten Input: n Aktivitätenintervalle [b i, e i ), i n mit e i e i+ ; Output: Eine maximal große Menge von paarweise kompatiblen Aktivitäten; A = {a } 2 last = /* last ist Index der hinzugefügte Aktivität */ 3 for i = 2 to n do if b i < e last 5 then A i = A i- 6 else /* b i e last */ 7 A i = A i- {a i } 8 last = i 9 return A m Laufzeit: O(n)
Optimalität des Greedy-Verfahrens Satz Das Greedy-Verfahren liefert eine optimale Lösung. Beweis Wir zeigen: Für alle i n gilt: Es gibt eine optimale Lösung A* mit A* {a,..., a i } = A i i = : Wähle A* {a,..., a n }, A* ist optimal, A* = {a i,..., a ik } A* = a i a i2 a i3 a ik a 5
Optimalität des Greedy-Verfahrens i - i: wähle A* {a,...,a n }, A* ist optimal mit A* {a,...,a i- } = A i- betrachte R = A* \ A i- Beobachtung R ist eine optimale Lösung für die Menge der Aktivitäten in {a i,...,a n }, die zu den Aktivitäten in A i- kompatibel sind. 6
Optimalität des Greedy-Verfahrens Fall : b i < e last A i- = a last e last b i a i a i ist nicht kompatibel zu A i- a i ist nicht enthalten in A* A* {a,...,a i } = A i- = A i 7
Optimalität des Greedy-Verfahrens Fall 2: b i e last A i- = e last a last b i ai a i ist kompatibel zu A i- Es gilt: R {a i,...,a n } R = b b 2 b 3 b l a i B* = A i- (R \ {b }) {a i } ist optimal B* {a,...,a i } = A i- {a i } = A i 8
Greedy-Verfahren Greedy-Wahl-Eigenschaften: 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 9