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!)