Effiziente Algorithmen (SS2015)

Ähnliche Dokumente
Approximationsalgorithmen

Approximationsalgorithmen

Approximationsalgorithmen. 19. Dezember / 28

Approximationsschemata

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

Randomisierte und Approximative Algorithmen. Prof. Dr. Heiko Röglin Institut für Informatik Universität Bonn

Das Rucksackproblem: schwache NP-Härte und Approximation

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übung 2 Algorithmen II

Kombinatorische Optimierung

Algorithmische Graphentheorie

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme

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

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Algorithmische Methoden für schwere Optimierungsprobleme

Theoretische Grundlagen der Informatik

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

Einführung in Approximationsalgorithmen

Algorithmische Methoden für schwere Optimierungsprobleme

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Effiziente Algorithmen II

Einführung in Approximationsalgorithmen

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

Approximationsklassen für Optimierungsprobleme

Grundlagen: Algorithmen und Datenstrukturen

Die dynamische Programmierung 1 / 51

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Wiederholung. Divide & Conquer Strategie

Probleme aus NP und die polynomielle Reduktion

Kombinatorische Optimierung

Approximationsalgorithmen

Algorithmische Bioinformatik 1

Informatik III - WS07/08

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

20. Dynamic Programming II

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

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2006/07 in Trier. Henning Fernau Universität Trier

20. Dynamic Programming II

Die Klasse NP und die polynomielle Reduktion

1 Einführung in Lineare Programme und Dualität

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Algorithmen II Vorlesung am

Theoretische Grundlagen der Informatik

21. Dynamic Programming III

Approximationsalgorithmen. Approximation im Sinne der Analysis:

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

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Das Problem des minimalen Steiner-Baumes

Theoretische Grundlagen der Informatik

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen II Vorlesung am

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

Berechnung approximierter Voronoi-Zellen auf geometrischen Datenströmen

Greedy Algorithms - Gierige Algorithmen

NP-Vollständigkeit des Erfüllbarkeitsproblems

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Approximation im Sinne der Analysis:

Übung zur Vorlesung Berechenbarkeit und Komplexität

6. Übungsblatt zu Algorithmen II im WS 2011/2012

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

Kap. 7 Optimierung. Überblick. Optimierung: Einführung. Motivation. Beispiele für Optimierungsprobleme. Rundreiseprobleme (TSP)

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

Informatik II Greedy-Algorithmen

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Rundreiseproblem und Stabilität von Approximationsalg.

Informatik II, SS 2016

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Seminar Algorithmentechnik

7. Sortieren Lernziele. 7. Sortieren

2.6 Asymptotische Approximation: Min Binpacking

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Heuristiken im Kontext von Scheduling

Betriebswirtschaftliche Optimierung

Algorithmen und Datenstrukturen

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

Wann sind Codes eindeutig entschlüsselbar?

Theoretische Informatik 1

Abschnitt 19: Sortierverfahren

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Teil III. Komplexitätstheorie

Theoretische Grundlagen der Informatik

Die Nerode-Relation und der Index einer Sprache L

Algorithmen und Datenstrukturen

Seminar. Algorithmische Geometrie

Transkript:

Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59

5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation Güte der Abschätzung 2 Scheduling Einleitung Heuristik LL Heuristik LPT 3 Bin Packing Einleitung Algorithmus 4 Approximationsschema Einleitung Schema Beispiel zur Skalierung Beweise Das Orakel 5 Allgemeine Maschinen Einleitung ILP Algorithmus Allokationsgraph 6 APX Aussagen

5: Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Definition Definition (Set-Cover-Problem) Grundmenge X mit n Elementen. m Teilmengen S, S 2,..., S m mit i {,2,...,m} S i = X. Für jede Menge S i einen Kostenwert c i Q. Gesucht ist: A {, 2,..., m} mit i A S i = X und cost(a) = i A c i ist minimal. Grundmenge soll also kostengünstig überdeckt werden. Beispiel: Kostengünstiges Arbeitsteam, welche alle nötigen Fähigkeiten hat. Entspricht dem Vertex-Cover-Problem auf Hypergraphen (Hitting-Set-Problem).

5:2 Einleitung 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:2 Einleitung 2 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:2 Einleitung 3 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:2 Einleitung 4 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:2 Einleitung 5 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:2 Einleitung 6 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel (Kosten: 5) S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:3 Einleitung 4 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel nochmal S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:3 Einleitung 2 4 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel nochmal S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:3 Einleitung 3 4 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel nochmal S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:3 Einleitung 4 4 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel nochmal (Kosten: 3) S 8 : s 2 s 4 s 8 S 7 : s 7 s 9 S 6 : s 4 s 7 s 8 S 5 : s 2 s 5 s 7 S 4 : s s 5 s 6 s 7 S 3 : s 2 s 4 s 5 S 2 : s s 3 s 6 s 9 S : s s 3 s 4 X s s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9

