Effiziente Algorithmen (SS2015)

Größe: px
Ab Seite anzeigen:

Download "Effiziente Algorithmen (SS2015)"

Transkript

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

2 5 Inhaltsverzeichnis < > Walter Unger :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

3 5: Einleitung < > Walter Unger :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).

4 5:2 Einleitung 6 < > Walter Unger :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 5:2 Einleitung 2 6 < > Walter Unger :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

6 5:2 Einleitung 3 6 < > Walter Unger :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

7 5:2 Einleitung 4 6 < > Walter Unger :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

8 5:2 Einleitung 5 6 < > Walter Unger :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

9 5:2 Einleitung 6 6 < > Walter Unger :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

10 5:3 Einleitung 4 < > Walter Unger :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

11 5:3 Einleitung 2 4 < > Walter Unger :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

12 5:3 Einleitung 3 4 < > Walter Unger :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

13 5:3 Einleitung 4 4 < > Walter Unger :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

14 5:4 Einleitung 5 < > Walter Unger :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

15 5:4 Einleitung 2 5 < > Walter Unger :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

16 5:4 Einleitung 3 5 < > Walter Unger :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

17 5:4 Einleitung 4 5 < > Walter Unger :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

18 5:4 Einleitung 5 5 < > Walter Unger :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

19 5:5 Approximation < > Walter Unger :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.

20 5:6 Approximation < > Walter Unger :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.

21 5:7 Approximation < > Walter Unger :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.

22 5:8 Approximation < > Walter Unger :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.

23 5:9 Approximation < > Walter Unger :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 + )

24 5:0 Approximation < > Walter Unger :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

25 5: Güte der Abschätzung < > Walter Unger :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 = +ε.

26 5:2 Güte der Abschätzung < > Walter Unger :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.

27 5:3 Güte der Abschätzung < > Walter Unger :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.

28 5:4 Güte der Abschätzung < > Walter Unger :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...

29 5:4 Güte der Abschätzung 2 < > Walter Unger :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...

30 5:4 Güte der Abschätzung 3 < > Walter Unger :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...

31 5:4 Güte der Abschätzung 4 < > Walter Unger :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...

32 5:4 Güte der Abschätzung 5 < > Walter Unger :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...

33 5:4 Güte der Abschätzung 6 < > Walter Unger :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...

34 5:4 Güte der Abschätzung 7 < > Walter Unger :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...

35 5:4 Güte der Abschätzung 8 < > Walter Unger :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...

36 5:4 Güte der Abschätzung 9 < > Walter Unger :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...

37 5:4 Güte der Abschätzung 0 < > Walter Unger :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...

38 5:4 Güte der Abschätzung < > Walter Unger :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...

39 5:5 Güte der Abschätzung < > Walter Unger :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.

40 5:6 Einleitung < > Walter Unger :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.

41 5:7 Einleitung < > Walter Unger :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.

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

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

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

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

46 5:9 Einleitung 3 < > Walter Unger :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 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

47 5:9 Einleitung 2 3 < > Walter Unger :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 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

48 5:9 Einleitung 3 3 < > Walter Unger :3 SS205 Z Zweiter Versuch am einfachen Beispiel p 4 : 6 3 p 2 : 7 5 p 0 : 6 p : 3 p 7 :0 6 :0 p 5 : 5 4 p 3 : 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

49 5:20 Einleitung < > Walter Unger :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.

50 5:2 Heuristik LL < > Walter Unger :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).

51 5:22 Heuristik LL 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

52 5:22 Heuristik LL 2 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

53 5:22 Heuristik LL 3 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

54 5:22 Heuristik LL 4 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

55 5:22 Heuristik LL 5 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

56 5:22 Heuristik LL 6 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

57 5:22 Heuristik LL 7 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

58 5:22 Heuristik LL 8 0 < > Walter Unger :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 m m 2 m 3 m m 2 m 3

59 5:22 Heuristik LL 9 0 < > Walter Unger :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 m m 2 m m m 2 m 3

