Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?

Ähnliche Dokumente
Erinnerung VL

Analyse Pfadkompression + Union by rank

Erinnerung VL

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

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

Algorithmen I - Tutorium 28 Nr. 12

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

09. Übung zu Algorithmen I 12. Juli 2017

Kap. 3: Exakte Lösungsverfahren für NPschwierige. Optimierungsprobleme VO Algorithm Engineering

Approximationsalgorithmen

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

12 Generische Optimierungsansätze

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

Optimierung. Vorlesung 12

Systematische Suche. Alle (sinnvollen) Möglichkeiten ausprobieren. Anwendungen: Idee:

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier. Henning Fernau Universität Trier

11. Übung zu Algorithmen I 6. Juli 2016

Literatur für diese VO. Überblick. Kap. 5: Approximationsalgorithmen für kombinatorische Optimierungsprobleme

Kap. 5: Approximationsalgorithmen für kombinatorische Optimierungsprobleme

Theoretische Grundlagen der Informatik

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Sortieren & Co. KIT Institut für Theoretische Informatik

Algorithmen und Datenstrukturen

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

21. Dynamic Programming III

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Approximationsalgorithmen. 19. Dezember / 28

Algorithmen II. Peter Sanders, Christian Schulz, Simon Gog. Übungen: Michael Axtmann. Institut für Theoretische Informatik, Algorithmik II.

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Das Rucksackproblem: schwache NP-Härte und Approximation

Rückblick: divide and conquer

Erinnerung VL vom

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Optimierung. Vorlesung 08

Algorithmen und Datenstrukturen

Erinnerung VL

Kombinatorische Optimierung

20. Dynamic Programming II

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

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2012/13 in Trier

20. Dynamic Programming II

Folien aus der Vorlesung Optimierung I SS2013

Datenstrukturen und Algorithmen

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2012/13 in Trier

Algorithmische Graphentheorie

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

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

ADS: Algorithmen und Datenstrukturen 2

11. Übung Algorithmen I

Informatik II Greedy-Algorithmen

Kap. 7.3 Enumerationsverfahren Kap. 7.4 Branch-and-Bound Kap. 7.5 Dynamische Programmierung

Daniel Borchmann. Sommerakademie Görlitz September 2007

Der Branching-Operator B

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Informatik II, SS 2014

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen I - Tutorium 28 Nr. 2

Erinnerung VL

Dynamische Programmierung II

Probleme aus NP und die polynomielle Reduktion

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Algorithmen II. Peter Sanders, Thomas Worsch, Simon Gog. Übungen: Demian Hespe, Yaroslav Akhremtsev

PG 534 Vehicle Routing Einführung. Markus Chimani & Karsten Klein LS11, TU Dortmund

Approximationsalgorithmen für NP-harte Optimierungsprobleme

ADS: Algorithmen und Datenstrukturen 2

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Wiederholung. Divide & Conquer Strategie

Lineares Programmieren

Grundlagen Theoretischer Informatik 3 SoSe 2010 in Trier. Henning Fernau Universität Trier

Kapitel 9: Lineare Programmierung Gliederung

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

Informatik II, SS 2016

Algorithmen und Datenstrukturen 2

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?

1 Einführung in Lineare Programme und Dualität

Algorithmen und Datenstrukturen 2

Traveling Salesman Problem (TSP) Exakte Algorithmen für NP-schwere Probleme Integer Lineare Programme Branch-and-Cut

Informatik II: Algorithmen und Datenstrukturen SS 2013

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

Algorithmen 2. Kapitel: Approximationsalgorithmen. Thomas Worsch. Fakultät für Informatik Karlsruher Institut für Technologie

Kap. 6.5: Minimale Spannbäume ff

Lineare Programmierung

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Algorithmen I - Tutorium 28 Nr. 6

Algorithmen und Datenstrukturen 2

Informatik II, SS 2016

Algorithmische Methoden zur Netzwerkanalyse

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

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

Transkript:

