Effiziente Algorithmen

Ähnliche Dokumente
6.1. Ein Approximationsalgorithmus für das Rucksackproblem

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

Greedy Algorithms - Gierige Algorithmen

5.4 Das Rucksackproblem

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

2.6 Asymptotische Approximation: Min Binpacking

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

Algorithmentheorie. 10 Greedy Verfahren

Übung Algorithmen und Datenstrukturen

Kleinster Umschließender Kreis

5. Übungsblatt zu Algorithmen I im SoSe 2016

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Algorithmen und Datenstrukturen

Algorithmentheorie 1. Vorlesung

2.4 Starke Zusammenhangskomponenten in Digraphen

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

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2

Komplexität von Algorithmen:

Wann sind Codes eindeutig entschlüsselbar?

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Algorithmentheorie 1. Vorlesung

Algorithmen II Vorlesung am

Abschnitt: Algorithmendesign und Laufzeitanalyse

Algorithmen und Datenstrukturen 2

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

1.3 Erinnerung: Mergesort

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Kombinatorische Optimierung

Algorithmen II Vorlesung am

Informatik II Greedy-Algorithmen

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13

Informatik II Greedy-Algorithmen

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

4 Greedy-Algorithmen (gierige Algorithmen)

Algorithmen und Datenstrukturen

Das Heiratsproblem. Definition Matching

6. Musterlösung. Problem 1: Abgeschlossenheit der Addition *

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

Euklidischer Algorithmus

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

Probleme aus NP und die polynomielle Reduktion

Konzepte der Informatik

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Übung Algorithmen und Datenstrukturen

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

Theoretische Grundlagen der Informatik

durch Einfügen von Knoten konstruiert werden kann.

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Datenstrukturen und Algorithmen D-INFK

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

Kürzeste (billigste) Wege

Übung Algorithmen und Datenstrukturen

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Vorlesung Datenstrukturen

Universität Karlsruhe (TH)

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Die Klasse NP und die polynomielle Reduktion

Datenstrukturen und Algorithmen SS07

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

Lösungen von Übungsblatt 12

DAP2 Probeklausur. Matrikelnummer Vorname Nachname. Datum: 24. Juli C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ

Grundlagen der Theoretischen Informatik

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

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994).

Auswählen nach Rang (Selektion)

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

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Übung Algorithmen und Datenstrukturen

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kombinatorische Optimierung

Transkript:

Effiziente Algorithmen Greedy-Algorithmen Vorlesender: Martin Aumüller (nah Folien von Prof. Martin Dietzfelbinger) Mai 2012 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 1

Kapitel 3: Greedy-Algorithmen Greedy -Algorithmen sind anwendbar bei Konstruktionsaufgaben zum Finden einer optimalen Struktur. Sie finden eine Lösung, die sie shrittweise aufbauen, ohne zurükzusetzen. Es werden dabei niht mehr Teillösungen konstruiert als unbedingt nötig. greedy (engl.): gierig. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 2

Beispiel 1: Hörsaalbelegung 3.1 Zwei Beispiele Gegeben: Veranstaltungsort (Hörsaal), Zeitspanne [T 0, T 1 ) und eine Menge von n Aktionen (Vorlesungen oder ähnlihes), durh Start- und Endzeit spezifiziert: [s i, f i ), für 1 i n. Gesuht: Belegung des Hörsaals, die möglihst viele Ereignisse mit disjunkten Zeitspannen stattfinden lässt. Nenne eine Menge A {1,..., n} zulässig, wenn alle [s i, f i ), i A, disjunkt sind. Aufgabe, formal: Finde zulässige Menge A mit A so groß wie möglih. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 3

T 0 T 1 Eingabe: Aktionen mit Beginn und Ende FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 4

T 0 T 1 Zulässige Lösung mit 4 Aktionen. Optimal? FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 5

T 0 T 1 Zulässige Lösung mit 5 Aktionen. Optimal? FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 6

Ansätze, die niht funktionieren: Zuerst kurze Ereignisse planen T 0 T 1 Immer ein Ereignis mit möglihst früher Anfangszeit wählen T 0 T 1 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 7

Trik: Bearbeite Ereignisse nah wahsenden Shlusszeiten. O.B.d.A.: Veranstaltungen nah Shlusszeiten aufsteigend sortiert (Zeitaufwand O(n log n)), also: f 1 f 2 f n. 4 9 3 7 11 1 5 8 12 2 6 10 T 0 T 1 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 8

Wiederhole: Wähle die wählbare Aktion mit der kleinsten Shlusszeit und füge sie zum Belegungsplan hinzu. Eine Aktion ist wählbar, wenn ihre Startzeit mindestens so groß wie die Shlusszeit der letzten shon geplanten Veranstaltung ist. T 0 T 1 Ausgabe von GS: Zulässige Lösung. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 9