60 5:22 Heuristik LL 0 0 < > Walter Unger :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 m m 2 m m m 2 m 3

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

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

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

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

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

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

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

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

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

70 5:25 Heuristik LL < > Walter Unger :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.

71 5:26 Heuristik LL < > Walter Unger :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.

72 5:27 Heuristik LL < > Walter Unger :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

73 5:28 Heuristik LPT < > Walter Unger :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.

74 5:29 Heuristik LPT 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

75 5:29 Heuristik LPT 2 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

76 5:29 Heuristik LPT 3 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

77 5:29 Heuristik LPT 4 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

78 5:29 Heuristik LPT 5 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

79 5:29 Heuristik LPT 6 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

80 5:29 Heuristik LPT 7 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

81 5:29 Heuristik LPT 8 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

82 5:29 Heuristik LPT 9 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

83 5:29 Heuristik LPT 0 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

84 5:29 Heuristik LPT 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

85 5:29 Heuristik LPT 2 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

86 5:29 Heuristik LPT 3 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

87 5:29 Heuristik LPT 4 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

88 5:29 Heuristik LPT 5 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

89 5:29 Heuristik LPT 6 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

90 5:29 Heuristik LPT 7 7 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik m m 2 m 3 m 4 m 5 m 6 m 7

91 5:30 Heuristik LPT 3 < > Walter Unger :3 SS205 Z Bessere Lösung des Beispiels m m 2 m 3 m 4 m 5 m 6 m 7

92 5:30 Heuristik LPT 2 3 < > Walter Unger :3 SS205 Z Bessere Lösung des Beispiels m m 2 m 3 m 4 m 5 m 6 m 7

93 5:30 Heuristik LPT 3 3 < > Walter Unger :3 SS205 Z Bessere Lösung des Beispiels m m 2 m 3 m 4 m 5 m 6 m 7

94 5:3 Heuristik LPT 2 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik 2 (Nur zwei Jobs pro Maschine) p : 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

95 5:3 Heuristik LPT 2 2 < > Walter Unger :3 SS205 Z Beispiel zu Heuristik 2 (Nur zwei Jobs pro Maschine) p : 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

96 5:32 Heuristik LPT < > Walter Unger :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.

97 5:33 Heuristik LPT < > Walter Unger :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

98 5:34 Einleitung < > Walter Unger :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.

99 5:35 Einleitung < > Walter Unger :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.

100 5:36 Einleitung < > Walter Unger :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.

101 5:37 Algorithmus < > Walter Unger :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).

102 5:38 Algorithmus < > Walter Unger :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.

103 5:39 Algorithmus 9 < > Walter Unger :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 = {

104 5:39 Algorithmus 2 9 < > Walter Unger :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

105 5:39 Algorithmus 3 9 < > Walter Unger :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

106 5:39 Algorithmus 4 9 < > Walter Unger :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

107 5:39 Algorithmus 5 9 < > Walter Unger :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

108 5:39 Algorithmus 6 9 < > Walter Unger :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

109 5:39 Algorithmus 7 9 < > Walter Unger :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

110 5:39 Algorithmus 8 9 < > Walter Unger :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

111 5:39 Algorithmus 9 9 < > Walter Unger :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

112 5:40 Algorithmus 20 < > Walter Unger :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, ).

113 5:40 Algorithmus 2 20 < > Walter Unger :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, ).

114 5:40 Algorithmus 3 20 < > Walter Unger :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, ).

115 5:40 Algorithmus 4 20 < > Walter Unger :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, ).

116 5:40 Algorithmus 5 20 < > Walter Unger :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, ).

117 5:40 Algorithmus 6 20 < > Walter Unger :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, ).

118 5:40 Algorithmus 7 20 < > Walter Unger :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, ).

119 5:40 Algorithmus 8 20 < > Walter Unger :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!)

120 5:40 Algorithmus 9 20 < > Walter Unger :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) ( )/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!)

121 5:40 Algorithmus 0 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/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!)

122 5:40 Algorithmus 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/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!)

123 5:40 Algorithmus 2 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/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!)

124 5:40 Algorithmus 3 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) ( )/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!)