5:4 Einleitung 5 < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Theorem Die Entscheidungsvariante vom Set-Cover-Problem ist in N PC. Beweis: Einfache Reduktion vom Vertex-Cover-Problem: d e: s 4 s 5 s 6 s 7 c d: s 3 s 4 c: s 2 s 3 s 7 e b: s s 2 s 6 b a: s s 5 Σ = 0 a E ab bc cd de ea eb ec

5:4 Einleitung 2 5 < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Theorem Die Entscheidungsvariante vom Set-Cover-Problem ist in N PC. Beweis: Einfache Reduktion vom Vertex-Cover-Problem: d e: s 4 s 5 s 6 s 7 c d: s 3 s 4 c: s 2 s 3 s 7 e b: s s 2 s 6 b a: s s 5 Σ = 0 a E ab bc cd de ea eb ec

5:4 Einleitung 3 5 < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Theorem Die Entscheidungsvariante vom Set-Cover-Problem ist in N PC. Beweis: Einfache Reduktion vom Vertex-Cover-Problem: d e: s 4 s 5 s 6 s 7 c d: s 3 s 4 c: s 2 s 3 s 7 e b: s s 2 s 6 b a: s s 5 Σ = 0 a E ab bc cd de ea eb ec

5:4 Einleitung 4 5 < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Theorem Die Entscheidungsvariante vom Set-Cover-Problem ist in N PC. Beweis: Einfache Reduktion vom Vertex-Cover-Problem: d e: s 4 s 5 s 6 s 7 c d: s 3 s 4 c: s 2 s 3 s 7 e b: s s 2 s 6 b a: s s 5 Σ = 0 a E ab bc cd de ea eb ec

5:4 Einleitung 5 5 < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Theorem Die Entscheidungsvariante vom Set-Cover-Problem ist in N PC. Beweis: Einfache Reduktion vom Vertex-Cover-Problem: d e: s 4 s 5 s 6 s 7 c d: s 3 s 4 c: s 2 s 3 s 7 e b: s s 2 s 6 b a: s s 5 Σ = 0 a E ab bc cd de ea eb ec

5:5 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Idee zum Set-Cover-Problem Das Set-Cover-Problem ist, wie man sieht, eine Verallgemeinerung des Vertex- Cover Problems. Diesmal gibt es aber kein hilfreiches Analogon zu einem Matching. Daher versuchen wir einen Greedy-Ansatz. Wir werden dabei nur einen Approximationsfaktor von H n (n-te Harmonische Zahl) erreichen. Aber das ist auch das Beste, was man für das Set-Cover-Problem erreichen kann. Bei dem Greedy-Verfahren wählt man die Menge, die möglichst geringe Kosten pro neu überdecktes Element hat. Eine möglichst schlechte Eingabe für dieses Greedy-Verfahren erhält man, indem man für jedes Element der Grundmenge eine einelementige Überdeckungsmenge wählt und eine Überdeckungsmenge, die gleich der Grundmenge ist. Die einelementigen Überdeckungsmengen haben die folgenden Kosten /n, /(n ), /(n ),..., /3, /2,. Die vollständige Überdeckungsmenge hat Kosten >. Damit werden vom Greedy-Verfahren alle einelementigen Überdeckungsmengen gewählt.

5:6 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Aufbau der Idee Das Set-Cover-Problem hat wenig Struktur, die man nutzen könnte. Einzige Idee: versuche viele Elemente kostengünstig abzudecken. Oder: versuche die Kosten pro Element klein zu halten. Also werden wir einen Greedy-Algorithmus entwickeln. Auswahl der Menge S i über: Kosten von S i Anzahl der von S i neu überdeckten Elemente Wähle Menge S i, wo obiger Ausdrucke minimal ist.

5:7 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Greedy-Algorithmus Eingabe X, S, S 2,... S m. 2 Setze A =. 3 Solange j A S j /= X wiederhole: Bestimme für alle i {, 2,, m} A: 2 Wähle i mit r A (i) minimal. 3 Setze A = A {i}. r A (i) = c i S i j A S j.

5:8 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Analyse Verteile die Kosten bei der Wahl einer Menge S i auf die Elemente, die durch S i neu überdeckt werden. D.h. in jeder Schleife erhält jedes dieser Elemente den folgenden Wert zugeordnet: c i S i j A S j = r A(i) Nun betrachten wir einzeln die hinzugefügten Elemente. Sei also für k {, 2,, n} x k das k-te Element. Seien weiter c(x k ) die relativen Kosten, die x k zugeordnet worden sind. Lemma Für k {, 2,, n} gilt c(x k ) opt/(n k + ), wobei opt die Kosten eines optimalen Set-Covers sind.