Algorithmus Greedy Sheduling (GS) Eingabe: [T 0, T 1 ), [s 1, f 1 ),..., [s n, f n ), nihtleere reelle Intervalle, [s i, f i ) [T 0, T 1 ) Ausgabe: Maximal großes A {1,..., n} mit [s i, f i ), i A disjunkt (1) Sortiere Intervalle gemäß f 1,..., f n aufsteigend; (2) A {1}; (3) f last f 1 ; (4) for i from 2 to n do (5) if s i f last then ( [s i, f i )wählbar ) (6) A A {i}; (7) f last f i ; (8) return A FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 10

Satz 3.1.1 Der Algorithmus Greedy Sheduling (GS) hat lineare Laufzeit (bis auf die Sortierkosten von O(n log n)) und löst das Hörsaalplanungsproblem optimal. Beweis: Laufzeit: Sortieren kostet Zeit O(n log n); der restlihe Algorithmus hat offensihtlih Laufzeit O(n). Korrektheit: Wir behaupten: Algorithmus GS liefert auf Inputs mit Größe n eine optimale Lösung, und beweisen dies durh vollständige Induktion. Der Fall n = 1 ist trivial. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 11

Sei nun n > 1. I.V.: GS liefert für Inputs der Länge n < n eine optimale Lösung. Ind.-Shritt: Sei B {1,..., n} eine optimale Lösung, B = r. (Im Beispiel: r = 5.) T 0 T 1 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 12

1. Beobahtung: Es gibt eine Lösung B, die mit dem Intervall [s 1, f 1 ) (dem ersten Shritt des Greedy-Algorithmus) startet und ebenfalls r Ereignisse hat. (Also ist B auh optimal.) T 0 T 1 Setze B := (B {min(b)}) {1}. Intervalle aufsteigend sortiert f 1 f min(b). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 13

2. Beobahtung: Die Menge B {min(b)} löst das Teilproblem ( ) [f 1, T 1 ), {[s i, f i ) s i f 1 } optimal, das heißt: in [f 1, T 1 )können maximal r 1 Ereignisse untergebraht werden. Wieso? Sonst würden wir [s 1, f 1 ) mit einer besseren Lösung für ( ) zu einer besseren Lösung für das Gesamtproblem kombinieren: Widerspruh zur Optimalität von B. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 14

3. Beobahtung: Algorithmus GS auf Eingabe {[s i, f i ) 1 i n} hat ab Iteration i =2 genau dasselbe Verhalten wie wenn man GS auf [f 1, T 1 ), {[s i, f i ) s i f 1 } starten würde. Nah I.V. liefert also dieser Teil des Algorithmus eine optimale Lösung mit r 1 Ereignissen für ( ). Also liefert Greedy Sheduling insgesamt eine optimale Lösung der Größe r. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 15

Beispiel 2: Fraktionales ( teilbares ) Ruksakproblem Veranshaulihung: Ein Dieb stiehlt Säkhen mit Edelmetallkrümeln, die beliebig teilbar sind. Der Wert pro Volumeneinheit ist untershiedlih für untershiedlihe Materialien. Was soll er in seinen Ruksak mit Volumen b paken, um den Wert zu maximieren? Gegeben: n Objekte mit positiven Volumina a 1,..., a n und positiven Nutzenwerten 1,..., n, sowie eine Volumenshranke b. Gesuht: Vektor (λ 1,..., λ n ) [0, 1] n, so dass λ 1 a 1 +... + λ n a n b ( zulässig ) und λ 1 1 +... + λ n n maximal. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 16

Beim 0-1-Ruksakproblem werden nur 0-1-Vektoren mit λ i {0, 1} zugelassen. Mitteilung (im Vorgriff auf BuK, 5. Sem.): Die {0, 1}-Version ist NP-vollständig, besitzt also wahrsheinlih keinen effizienten Algorithmus. Das fraktionale Ruksakproblem ist mit einem Greedy-Algorithmus in Zeit O(n log n) lösbar. Kern der Lösungsidee: Berehne Nutzendihte d i = i /a i, 1 i n, und sortiere die Objekte gemäß d i fallend. Nehme von vorne beginnend möglihst viele ganze Objekte, bis shließlih das letzte Objekt teilweise genommen wird, so dass die Gewihtsshranke vollständig ausgenutzt wird. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 17

a 1 2 3 1 a 2 a a 3 n Input, sortiert nah Nutzendihte d i = i /a i. Höhe von Kasten Nummer i ist d i = i /a i. Breite ist a i. Flähe ist i. b n FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 18