125 5:40 Algorithmus 4 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

126 5:40 Algorithmus 5 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

127 5:40 Algorithmus 6 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) = 3 ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

128 5:40 Algorithmus 7 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) = 3 ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

129 5:40 Algorithmus 8 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) = 3 ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

130 5:40 Algorithmus 9 20 < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) = 3 ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

131 5:40 Algorithmus < > Walter Unger :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) ( )/8 = 3 f (0, 2, 2) ( )/8 = 3 f (2,, 2) ( )/8 = 3 f (2, 0, 2) ( )/8 = 2 f (2, 2, ) = 3 ( )/8 = 3 f (,, 2) ( )/8 = 3 f (, 2, ) ( )/8 = 2 Nur wenn f (2, 0, 2) 3 gilt, dann untersuche auch f (, 2, ). O((n + ) k (b + ) k /k!)

132 5:4 Algorithmus 8 < > Walter Unger :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.

133 5:4 Algorithmus 2 8 < > Walter Unger :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.

134 5:4 Algorithmus 3 8 < > Walter Unger :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.

135 5:4 Algorithmus 4 8 < > Walter Unger :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.

136 5:4 Algorithmus 5 8 < > Walter Unger :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.

137 5:4 Algorithmus 6 8 < > Walter Unger :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.

138 5:4 Algorithmus 7 8 < > Walter Unger :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.

139 5:4 Algorithmus 8 8 < > Walter Unger :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!)

140 5:4 Algorithmus 9 8 < > Walter Unger :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) ( )/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!)

141 5:4 Algorithmus 0 8 < > Walter Unger :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) ( )/8 = 2 f (0, 0, 2) ( )/8 = 2 f (2, 0, 2) f (2, 0, 2) f (2, 0, ) f (, 0, 2) f (, 0, ) O((n + ) k (b + ) k /k!)

142 5:4 Algorithmus 8 < > Walter Unger :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) ( )/8 = 2 f (0, 0, 2) ( )/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!)

143 5:4 Algorithmus 2 8 < > Walter Unger :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) ( )/8 = 2 f (0, 0, 2) ( )/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!)

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen

Mehr

Approximationsalgorithmen. 19. Dezember / 28

Approximationsalgorithmen. 19. Dezember / 28 Approximationsalgorithmen 19. Dezember 2017 1 / 28 Optimierungsprobleme Das Ziel: Bearbeite schwierige Optimierungsprobleme der Form opt y f (x, y) so dass L(x, y). Die Zielfunktion f (x, y) ist zu minimieren

Mehr

Approximationsschemata

Approximationsschemata Effiziente Algorithmen Aproximationsalgorithmen 312 Definition Approximationsschemata Sei A(ǫ) ein Approximationsalgorithmus mit einem Parameter ǫ. 1. A(ǫ) ist ein PTAS (polynomial time approximation scheme),

Mehr

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

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

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

Randomisierte und Approximative Algorithmen. Prof. Dr. Heiko Röglin Institut für Informatik Universität Bonn Randomisierte und Approximative Algorithmen Prof. Dr. Heiko Röglin Institut für Informatik Universität Bonn 22. Januar 2018 Inhaltsverzeichnis 1 Einleitung 4 2 Greedy-Algorithmen 6 2.1 Vertex Cover................................

Mehr

Das Rucksackproblem: schwache NP-Härte und Approximation

Das Rucksackproblem: schwache NP-Härte und Approximation Das Rucksackproblem: schwache NP-Härte und Approximation Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1. Februar 2010 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

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

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 5 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 20. Dezember 2017 Abgabe 16. Januar 2018, 11:00 Uhr

Mehr

Übung 2 Algorithmen II