5:9 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Beweis Sei A die Auswahl, die vorher gewählt wurde. Sei weiter i {, 2,, n} der Index der Menge S i, die x k erstmalig abdeckt. Nun schätzen wir opt ab: Für j {, 2,, n} A gilt: r A (j) r A (i). Setze: X = X j A S j, d.h. X ist noch nicht abgedeckt. Kein Element j X kann mit relativen Kosten kleiner als r A (i) abgedeckt werden. Damit ist die Summe der relativen Kosten von X mindestens: (n k + ) r A (i). Jede mögliche Auswahl, die X abdeckt, hat damit Kosten von mindestens: (n k + ) r A (i). Damit gilt: opt (n k + ) r A (i) = (n k + ) c(x k ) und c(x k ) opt/(n k + ). c(x k ) opt/(n k + )

5:0 Approximation < > Walter Unger 5.7.205 :3 SS205 Z Güte der Approximation Theorem Der Greedy Algorithmus hat einen Approximationsfaktor von höchstens H n. c(x k ) opt/(n k + ) H n ist die n-te Harmonische Zahl. H n = n i= i. Es gilt: log(n + ) H n log n +. Beweis des Theorems: Bilde Summe über alle Elemente. Nutze obiges Lemma: n i= n opt n i + = opt = opt H n. i= i

5: Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Frage: wie gut ist die Abschätzung Suche ein schlechtes Beispiel für obigen Algorithmus. Erinnerung: r A (i) = c i S i j A S j. Fehler soll möglichst groß sein: Greedy Lösung: A = {, 2,..., m } Optimale Lösung opt = {m} Daher S m = {, 2,..., n} und S i = {i} für i n (m = n + ). Nun sind noch die Kosten zu wählen: Setze c m =. Damit gilt: r (m) = S i i A S i = {,2,...,n} = n. Damit der Algorithmus S wählt, muss gelten: r () < n. Damit gilt: r {} (m) = S i i A S i = =. {2,3,...,n} n Damit der Algorithmus S 2 wählt, muss gelten: r {} (2) < Damit gilt: r {,2} (m) = S i i A S i = =. {3,4,...,n} n 2 n. Damit der Algorithmus S 3 wählt, muss gelten: r {,2} (3) < n 2. Zur Vereinfachung wählen wir im Folgenden: c m = +ε.

5:2 Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Frage: wie gut ist die Abschätzung Suche ein schlechtes Beispiel für obigen Algorithmus. Erinnerung: r A (i) = c i S i j A S j. Fehler soll möglichst groß sein: Greedy Lösung: A = {, 2,..., m } Optimale Lösung opt = {m} Daher S m = {, 2,..., n} und S i = {i} für i n (m = n + ). Nun sind noch die Kosten zu wählen: Setze c m = +ε. Damit gilt: r (m) = S i i A S i = = +ε. {,2,...,n} n Damit der Algorithmus S wählt, muss gelten: r () n. Damit gilt: r {} (m) = S i i A S i = = +ε. {2,3,...,n} n Damit der Algorithmus S 2 wählt, muss gelten: r {} (2) Damit gilt: r {,2} (m) = S i i A S i = = +ε. {3,4,...,n} n 2 n. Damit der Algorithmus S 3 wählt, muss gelten: r {,2} (3) n 2.

5:3 Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Abschätzung der Güte Damit erhalten wir das folgende schlechte Beispiel für obigen Algorithmus: X = {, 2,..., n} S m = {, 2,..., n} mit m = n +. S i = {i} für i n. Setze c m = + ε. Setze c i = n i+. Damit gilt für dieses Beispiel: Der Greedy Algorithmus wird nacheinander die Mengen S, S 2,..., S n wählen. Die optimale Lösung beinhaltet nur S m.

5:4 Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 2 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 3 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 4 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 5 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 6 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung 0 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:4 Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zur Güte r A (i) = c i S i i A S i. r C (i + ) = +ε n C = n C + δ. r () = /n = n r (2) = /(n ) = n r,2(3) = /(n 2) = n 2 r,2,3(4) = /(n 3) = n 3 r,2,...,n 3(n 2) = /3 = 3 r,2,...,n 2(n ) = /2 = 2 r,2,...,n (n) = = + ε: : 2 : 3 : : n 3 : n 2 : n : n : X...

5:5 Güte der Abschätzung < > Walter Unger 5.7.205 :3 SS205 Z Güte der Approximation Theorem Der Greedy Algorithmus hat einen Approximationsfaktor von höchstens H n. Theorem Es gibt eine Instanz, worauf der Greedy Algorithmus einen Approximationsfaktor von ( ε) H n erreicht (für ε > 0). Theorem (Feige 995) Es gibt keinen Algorithmus mit Approximationsfaktor ( ε) H n für das Set-Cover-Problem, es sei denn N P = TIME(n O(log log n) ). Folgerung: Damit ist dieser einfache Greedy Algorithmus der beste, der möglich ist.