Algorithmen I Prof. Jörn Müller-Quade 05.07.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1

Kap. 12: Generische Optimierungsansätze Black-Box-Löser Greedy Dynamische Programmierung Systematische Suche Lokale Suche Evolutionäre Algorithmen KIT Institut für Theoretische Informatik 2

Durchgehendes Beispiel: Rucksackproblem 10 20 15 20 5 4 M 3 2 1 n Gegenstände mit Gewicht w i N und Prot p i Wähle eine Teilmenge x von Gegenständen derart, dass i x w i M und maximiere den Prot i x p i KIT Institut für Theoretische Informatik 3

Allgemein: Maximierungsproblem (L, f ) L U : zulässige Lösungen f : L R Zielfunktion x L ist optimale Lösung falls f (x ) f (x) für alle x L Minimierungsprobleme: analog Problem: variantenreich, meist NP-schwer KIT Institut für Theoretische Informatik 4

Black-Box-Löser (Ganzzahlige) Lineare Programmierung Aussagenlogik Constraint-Programming Verallgemeinerung von beidem KIT Institut für Theoretische Informatik 5

Lineare Programmierung Ein lineares Programm mit n Variablen und m Constraints (NB) wird durch das folgende Minimierungs-/Maximierungsproblem deniert: Kostenfunktion f (x) = c x c ist der Kostenvektor m Constraints der Form a i x i b i mit i {,,=}, a i R n. Wir erhalten: L = {x R n : j 1..n : x j 0 i 1..m : a i x i b i }. KIT Institut für Theoretische Informatik 6

Ein einfaches Beispiel y feasible solutions v y<=6 x+y<=8 2x y<=8 o better solutions x KIT Institut für Theoretische Informatik 7

Beispiel: Kürzeste Wege maximiere d v v V so dass d s = 0 d w d v + c(v,w) für alle (v,w) E KIT Institut für Theoretische Informatik 8

Eine Anwendung Tierfutter n Futtersorten, Sorte i kostet c i Euro/kg. m Anforderungen an gesunde Ernährung (Kalorien, Proteine, Vitamin C,... ). Sorte i enthält a ji Prozent des täglichen Bedarfs pro kg bzgl. Anforderung j Sei a ji die i-te Komponente von Vektor a j. KIT Institut für Theoretische Informatik 9

Eine Anwendung Tierfutter n Futtersorten, Sorte i kostet c i Euro/kg. m Anforderungen an gesunde Ernährung (Kalorien, Proteine, Vitamin C,... ). Sorte i enthält a ji Prozent des täglichen Bedarfs pro kg bzgl. Anforderung j Sei a ji die i-te Komponente von Vektor a j. Deniere x i als zu beschaende Menge von Sorte i LP-Lösung gibt eine kostenoptimale gesunde Mischung. KIT Institut für Theoretische Informatik 9

Verfeinerungen Obere Schranken (Radioaktivität, Cadmium, Kuhhirn,... ) Beschränkte Reserven (z. B. eigenes Heu) bestimmte abschnittweise lineare Kostenfunktionen (z. B. mit Abstand wachsende Transportkosten) Minimale Abnahmemengen die meisten nichtlinearen Kostenfunktionen Ganzzahlige Mengen (für wenige Tiere) Garbage in, Garbage out KIT Institut für Theoretische Informatik 10

Algorithmen und Implementierungen LPs lassen sich in polynomieller Zeit lösen [Khachiyan 1979] ( ) Worst case O max(m,n) 7 2 In der Praxis geht das viel schneller Robuste, eziente Implementierungen sind sehr aufwändig Fertige freie und kommerzielle Pakete KIT Institut für Theoretische Informatik 11

Ganzzahlige Lineare Programmierung ILP: Integer Linear Program, lineares Programm mit der zusätzlichen Bedingung x i N. oft: 0/1 ILP mit x i {0,1} MILP: Mixed Integer Linear Program, lineares Programm bei dem einige Variablen ganzzahlig sein müssen. Lineare Relaxation: Entferne die Ganzzahligkeitsbedingungen eines (M)ILP KIT Institut für Theoretische Informatik 12