Übung 2 Algorithmen II Yaroslav Akhremtsev, Demian Hespe yaroslav.akhremtsev@kit.edu, hespe@kit.edu Mit Folien von Michael Axtmann (teilweise) http://algo2.iti.kit.edu/algorithmenii_ws17.php - 0 Akhremtsev, Hespe: KIT Universität

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Wiederholung TSP: Kurz:

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Walter Unger Lehrstuhl für Informatik I 20. April 2006 1 Einleitung Motivation Cliquenproblem 2 Vertex Cover Greedy 3 Steiner-Bäume 4 TSP Einleitung Approximation Nichtapproximierbarkeit

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 18 Was tun mit NP-harten Problemen? Viele praxisrelevante

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 4. Januar 2011 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

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

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2012/13 in Trier Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2012/13 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 29. Januar 2013 Näherungsalgorithmen, Fernau, Universität Trier, WiSe 2012/13

Mehr

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

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

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

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 23. VO DAP2 SS 2008 14. Juli 2009

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 7. Dezember 2017 INSTITUT FÜR THEORETISCHE 0 07.12.2017 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

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

Algorithmen 2. Kapitel: Approximationsalgorithmen. Thomas Worsch. Fakultät für Informatik Karlsruher Institut für Technologie Algorithmen 2 Algorithmen 2 Kapitel: Approximationsalgorithmen Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2017/2018 1 / 40 Einleitung Überblick Einleitung

Mehr

Einführung in Approximationsalgorithmen

Einführung in Approximationsalgorithmen Einführung in Approximationsalgorithmen Skript zur Vorlesung Effiziente Algorithmen von Berthold Vöcking, RWTH Aachen 1. Juni 2007 Hilfreiche Literatur Vazirani: Approximation Algorithms, Springer Verlag,

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

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

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen Einführung in Berechenbarkeit, Komplexität und Formale Sprachen V17, 10.12.09 Willkommen zur Vorlesung Einführung in Berechenbarkeit, Komplexität und Formale Sprachen Friedhelm Meyer auf der Heide 1 Rückblick:

Mehr

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Effiziente Algorithmen II