5:6 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Motivation Verteilung von Aufgaben Aufgaben sind nicht teilbar (ansonsten wäre es zu einfach). Alle Aufgaben sollen möglichst schnell fertig werden. Beispiel Vor einer Party gibt es viele Arbeiten zu machen. Wenn jemand eine Arbeit hat, gibt er sie nicht mehr her. Erst wenn alle Arbeiten erledigt sind, fängt die Party an.

5:7 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Definition Definition (Scheduling auf identischen Maschinen) Das Makespan Scheduling Problem auf identischen Maschinen: Gegeben: Gesucht: p, p 2,..., p n N (d.h. n Jobs der Länge p i). m N (d.h. m identische Maschinen). f {, 2,..., n} {, 2,..., m}, (d.h. Zuweisung der Jobs auf Maschinen). Mit max j {,2,...,m} i {,2,...,n} f (i)=j p i ist minimal. Die Funktion f gibt den Ablaufplan (Schedule) an. Da die Jobs keine Fertigstellungszeit (Deadline) haben, ist die Abarbeitungsfolge der Jobs auf einer Maschine beliebig. O.B.d.A.: n > m.

5:8 Einleitung 4 < > Walter Unger 5.7.205 :3 SS205 Z Einfaches Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p 9 5 8 : 3 p 7 :0 6 :0 p 3 9 p 5 : 5 p 4 p 5 4 p 2 p 3 : 9 p 5 5 2 4 4 p : 3 3 m m 2 m 3 m 4 m 5

5:8 Einleitung 2 4 < > Walter Unger 5.7.205 :3 SS205 Z Einfaches Beispiel p 6 0 p 7 p 4 : 6 3 0 p 2 : 7 p 0 5 p p 9 0 : 6 p 2 6 p p 3 9 5 7 5 8 : 3 9 p 7 :0 6 :0 p 5 : 5 p 4 p 5 4 p 2 p 3 : 9 p 5 5 2 4 4 p : 3 3 m m 2 m 3 m 4 m 5

5:8 Einleitung 3 4 < > Walter Unger 5.7.205 :3 SS205 Z Einfaches Beispiel p 6 p 8 0 p 4 3 p p 3 6 p 7 5 6 p 4 : 6 3 0 p 2 : 7 p 0 5 p p 9 0 : 6 p 2 6 p p 3 9 5 7 5 8 : 3 9 p 7 :0 6 :0 p 5 : 5 p 4 p 5 4 p 2 p 3 : 9 p 5 5 2 4 4 p : 3 3 m m 2 m 3 m 4 m 5

5:8 Einleitung 4 4 < > Walter Unger 5.7.205 :3 SS205 Z Einfaches Beispiel 9 p 6 p 8 0 p 4 3 p p 3 6 p 7 5 6 p 4 : 6 3 0 p 2 : 7 p 0 5 p p 9 0 : 6 p 2 6 p p 3 9 5 7 5 8 : 3 9 p 7 :0 6 :0 p 5 : 5 p 4 p 5 4 p 2 p 3 : 9 p 5 5 2 4 4 p : 3 3 m m 2 m 3 m 4 m 5

5:9 Einleitung 3 < > Walter Unger 5.7.205 :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p 9 5 8 : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 9 2 4 p : 3 p 4 5 p 6 0 p 9 5 p 2 p 4 3 m m 2 m 3 m 4 m 5

5:9 Einleitung 2 3 < > Walter Unger 5.7.205 :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p 9 5 8 : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 9 2 4 p : 3 p 3 9 p 7 0 p 0 6 p 4 5 p 2 7 p 6 0 p 3 6 p 9 5 p 2 p 4 3 m m 2 m 3 m 4 m 5

5:9 Einleitung 3 3 < > Walter Unger 5.7.205 :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p 9 5 8 : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 9 2 4 p : 3 7 p 5 5 p 3 9 p 8 3 p 7 0 p 5 p 0 6 p 4 5 p 2 7 p 6 0 p 4 6 p 3 6 p 9 5 p 2 p 4 3 m m 2 m 3 m 4 m 5

5:20 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Komplexität Das Problem ist in N PC. Einfache Reduktion von Subset-Sum-Problem: Gegeben: b i für i n. Frage: I {, 2,... n} mit: i I b i = i {,2,...,n} I b i. Das ist das Makespan Scheduling Problem für zwei identische Maschinen. Gesucht ist ein Makespan von i {,2,...,n} b i/2.