Beispiel: Rucksackproblem maximiere p x derart, dass w x M,x i {0,1} for 1 i n. x i = 1 gdw. Gegenstand i in den Rucksack kommt. 0/1 Variablen sind typisch für ILPs 20 10 15 20 5 4 M 3 2 1 KIT Institut für Theoretische Informatik 13

Umgang mit (M)ILPs NP-schwer + Ausdrucksstarke Modellierungssprache + Es gibt generische Lösungsansätze, die manchmal gut funktionieren + Viele Möglichkeiten für Näherungslösungen + Die Lösung der linearen Relaxation hilft oft, z. B. einfach runden. + Ausgefeilte Softwarepakete Beispiel: Beim Rucksackproblem gibt es nur eine fraktionale Variable in der linearen Relaxation Abrunden ergibt zulässige Lösung. Annähernd optimal, falls Gewichte und Prote Kapazität KIT Institut für Theoretische Informatik 14

Nie zurückschauen Greedy-Algorithmen (deutsch: gierige Algorithmen, Ausdruck wenig gebräuchlich) Idee: tree jeweils eine lokal optimale Entscheidung KIT Institut für Theoretische Informatik 15

Optimale Greedy-Algorithmen Dijkstras Algorithmus für kürzeste Wege Minimale Spannbäume Jarník-Prim Kruskal Selection-Sort (wenn man so will) Viel häuger, z.t. mit Qualitätsgarantien. Mehr: Vorlesungen Algorithmen II und Approximations- und Onlinealgorithmen KIT Institut für Theoretische Informatik 16

Beispiel: Rucksackproblem Procedure rounddownknapsack sort items by prot density p i { } w i nd min j : j w i=1 j > M output items 1..j 1 Procedure greedyknapsack sort items by prot density p i w i for i := 1 to n do if there is room for item i then insert it into the knapsack // critical item KIT Institut für Theoretische Informatik 17

Dynamische Programmierung Aufbau aus Bausteinen Anwendbar, wenn das Optimalitätsprinzip gilt: Optimale Lösungen bestehen aus optimalen Lösungen für Teilprobleme. Mehrere optimale Lösungen es ist egal, welche benutzt wird. KIT Institut für Theoretische Informatik 18

Beispiel: Rucksackproblem Annahme: ganzzahlige Gewichte P(i,C):= optimaler Prot für Gegenstände 1,...,i unter Benutzung von Kapazität C. P(0,C):= 0 Lemma: 1 i n : P(i,C) = max(p(i 1,C), P(i 1,C w i ) + p i ) KIT Institut für Theoretische Informatik 19

Dynamische Programmierung auszufüllende Tabelle Wdh. Lemma: 1 i n : P(i,C) = max(p(i 1,C), P(i 1,C w i ) + p i ) KIT Institut für Theoretische Informatik 20

Beweis des Lemmas P(i,C):= optimaler Prot für Gegenstände 1,...,i bei Kap. C. Lemma: P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) Beweis: Sei x optimale Lösung für Objekte 1..i, Kapazität C, d. h. c x = P(i,C). KIT Institut für Theoretische Informatik 21

Beweis des Lemmas P(i,C):= optimaler Prot für Gegenstände 1,...,i bei Kap. C. Lemma: P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) Beweis: Sei x optimale Lösung für Objekte 1..i, Kapazität C, d. h. c x = P(i,C). Fall x i = 0: x ist auch (opt.) Lösung für Objekte 1..i 1, Kapazität C. P(i,C) = c x = P(i 1,C) KIT Institut für Theoretische Informatik 21