Effiziente Algorithmen II 10. Präsenzaufgabenblatt, WiSe 2014/15 Übungstunde am 19.01.2015 Aufgabe Q Betrachten Sie das Knapsackpolytop P = conv(v ) mit V = {x n i=1 a ix i α} {0, 1} n für gegebenes α und a i 0 (insbesondere ist

Mehr

Einführung in Approximationsalgorithmen

Einführung in Approximationsalgorithmen Einführung in Approximationsalgorithmen Skript zur Vorlesung Effiziente Algorithmen von Berthold Vöcking, RWTH Aachen 30. Juli 2008 Hilfreiche Literatur Vazirani: Approximation Algorithms, Springer Verlag,

Mehr

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

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv

Mehr

Approximationsklassen für Optimierungsprobleme

Approximationsklassen für Optimierungsprobleme Approximationsklassen für Optimierungsprobleme Matthias Erbar 19. September 2007 Inhaltsverzeichnis 1 Einleitung 1 2 Approximationsalgorithmen mit garantierter Güte 2 2.1 Terminologie......................................

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

Die dynamische Programmierung 1 / 51

Die dynamische Programmierung 1 / 51 Die dynamische Programmierung 1 / 51 Dynamische Programmierung - Das Ausgangsproblem P 0 wird in Teilprobleme P 1,..., P t aufgebrochen. - Die Teilprobleme werden dann, einer Schwierigkeitshierarchie entsprechend,

Mehr

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

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

Probleme aus NP und die polynomielle Reduktion

Probleme aus NP und die polynomielle Reduktion Probleme aus NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 15. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Approximationsalgorithmen 1. Vorlesung Joachim Spoerhase Alexander Wolff Lehrstuhl für Informatik I Wintersemester 2017/18 Bücher zur Vorlesung Vijay V. Vazirani Approximation Algorithms Springer-Verlag

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Informatik III - WS07/08

Informatik III - WS07/08 Informatik III - WS07/08 Kapitel 4 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 4 : Komplexitätsklassen Informatik III - WS07/08 Kapitel 4 2 Sprachen, Probleme, Zeitkomplexität

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016 Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithms and Complexity Group 186.815 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2016 5. Oktober 2016 Machen Sie

Mehr

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

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann

Mehr

20. Dynamic Programming II

20. Dynamic Programming II Aufgabe 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen

Mehr

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

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

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

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2006/07 in Trier. Henning Fernau Universität Trier Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2006/07 in Trier Henning Fernau Universität Trier fernau@informatik.uni-trier.de 1 Näherungsalgorithmen Gesamtübersicht Organisatorisches Einführung

Mehr

20. Dynamic Programming II

20. Dynamic Programming II 536 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen et

Mehr

Die Klasse NP und die polynomielle Reduktion

Die Klasse NP und die polynomielle Reduktion Die Klasse NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Dezember 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

1 Einführung in Lineare Programme und Dualität

1 Einführung in Lineare Programme und Dualität Gliederung Inhaltsverzeichnis 1 Einführung in Lineare Programme und Dualität 1 1.1 Lineare Programme......................... 1 1.2 Dualität............................... 2 2 Grundlegende Sätze und Definitionen

Mehr

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

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

21. Dynamic Programming III

21. Dynamic Programming III Approximation 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Sei ein ε (, 1) gegeben. Sei I eine bestmögliche Auswahl. Suchen eine gültige Auswahl I mit

Mehr

Approximationsalgorithmen. Approximation im Sinne der Analysis:

Approximationsalgorithmen. Approximation im Sinne der Analysis: Approximationsalgorithmen Ulrich Pferschy 1 Approximationsalgorithmen Approximation im Sinne der Analysis: Satz von Weierstrass: (1815-1897) Sei f eine stetige Funktion auf [a, b]. Dann gibt es zu jedem

Mehr

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

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Die Klasse NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 26 Optimierungsprobleme und ihre Entscheidungsvariante Beim Rucksackproblem

Mehr

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

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes. Turingmaschinen Wir haben Turingmaschinen eingeführt. Bis auf einen polynomiellen Anstieg der Rechenzeit haben Turingmaschinen die Rechenkraft von parallelen Supercomputern! Statt Turingmaschinen anzugeben,

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen

Mehr

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

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Technische Universität Berlin, Berlin, 28.07.2016 Name:... Matr.-Nr.:... Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Einlesezeit: Bearbeitungszeit: Max.

Mehr

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

Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 11. Januar 2008 Wiederholung

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, 01.02.2012 Henning Meyerhenke 1 KIT Henning Universität desmeyerhenke: Landes Baden-Württemberg und nationales Algorithmische Forschungszentrum

Mehr

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

6.1. Ein Approximationsalgorithmus für das Rucksackproblem 6.1. Ein Approximationsalgorithmus für das Rucksackproblem Wir erinnern uns an das 0-1-Rucksackproblem: Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke

Mehr

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Klausur Algorithmen und Datenstrukturen II 10. August 2015 Technische Universität Braunschweig Sommersemester 2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen

Mehr

Das Problem des minimalen Steiner-Baumes

Das Problem des minimalen Steiner-Baumes Das Problem des minimalen Steiner-Baumes Ein polynomieller Approximationsalgorithmus Benedikt Wagner 4.05.208 INSTITUT FU R THEORETISCHE INFORMATIK, LEHRSTUHL ALGORITHMIK KIT Die Forschungsuniversita t

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 5. Dezember 2017 INSTITUT FÜR THEORETISCHE 0 05.12.2017 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 24.01.2013 Online Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

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

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

Berechnung approximierter Voronoi-Zellen auf geometrischen Datenströmen

Berechnung approximierter Voronoi-Zellen auf geometrischen Datenströmen Definition Berechnung approximierter Voronoi-Zellen auf geometrischen Datenströmen Seminar über Algorithmen WS 2005/2006 Vorgetragen von Oliver Rieger und Patrick-Thomas Chmielewski basierend auf der Arbeit

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

NP-Vollständigkeit des Erfüllbarkeitsproblems

NP-Vollständigkeit des Erfüllbarkeitsproblems NP-Vollständigkeit des Erfüllbarkeitsproblems Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 25 Def: NP-Härte Definition (NP-Härte) Ein Problem L heißt NP-hart,

Mehr

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN F. VALLENTIN, A. GUNDERT 1. Definitionen Notation 1.1. Ähnlich wie im vorangegangenen Kapitel zunächst etwas Notation. Wir beschäftigen uns jetzt mit ungerichteten

Mehr

Approximation im Sinne der Analysis:

Approximation im Sinne der Analysis: 1 Approximation im Sinne der Analysis: Satz von Weierstrass: (1815-1897) Sei f eine stetige Funktion auf [a, b]. Dann gibt es zu jedem ε > 0 ein Polynom P ε mit: max x [a,b] f(x) P ε(x) < ε Numerische

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 9 10.12.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T20 Beweisen Sie die

Mehr

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

6. Übungsblatt zu Algorithmen II im WS 2011/2012 Karlsruher Institut für Technologie Institut für Theoretische Informatik rof. Dr. eter Sanders Moritz Kobitzsch, Dennis Schieferdecker 6. Übungsblatt zu Algorithmen II im WS 011/01 Aufgabe 1 http://algo.iti.kit.edu/algorithmenii.php

Mehr

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1 Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element

Mehr

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

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z} u v u v z w z w y x y x Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z} Definition 0.0.1 (Vertex Cover (VC)). Gegeben: Ein ungerichteter