5:2 Heuristik LL < > Walter Unger 5.7.205 :3 SS205 Z Erste Ideen Wir werden zuerst zwei einfache Ideen zur Approximation des Scheduling Problems betrachten. Dabei werden wir sehen, daß diese schon gute Approximationsfaktoren abliefern. Das erste Verfahren verteilt die Jobs in einer beliebigen Reihenfolge auf die Maschine, die aktuell die jeweils kleinste Last hat. Hier erkennt man recht schnell einen Approximationsfaktor von 2. Dabei wird als untere Schanke die Größe des größten Jobs verwendet. Danach verteilen wir die Jobs absteigend sortiert nach ihrer Größe auf die Maschine mit der aktuell geringsten Last. Hier sieht man recht schnell, daß das Verfahren optimal ist, solange maximal zwei Jobs auf jeder Maschine zugewiesen werden. Hier wird als untere Schranke nun die durchschnittliche Belastung einer Maschine genutzt. Da das Verfahren optimal ist, solange maximal zwei Jobs auf jeder Maschine zugewiesen werden und die Jobs in absteigender Reihenfolge zugewiesen werden, wird der Approximationsfaktor durch einen der großen verbleibenden Jobs bestimmt. Hier erkennt man recht schnell, ein Job der Größe von maximal /3 von Optimum bestimmt den maximalen Approximationsfaktor (4/3).

5:22 Heuristik LL 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 2 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 2 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 3 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 2 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 4 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 2 3 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 5 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 3 2 3 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 6 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 3 2 3 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 7 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 2 3 2 3 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 8 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 3 2 3 2 3 2 3 3 m m 2 m 3 m m 2 m 3

5:22 Heuristik LL 9 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 6 3 2 3 3 2 m m 2 m 3 2 3 3 m m 2 m 3

5:22 Heuristik LL 0 0 < > Walter Unger 5.7.205 :3 SS205 Z Heuristik Heuristik: Least Loaded (LL) Wähle die Maschine, die bisher die kleinste Last hat: 2 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j. 3 2 3 2 6 3 2 3 3 2 m m 2 m 3 5 2 2 2 3 3 3 3 3 m m 2 m 3

5:23 Heuristik LL 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2 Maschinen) 2 2 m m 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 2 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2 Maschinen) 2 2 m m 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 3 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2 Maschinen) 2 2 m m 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 4 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2 Maschinen) 2 2 2 2 m m 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 5 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2,3 Maschinen) 3 2 2 m m 2 2 2 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 6 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2,3 Maschinen) 3 2 2 m m 2 2 2 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 7 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2,3 Maschinen) 3 2 2 m m 2 2 2 2 m m 2 3 3 m m 2 m 3 m m 2 m 3

5:23 Heuristik LL 8 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (2,3 Maschinen) 3 2 2 m m 2 2 2 2 m m 2 5 3 3 m m 2 m 3 3 3 3 m m 2 m 3

5:24 Heuristik LL < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik (4 Maschinen) 4 4 m m 2 m 3 m 4 7 4 4 m m 2 m 3 m 4 4

5:25 Heuristik LL < > Walter Unger 5.7.205 :3 SS205 Z Das Beispiel formal Konstruiere allgemeines Beispiel: Setze n = m (m ) +. Für i {, 2,..., m (m )} setze: p i =. Setze weiter: p m (m )+ = m. Die obigen Beispiele zeigen: Optimale Makespan ist m. Auf m Maschinen brauchen Jobs {, 2,..., n } Zeit m. Der Job n braucht auf Maschine m auch m Zeit. Die LL-Heuristik liefert einen Makespan von 2 m. Auf m Maschinen brauchen {, 2,..., n } Zeit m. Der Job n braucht auf einer Maschine noch zusätzlich m Zeit. Damit ist der Approximationsfaktor von der LL-Heuristik bestenfalls: 2 m m = 2 m.

5:26 Heuristik LL < > Walter Unger 5.7.205 :3 SS205 Z Approximationsgüte von Heuristik Theorem Die LL-Heuristik hat einen Approximationsfaktor von (2 /m). Beweis: Die folgenden einfachen Schranken gelten: opt max i {,2,...,n} (p i). opt m i {,2,...,n} p i. Betrachte nun den Job, der als letzter fertig wird und die Situation, bevor er verteilt wurde.

5:27 Heuristik LL < > Walter Unger 5.7.205 :3 SS205 Z Approximationsgüte von Heuristik Sei i der Job, der als letzter fertig wird und j = f (i ). Als der Job i auf j gelegt wurde, war aktuelle Last von j minimal. Die Last war höchstens: /m i {,2,...,i } p i. Damit kann der Makespan wie folgt abgeschätzt werden: opt m i {,2,...,n} p i opt max i {,2,...,n} (p i ) p i + m i {,2,...,i } p i = ( ) p m i + m i {,2,...,i } p i ( ) opt + opt m (2 ) opt. m