Beweis des Lemmas P(i,C):= optimaler Prot für Gegenstände 1,...,i bei Kap. C. Lemma: P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) Beweis: Sei x optimale Lösung für Objekte 1..i, Kapazität C, d. h. c x = P(i,C). Fall x i = 0: x ist auch (opt.) Lösung für Objekte 1..i 1, Kapazität C. P(i,C) = c x = P(i 1,C) Fall x i = 1: x ohne i ist auch Lösung für Objekte 1..i 1, Kapazität C w i. Wegen Austauschbarkeit muÿ x ohne i optimal für diesen Fall sein. P(i,C) p i = P(i 1,C w i ) P(i,C) = P(i 1,C w i ) + p i KIT Institut für Theoretische Informatik 21

Beweis des Lemmas P(i,C):= optimaler Prot für Gegenstände 1,...,i bei Kap. C. Lemma: P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) Beweis: Sei x optimale Lösung für Objekte 1..i, Kapazität C, d. h. c x = P(i,C). Fall x i = 0: x ist auch (opt.) Lösung für Objekte 1..i 1, Kapazität C. P(i,C) = c x = P(i 1,C) Fall x i = 1: x ohne i ist auch Lösung für Objekte 1..i 1, Kapazität C w i. Wegen Austauschbarkeit muÿ x ohne i optimal für diesen Fall sein. P(i,C) p i = P(i 1,C w i ) P(i,C) = P(i 1,C w i ) + p i Insgesamt, wegen Optimalität von x, P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) KIT Institut für Theoretische Informatik 21

Berechung von P(i, C) elementweise: P(i,C) = max(p(i 1,C),P(i 1,C w i ) + p i ) Procedure knapsack(p, c, n, M) array P[0...M] = [0,...,0] bitarray decision[1...n,0...m] = [(0,...,0),...,(0,...,0)] for i := 1 to n do // invariant: C {1,...,M} : P[C] = P(i 1,C) for C := M downto w i do if P[C w i ] + p i > P[C] then P[C] := P[C w i ] + p i decision[i,c] := 1 KIT Institut für Theoretische Informatik 22

Rekonstruktion der Lösung C := M array x[1...n] for i := n downto 1 do x[i] := decision[i,c] if x[i] = 1 then C := C w i endfor return x Analyse: Zeit: O(nM) pseudopolynomiell Platz: M + O(n) Maschinenwörter plus nm bits. KIT Institut für Theoretische Informatik 23

Beispiel Maximiere (10,20,15,20) x, so dass (1,3,2,4) x 5 P(i,C),(decision[i,C]) i \ C 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0, (0) 10, (1) 10, (1) 10, (1) 10, (1) 10, (1) 2 3 4 KIT Institut für Theoretische Informatik 24

Beispiel Maximiere (10,20,15,20) x, so dass (1,3,2,4) x 5 P(i,C),(decision[i,C]) i \ C 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0, (0) 10, (1) 10, (1) 10, (1) 10, (1) 10, (1) 2 0, (0) 10, (0) 10, (0) 20, (1) 30, (1) 30, (1) 3 4 KIT Institut für Theoretische Informatik 24

Beispiel Maximiere (10,20,15,20) x, so dass (1,3,2,4) x 5 P(i,C),(decision[i,C]) i \ C 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0, (0) 10, (1) 10, (1) 10, (1) 10, (1) 10, (1) 2 0, (0) 10, (0) 10, (0) 20, (1) 30, (1) 30, (1) 3 0, (0) 10, (0) 15, (1) 25, (1) 30, (0) 35, (1) 4 KIT Institut für Theoretische Informatik 24

Beispiel Maximiere (10,20,15,20) x, so dass (1,3,2,4) x 5 P(i,C),(decision[i,C]) i \ C 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0, (0) 10, (1) 10, (1) 10, (1) 10, (1) 10, (1) 2 0, (0) 10, (0) 10, (0) 20, (1) 30, (1) 30, (1) 3 0, (0) 10, (0) 15, (1) 25, (1) 30, (0) 35, (1) 4 0, (0) 10, (0) 15, (0) 25, (0) 30, (0) 35, (0) KIT Institut für Theoretische Informatik 24