Mehr

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

Kap. 7 Optimierung. Überblick. Optimierung: Einführung. Motivation. Beispiele für Optimierungsprobleme. Rundreiseprobleme (TSP) Kap. 7 Optimierung Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 22. VO 2. TEIL DAP2 SS 2009 9. Juli 2009 Überblick Einführung Einige klassische Optimierungsprobleme,

Mehr

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen lausthal Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Erinnerung: Dynamische Programmierung Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

Mehr

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016 Technische Universität Braunschweig Sommersemester 2016 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen

Mehr

Rundreiseproblem und Stabilität von Approximationsalg.

Rundreiseproblem und Stabilität von Approximationsalg. Das Rundreiseproblem und Stabilität von Approximationsalgorithmen Friedrich Alexander Universität Erlangen-Nürnberg Seminar Perlen der theoretischen Informatik, 2008-01-19 http://verplant.org/uni/perlen/

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,

Mehr

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

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Teil 3: Kodierung 1 Motivation 2 Exkurs Grundlagen formaler Sprachen 3 Grundlagen 4 Beispielkodierungen FM2 (WS 2014/15,

Mehr

Seminar Algorithmentechnik

Seminar Algorithmentechnik Seminar Algorithmentechnik Institut für Theoretische Informatik Lehrstuhl für Algorithmik I Prof. Dorothea Wagner Karlsruhe Seminar Institut Algorithmentechnik für Technologie (KIT) Fakultät für Informatik

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

2.6 Asymptotische Approximation: Min Binpacking

2.6 Asymptotische Approximation: Min Binpacking 2.6 Asymptotische Approximation: Min Binpacking In diesem Abschnitt geht es die Erscheinung, dass manche Optimierungsprobleme Approximationsalgorithmen haben, die nur für Inputs x mit groÿem Wert m (x)

Mehr

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.

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. 2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert

Mehr

Heuristiken im Kontext von Scheduling

Heuristiken im Kontext von Scheduling Heuristiken im Kontext von Scheduling Expertenvortrag CoMa SS 09 CoMa SS 09 1/35 Übersicht Motivation Makespan Scheduling Lokale Suche Weitere Metaheuristiken Zusammenfassung Literatur CoMa SS 09 2/35

Mehr

Betriebswirtschaftliche Optimierung

Betriebswirtschaftliche Optimierung Institut für Statistik und OR Uni Graz 1 Approximationsalgorithmen auf metrischen Instanzen Minimum Spanning Tree Definition (Spannbaum) Ein Spannbaum in einem Graphen G = (V,E) ist ein kreisfreier Teilgraph

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt

Mehr

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

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann sind Codes eindeutig entschlüsselbar? Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

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

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Map Labeling INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:

Mehr

Seminar. Algorithmische Geometrie

Seminar. Algorithmische Geometrie Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.

Mehr