5:28 Heuristik LPT < > Walter Unger 5.7.205 :3 SS205 Z Heuristik 2 Heuristik: Longest Processing Time (LPT) Wähle für den längsten Job die Maschine, die bisher die kleinste Last hat: 2 Sei p p 2... p n. 3 Für k von bis n mache: Wähle j mit i {,2,...,k } f (i)=j p i ist minimal. 2 Setze f (k) = j.

5:29 Heuristik LPT 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 2 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 3 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 4 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 5 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 6 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 7 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 8 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 9 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 5 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 0 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 5 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 3 4 5 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 2 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 3 4 5 4 0 87 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 3 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 0 3 4 5 4 7 8 0 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 4 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 8 0 3 4 5 4 7 8 0 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 5 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 7 8 0 3 4 5 4 7 8 0 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 6 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 4 7 8 0 3 4 5 4 7 8 0 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:29 Heuristik LPT 7 7 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 35 4 7 8 0 3 4 5 4 7 8 0 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:30 Heuristik LPT 3 < > Walter Unger 5.7.205 :3 SS205 Z Bessere Lösung des Beispiels 7 3 4 5 0 8 4 7 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:30 Heuristik LPT 2 3 < > Walter Unger 5.7.205 :3 SS205 Z Bessere Lösung des Beispiels 4 7 3 4 5 0 8 4 7 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:30 Heuristik LPT 3 3 < > Walter Unger 5.7.205 :3 SS205 Z Bessere Lösung des Beispiels 33 8 0 4 7 3 4 5 8 0 4 7 3 4 5 7 9 20 2 22 23 24 24 23 22 2 20 9 7 m m 2 m 3 m 4 m 5 m 6 m 7

5:3 Heuristik LPT 2 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 (Nur zwei Jobs pro Maschine) p : 6 0 7 p : 8 0 :0 p : 0 :3 p 9 :4 8 :5 p 7 :7 6 :9 p 5 :20 4 :22 p 3 :23 2 :25 p :26 p 26 p 2 25 p 3 23 p 4 22 p 5 20 p 6 9 p 7 7 p 8 5 p 9 4 m m 2 m 3 m 4 m 5 m 6 m 7 m 8 m 9

5:3 Heuristik LPT 2 2 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel zu Heuristik 2 (Nur zwei Jobs pro Maschine) p : 6 0 7 p : 8 0 :0 p : 0 :3 p 9 :4 8 :5 p 7 :7 6 :9 p 5 :20 4 :22 p 3 :23 2 :25 p :26 28 p 26 p 2 25 p 3 23 p 6 p 4 22 p 0 7 p 5 20 p 8 p 6 9 p 0 0 p 7 7 p p 8 5 p 0 3 p 9 4 m m 2 m 3 m 4 m 5 m 6 m 7 m 8 m 9

5:32 Heuristik LPT < > Walter Unger 5.7.205 :3 SS205 Z Approximation Heuristik 2 Theorem (Graham 969) Die LPT Heuristik hat einen Approximationsfaktor von 4/3. Beweis durch Widerspruch: Angenommen, es gibt Eingabeinstanz p, p 2,..., p n auf m Maschinen, mit einem Makespan von τ > 4/3 opt und n minimal gewählt. Seien p p 2... p n. Da n minimal gewählt wurde, ist n der Job, der als letzter fertig wird. Der Job n wurde auf die am wenigsten belastete Maschine platziert. Zu diesem Zeitpunkt war die Last der Maschine höchstens: n m p i opt. i= Damit nun im nächsten Schritt ein Faktor von τ auftritt muss gelten: p n > /3 opt.

5:33 Heuristik LPT < > Walter Unger 5.7.205 :3 SS205 Z Beweis Wegen der Sortierung der Jobs gilt damit: i p i > opt. 3 Also passen höchstens zwei Jobs auf jede Maschine. Es gibt daher auch höchstens n 2 m Jobs. Damit ist aber folgende Platzierung optimal: Platziere Job i für i m auf Maschine i. Platziere Job i für i > m auf Maschine 2 m i +. Das ist aber die Platzierung von der LPT Heuristik. Widerspruch. p n > 3 opt

5:34 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Überblick zur Idee Unser Ziel ist es, für das Scheduling auf identischen Maschinen einen besseren Approximationsfaktor zu erzielen. Die Idee wird sein, die Anzahl möglicher Joblängen zu reduzieren. Dazu werden einige Jobs künstlich länger gemacht. Damit wir nach dem Vereinheitlichen der Joblängen eine optimale Lösung effizient berechnen können, betrachten wir als Zwischenproblem das Bin Packing. Hier ist eine endliche Anzahl von Joblängen in der Eingabe. Weiterhin ist die maximale Laufzeit auch bekannt. Und wir bestimmen nun die minimale Anzahl von Maschinen, für die es eine Lösung gibt. Da wir nur eine endliche Anzahl von Joblängen in der Eingabe haben, können wir die Eingabe und die Lösungen auf einer Maschine durch einen endlichen Vektor modellieren. Eine minimale Anzahl von Maschinen zum Scheduling der Jobs wird nun mittels dynamischer Programierung bestimmt.