Algorithmus Greedy Frational Knapsak (GFKS) (1) for i from 1 to n do (2) d i i /a i ; (3) λ i 0; (4) Sortiere Objekte gemäß d i fallend; (5) i 0; (6) r b; (* Inhalt r ist das verfügbare Rest-Volumen *) (7) while r > 0 do (8) i++; (9) if a i r (10) then λ i 1; r r a i ; (11) else λ i r/a i ; (12) r 0; FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 19

a 1 2 3 1 a 2 a a 3 n b n a 1 2 3 1 a 2 a a 3 n FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 20 Vom Greedy-Algorithmus gelieferte Lösung. b n

a 1 2 3 1 a 2 a a 3 n b n 1 a 1 2 3 a 2 a a 3 n b n Anshaulih: Greedy-Lösung nie shlehter als beliebige Lösung. Gleih: Vollständiger Beweis. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 21

Satz 3.1.2 Der Algorithmus GFKS ist korrekt (liefert eine zulässige Lösung mit maximalem Gesamtnutzen) und hat Laufzeit O(n log n). Beweis: Sei x =(a 1,..., a n, 1,..., n, b) die Eingabe. O.B.d.A.: i a i > b (sonst ist (λ 1,..., λ n ) = (1,..., 1) optimal und wird von GFKS gefunden). Sei (λ 1,..., λ n ) [0, 1] n die Ausgabe des Algorithmus. Laufzeit: klar. Korrektheit: Zulässigkeit klar. Zu zeigen: Optimalität. Sei (λ 1,..., λ n) [0, 1] n eine optimale Lösung. Offensihtlih: i λ i a i = b (sonst verbesserbar). Durh Induktion über n zeigen wir: i λ i i = i λ i i. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 22

I.A.: n = 1. Dann liefert der Algorithmus offensihtlih die optimale Lösung: Pake genau den Bruhteil λ 1 = b/a 1, der in den Ruksak passt. Ind.-Shritt: n > 1. 1. Fall: a 1 b. GFKS wählt λ 1 = b/a 1, und das ist optimal: Weil d 1 d i für alle i, gilt: λ 1 1 = bd 1 =( i λ i a i)d 1 i λ i a id i = i λ i i. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 23

(Ind.-Shritt:) 2. Fall: a 1 < b. Behauptung: Wir können o.b.d.a. λ 1 = 1 annehmen. ( Der erste Shritt des Greedy-Algorithmus ist niht falsh. ) Denn: Wenn λ 1 < 1, kann man wegen 1 i n λ i a i = b Werte λ 1 = 1, 0 λ 2 λ 2,..., 0 λ n λ n finden, so dass (1 λ 1 )a 1 = 2 i n (λ i λ i )a i. ( ) (Verringere Gewiht bei späteren Objekten zugunsten von Objekt 1.) Dann ist (λ 1,..., λ n) zulässig und λ i i = λ i i + ((1 λ 1)a 1 d 1 i i 2 i n (λ i λ i )a i d i ). Aus ( ) und d 1 d i folgt, dass die letzte Klammer nihtnegativ ist, also i λ i i i λ i i gilt. (Sogar Gleihheit.) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 24

Wissen nun: 1 = λ 1 = λ 1. Wir wenden die Induktionsvoraussetzung auf den modifizierten Input x =(a 2,..., a n, 2,..., n, b a 1 ) an. GFKS läuft in Shleifendurhläufen 2 bis n ebenso wie GFKS auf x, liefert also für x eine optimale Lösung: (λ 2,..., λ n ). Klar: (λ 2,..., λ n) muss für x optimal sein. (Wenn (λ 2,..., λ n ) besser wäre, dann wäre (1,λ 2,..., λ n ) eine bessere Lösung für x als (1,λ 2,..., λ n). Das kann niht sein.) Nah I.V. gilt 2 i n λ i i = 2 i n λ i i. Also haben auh die Lösungen (1,λ 2,..., λ n) und (1,λ 2,..., λ n )für x denselben Nutzenwert. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 25

An den Beispielen zu beobahtende Charakteristika der Greedy-Methode: 1 Der erste Shritt der Greedy-Lösung ist niht falsh. Es gibt eine optimale Lösung, die als Fortsetzung des ersten Shrittes konstruiert werden kann. 2 Prinzip der optimalen Substruktur : Entfernt man aus einer optimalen Lösung die erste(n) Komponente(n), so bleibt als Rest die optimale Lösung für einen Teil oder Rest des Inputs. 3 Der Korrektheitsbeweis wird mit vollständiger Induktion geführt. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 2012 26