5:35 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Motivation und Definition Im nächsten Abschnitt soll das Scheduling auf identischen Maschinen mit einem beliebigen konstanten Faktor approximiert werden. Dabei wird die Lösung des folgenden Problems hilfreich sein. Bemerkung vorweg: Bin Packing entspricht einem Scheduling, bei der es eine Schranke b für den Makespan gibt.

5:36 Einleitung < > Walter Unger 5.7.205 :3 SS205 Z Motivation und Definition Definition (Bin Packing mit eingeschränkten Gewichten) Gegeben: Gesucht: n Objekte: {, 2,..., n}. w, w 2,..., w n mit {w, w 2,..., w n} {, 2,..., k}. Zwei Zahlen m, b N mit: m und b k. z {, 2,..., n} {, 2,..., m} mit: i {, 2,..., m} j {,2,...,n} z(j)=i w j b. Die w i sind die Gewichte der Objekte. Die Funktion z ist die Verteilung der Objekte auf m Bins. Jeder Bin kann maximal b aufnehmen.

5:37 Algorithmus < > Walter Unger 5.7.205 :3 SS205 Z Aussage Theorem Das Bin Packing Problem mit eingeschränkten Gewichten kann in Zeit O((n + ) k (b + ) k /k!) gelöst werden. Die k möglichen Gewichte schränken das Problem ein. Zwei Objekte mit dem gleichen Gewicht sind austauschbar. Daher untersuche nur Lösungen nach der Anzahl der Objekte vom gleichen Gewicht. Nutze dynamische Programmierung. Untersuche die Anzahl der notwendigen Bins für n i Objekte mit Gewicht w i ( i k).

5:38 Algorithmus < > Walter Unger 5.7.205 :3 SS205 Z Dynamische Programmierung O((n + ) k (b + ) k /k!) Sei f (n, n 2,..., n k ) die minimale Anzahl von Bins der Größe b, die n i Objekte mit Gewicht w i ( i k) aufnehmen können. Setze Q = {(q, q 2,..., q k ) f (q, q 2,..., q k ) = }, d.h. die Gewichtskombinationen, die in einen Bin passen. Damit kann f rekursiv beschrieben werden: f (n, n 2,..., n k ) = + min (q,q 2,...,q k ) Q f (n q, n 2 q 2,..., n k q k ). Im Weiteren wird gezeigt, wie diese Werte bestimmt werden. Sei vorher: c i = {j j {, 2,..., n} w(j) = i}. D.h. c i ist die Anzahl der Objekte mit Gewicht i. Das Bin Packing Problem mit eingeschränkten Gewichten hat eine Lösung genau dann, wenn: f (c, c 2,..., c k ) m.

5:39 Algorithmus 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = {

5:39 Algorithmus 2 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), p 3

5:39 Algorithmus 3 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), p 2 3 p 3 p 3

5:39 Algorithmus 4 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), p 2 3 p 3 p 3 p 3 4

5:39 Algorithmus 5 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), (0, 0, 0, 2, 0), p 4 4 p 2 3 p 3 p 3 p 3 4 p 3 4

5:39 Algorithmus 6 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), (0, 0, 0, 2, 0), (0, 0, 0, 0, ), p 4 4 p 3 p 2 3 p 3 p 3 4 p 3 4 p 5 5

5:39 Algorithmus 7 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), (0, 0, 0, 2, 0), (0, 0, 0, 0, ), (0, 0,,, 0), p 3 p 2 3 p 3 p 3 4 p 4 4 p 3 4 p 5 5 p 3 4 p 3

5:39 Algorithmus 8 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), (0, 0, 0, 2, 0), (0, 0, 0, 0, ), (0, 0,,, 0), (0, 0,, 0, ) } p 3 p 2 3 p 3 p 3 4 p 4 4 p 3 4 p 5 5 p 3 4 p 3 p 5 5 p 3

5:39 Algorithmus 9 9 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, p = 3, p 2 = 3, p 3 = 4, p 4 = 4, p 5 = 5, p 6 = 5. D.h. c = 0, c 2 = 0, c 3 = 2, c 4 = 2, c 5 = 2. O((n + ) k (b + ) k /k!) Q = { (0, 0,, 0, 0), (0, 0, 2, 0, 0), (0, 0, 0,, 0), (0, 0, 0, 2, 0), (0, 0, 0, 0, ), (0, 0,,, 0), (0, 0,, 0, ) } Q = { (, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, ) } 8 p 3 p 2 3 p 3 p 3 4 p 4 4 p 3 4 p 5 5 p 3 4 p 3 p 5 5 p 3

5:40 Algorithmus 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. O((n + ) k (b + ) k /k!) f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 2 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. O((n + ) k (b + ) k /k!) f (, 2, 2) f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 3 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min f (, 2, 2) f (0, 2, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 4 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min f (, 2, 2) f (0, 2, 2) f (2,, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 5 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min f (, 2, 2) f (0, 2, 2) f (2,, 2) f (2, 0, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 6 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min f (, 2, 2) f (0, 2, 2) f (2,, 2) f (2, 0, 2) f (2, 2, ) O((n + ) k (b + ) k /k!) Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 7 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min f (, 2, 2) f (0, 2, 2) f (2,, 2) f (2, 0, 2) f (2, 2, ) f (,, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ).

5:40 Algorithmus 8 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. f (, 2, 2) f (0, 2, 2) f (2,, 2) f (2, 0, 2) f (2, 2, ) f (,, 2) f (, 2, ) Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 9 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) f (2,, 2) f (2, 0, 2) f (2, 2, ) f (,, 2) f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 0 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) f (2, 0, 2) f (2, 2, ) f (,, 2) f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) f (2, 2, ) f (,, 2) f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 2 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) f (,, 2) f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 3 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) (2 3 + 2 4 + 5)/8 = 3 f (,, 2) f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 4 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 5 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 6 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) = 3 (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 7 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) = 3 (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 8 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) = 3 (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 9 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) = 3 (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:40 Algorithmus 20 20 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min Damit gilt f (2, 2, 2) 4. Und weiter 3 f (2, 2, 2) 4. Untersuche nun ob f (2, 0, 2) = 2 gilt. f (, 2, 2) ( 3 + 2 4 + 2 5)/8 = 3 f (0, 2, 2) (0 3 + 2 4 + 2 5)/8 = 3 f (2,, 2) (2 3 + 4 + 2 5)/8 = 3 f (2, 0, 2) (2 3 + 0 4 + 2 5)/8 = 2 f (2, 2, ) = 3 (2 3 + 2 4 + 5)/8 = 3 f (,, 2) ( 3 + 4 + 2 5)/8 = 3 f (, 2, ) ( 3 + 2 4 + 5)/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

5:4 Algorithmus 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} O((n + ) k (b + ) k /k!) f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 2 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} O((n + ) k (b + ) k /k!) f (, 0, 2) f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 3 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min f (, 0, 2) f (0, 0, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 4 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min f (, 0, 2) f (0, 0, 2) f (2, 0, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 5 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min f (, 0, 2) f (0, 0, 2) f (2, 0, 2) f (2, 0, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 6 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min f (, 0, 2) f (0, 0, 2) f (2, 0, 2) f (2, 0, 2) f (2, 0, ) O((n + ) k (b + ) k /k!) Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 7 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min f (, 0, 2) f (0, 0, 2) f (2, 0, 2) f (2, 0, 2) f (2, 0, ) f (, 0, 2) O((n + ) k (b + ) k /k!) Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3.

5:4 Algorithmus 8 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3. f (, 0, 2) f (0, 0, 2) f (2, 0, 2) f (2, 0, 2) f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)

5:4 Algorithmus 9 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3. f (, 0, 2) ( 3 + 2 5)/8 = 2 f (0, 0, 2) f (2, 0, 2) f (2, 0, 2) f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)

5:4 Algorithmus 0 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3. f (, 0, 2) ( 3 + 2 5)/8 = 2 f (0, 0, 2) (0 3 + 2 5)/8 = 2 f (2, 0, 2) f (2, 0, 2) f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)

5:4 Algorithmus 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3. f (, 0, 2) ( 3 + 2 5)/8 = 2 f (0, 0, 2) (0 3 + 2 5)/8 = 2 f (2, 0, 2) Keine Lösung f (2, 0, 2) f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)

5:4 Algorithmus 2 8 < > Walter Unger 5.7.205 :3 SS205 Z Beispiel Eingabe: m = 3, b = 8, c 3 = 2, c 4 = 2, c 5 = 2. Q = {(, 0, 0), (2, 0, 0), (0,, 0), (0, 2, 0), (0, 0, ), (,, 0), (, 0, )}. f (2, 2, 2) = + min{3, f (2, 0, 2), f (, 2, )} f (2, 0, 2) = + min Damit gilt f (2, 0, 2) = 2. Und damit auch f (2, 2, 2) = 3. f (, 0, 2) ( 3 + 2 5)/8 = 2 f (0, 0, 2) (0 3 + 2 5)/8 = 2 f (2, 0, 2) Keine Lösung f (2, 0, 2) Keine Lösung f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)