Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006."—  Präsentation transkript:

1 1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006

2 2 Übersicht Approximationsalgorithmen Approximationsalgorithmen Online-Algorithmen Online-Algorithmen Unit-Clustering (Epstein, vS, neu) Unit-Clustering (Epstein, vS, neu) Strip-Packing (Epstein, vS, WAOA 2004; Jansen, vS, STOC 2005) Strip-Packing (Epstein, vS, WAOA 2004; Jansen, vS, STOC 2005) Scheduling auf einer Maschine (vS und La Poutre, JAlg 2005) Scheduling auf einer Maschine (vS und La Poutre, JAlg 2005)

3 3 Approximationsalgorithmen Viele praktische Probleme sind nicht in polynomieller Zeit lösbar (oder P=NP…) Viele praktische Probleme sind nicht in polynomieller Zeit lösbar (oder P=NP…) Was machen wir damit? Was machen wir damit? –Aufgeben, zu schwierig –Exponentielle Zeit benutzen (Heuristiken) –Approximationsalgorithmen

4 4 Approximationsalgorithmen Arbeiten in polynomieller Zeit Arbeiten in polynomieller Zeit Produzieren eine Lösung die garantiert relativ gut ist Produzieren eine Lösung die garantiert relativ gut ist Was bedeutet das? Was bedeutet das? Approximationsverhältnis: Vergleich mit der optimalen Lösung Approximationsverhältnis: Vergleich mit der optimalen Lösung

5 5 Approximationsverhältnis Höchstmögliche Verhältnis zwischen den Kosten des Algorithmus und den optimalen Kosten Höchstmögliche Verhältnis zwischen den Kosten des Algorithmus und den optimalen Kosten Schlimmster Fall bestimmt Verhältnis, deshalb Garantie Schlimmster Fall bestimmt Verhältnis, deshalb Garantie

6 6 Online-Algorithmen Auch hat man in der Praxis oft keine vollständige Information Auch hat man in der Praxis oft keine vollständige Information Beispiel: Beispiel: –Aufträge kommen während des Arbeitstages an –Sollten Maschinen oder Mitarbeitern zugewiesen werden –Kann nicht warten bis der Tag vorbei ist…

7 7 Online-Algorithmen Arbeiten ohne vollständige Kenntnisse Arbeiten ohne vollständige Kenntnisse Produzieren Teillösungen während Information bekannt wird Produzieren Teillösungen während Information bekannt wird Dürfen evtl. exponentielle Zeit benutzen (lieber nicht natürlich) Dürfen evtl. exponentielle Zeit benutzen (lieber nicht natürlich) Wie gute Lösungen kann man finden im Vergleich zur optimalen Lösung? Wie gute Lösungen kann man finden im Vergleich zur optimalen Lösung?

8 8 Kompetitivitätsverhältnis Genauso definiert wie Approximationsverhältnis: Genauso definiert wie Approximationsverhältnis: Vergleich ist mit der optimalen Lösung, die nur mit vollständiger Kenntnis gefunden werden kann Vergleich ist mit der optimalen Lösung, die nur mit vollständiger Kenntnis gefunden werden kann Nicht die Laufzeit, sondern der Mangel an Informationen ist das Problem Nicht die Laufzeit, sondern der Mangel an Informationen ist das Problem

9 9 Übersicht Approximationsalgorithmen Approximationsalgorithmen Online-Algorithmen Online-Algorithmen Unit-Clustering Unit-Clustering –Algorithmus –Untere Schranke Strip-Packing Strip-Packing Scheduling auf einer Maschine Scheduling auf einer Maschine

10 10 Clustering-Probleme Allgemein: verteile eine Menge von Punkten in Gruppen, damit eine Funktion optimiert wird Allgemein: verteile eine Menge von Punkten in Gruppen, damit eine Funktion optimiert wird Fundamentales Problem Fundamentales Problem Viele Anwendungen: Viele Anwendungen: –Data mining –Facility location –…

11 11 Clustering-Probleme k-Zentren: decke n Punkte mit höchstens k Bällen ab, minimiere Durchmesser des größten Balles k-Zentren: decke n Punkte mit höchstens k Bällen ab, minimiere Durchmesser des größten Balles Unit-Covering: decke n Punkte mit Einheitsbällen ab, minimiere Anzahl der Bälle ( Charikar et al. [SICOMP 2004] ) Unit-Covering: decke n Punkte mit Einheitsbällen ab, minimiere Anzahl der Bälle ( Charikar et al. [SICOMP 2004] ) Beide Probleme sind NP-hart auf der Ebene Beide Probleme sind NP-hart auf der Ebene

12 12 Unit-Clustering Chan und Zadeh [WAOA 2006] Chan und Zadeh [WAOA 2006] Decke n Punkte mit Bällen ab Decke n Punkte mit Bällen ab Jeder Ball hat einen Durchmesser von höchstens 1 Jeder Ball hat einen Durchmesser von höchstens 1 Minimiere die Anzahl der Bälle Minimiere die Anzahl der Bälle Offline: identisch mit Unit-Covering Offline: identisch mit Unit-Covering Online: Position von Bällen liegt nicht sofort fest! Online: Position von Bällen liegt nicht sofort fest!

13 13 Unit-Clustering Wir betrachten nur eine Dimension Wir betrachten nur eine Dimension Problem ist äquivalent mit dualen Problem: finde größte Teilmenge disjunkter Intervallen in einer Menge von Einheitsintervallen Problem ist äquivalent mit dualen Problem: finde größte Teilmenge disjunkter Intervallen in einer Menge von Einheitsintervallen Oder: finde maximale unabhängige Menge in Einheitsintervallgraphen Oder: finde maximale unabhängige Menge in Einheitsintervallgraphen

14 14 Definition des Problems Eingaben sind Punkte auf der Geraden Eingaben sind Punkte auf der Geraden Jeder Punkt sollte einem Cluster zugewiesen werden Jeder Punkt sollte einem Cluster zugewiesen werden Zuweisung kann nicht mehr geändert werden Zuweisung kann nicht mehr geändert werden Ein Cluster hat eine Größe von höchstens 1 Ein Cluster hat eine Größe von höchstens 1 Ziel: minimiere Anzahl der Cluster Ziel: minimiere Anzahl der Cluster

15 15 Offline Unit Clustering Fange links an, definiere ein Cluster Fange links an, definiere ein Cluster Falls noch ein Punkt unbedeckt, definiere neues Cluster usw. Falls noch ein Punkt unbedeckt, definiere neues Cluster usw. Gibt optimale Lösung Gibt optimale Lösung

16 16 Online Unit-Clustering Chan und Zadeh [WAOA 2006]: Chan und Zadeh [WAOA 2006]: –Einfache Algorithmen haben Kompetitivitätsverhältnis 2 –Randomisierter Algorithmus mit 1,875 –Untere Schranken: Randomisiert 4/3 Randomisiert 4/3 Deterministisch 3/2 Deterministisch 3/2 Wir verbessern diese Ergebnisse Wir verbessern diese Ergebnisse

17 17 Online Unit-Clustering Unsere Ergebnisse: Unsere Ergebnisse: –Randomisierter Algorithmus mit 1,875 –Untere Schranken: Randomisiert 4/3 Randomisiert 4/3 Deterministisch 3/2 Deterministisch 3/2 Deterministischer 1,75 ------ ---- 3/2 ---- 1,6

18 18 Einfache Algorithmen Wenn neuer Punkt p nicht in ein bereits definiertes Cluster passt: Zentriert: p ist Mittelpunkt des neuen Clusters Zentriert: p ist Mittelpunkt des neuen Clusters Grid: Alle Cluster sind von der Form [i, i+1) Grid: Alle Cluster sind von der Form [i, i+1) Greedy: definiere neues Cluster Greedy: definiere neues Cluster

19 19 Untere Schranken Zentriert: Zentriert: Diese untere Schranke funktioniert auch für Grid (Punkte sind 1/2, 3/2, 5/2,…) Diese untere Schranke funktioniert auch für Grid (Punkte sind 1/2, 3/2, 5/2,…)

20 20 Untere Schranken Greedy: Greedy:

21 21 Verbesserung Wie kommt man unter 2? Wie kommt man unter 2? Chan und Zadeh benutzen Randomisierung Chan und Zadeh benutzen Randomisierung Geht es auch ohne? Geht es auch ohne? Die untere Schranke für Greedy zeigt, dass diese Situation schlecht ist: Die untere Schranke für Greedy zeigt, dass diese Situation schlecht ist:

22 22 Paare von Clustern Wir vermeiden diese Lage, damit wir Cluster zusammenschmieden falls möglich - Mindestens ein optimales Cluster muss ganz im Paar erhalten sein - Beide Cluster haben jetzt Größe 1

23 23 Analyse Höchstens an einer Seite von einem Paar kann ein optimales Cluster herausstehen Höchstens an einer Seite von einem Paar kann ein optimales Cluster herausstehen Punkt in der Mitte muss bedeckt sein! Punkt in der Mitte muss bedeckt sein! OPT 1 OPT 2

24 24 Analyse Eine Gruppe ist eine Serie von Online- Clustern verbunden durch Offline- Clustern Eine Gruppe ist eine Serie von Online- Clustern verbunden durch Offline- Clustern

25 25 Analyse Jedes Paar ist das rechte oder das linke Ende einer Gruppe Jedes Paar ist das rechte oder das linke Ende einer Gruppe Auf jede Gruppe ist das Kompetitivi- tätsverhältnis höchstens 7/4 Auf jede Gruppe ist das Kompetitivi- tätsverhältnis höchstens 7/4

26 26 Untere Schranke: 1,6 Sonst Kompetitivitätsverhältnis25/3 Kompetitivitätsverhältnis X

27 27 Untere Schranke: 1,6 Kompetitivitätsverhältnis5/3

28 28 Untere Schranke: 1,6 OPT = 4 Sonst Kompetitivitätsverhältnis7/4 OPT = 5 Kompetitivitätsverhältnis 8/5

29 29 Zusammenfassung Unit- Clustering 1,75-kompetitiver Algorithmus 1,75-kompetitiver Algorithmus Untere Schranke 1,6 Untere Schranke 1,6 Randomisierte untere Schranke 3/2 Randomisierte untere Schranke 3/2 Geht es noch besser? Vielleicht mit Randomisierung? Geht es noch besser? Vielleicht mit Randomisierung? Vermutung: echte (deterministische) Schranke ist 5/3. Vermutung: echte (deterministische) Schranke ist 5/3.

30 30 Übersicht Approximationsalgorithmen Approximationsalgorithmen Online algorithmen Online algorithmen Unit Clustering Unit Clustering Strip-Packing Strip-Packing –3/2 – Approximation [Epstein, vS, WAOA2004 ] –APTAS [Jansen, vS, STOC2005] Scheduling auf einer Maschine Scheduling auf einer Maschine

31 31 Asymptotisches Leistungsverhältnis Leistungsmaß für Bin- und Strip- Packing-Algorithmen Leistungsmaß für Bin- und Strip- Packing-Algorithmen Idee: vergleiche Anzahl der benutzten Behälter zur optimalen Anzahl, für große Eingaben Idee: vergleiche Anzahl der benutzten Behälter zur optimalen Anzahl, für große Eingaben Worst-case Leistungsgarantie Worst-case Leistungsgarantie

32 32 Strip-Packing Packe Rechtecke auf einen Strip Packe Rechtecke auf einen Strip Nur orthogonale Packungen Nur orthogonale Packungen Keine Überschneidungen Keine Überschneidungen Ziel: minimiere max. Höhe Ziel: minimiere max. Höhe Kenyon und Rémila [FOCS’96, Math OR 2000] geben AFPTAS Kenyon und Rémila [FOCS’96, Math OR 2000] geben AFPTAS

33 33 Drehungen Jetzt nehmen wir an, dass Objekte über 90 Grad gedreht werden können Jetzt nehmen wir an, dass Objekte über 90 Grad gedreht werden können Wie können wir sie effizient packen? Wie können wir sie effizient packen? Für jedes Objekt müssen wir eine Orientierung bestimmen Für jedes Objekt müssen wir eine Orientierung bestimmen Viele Möglichkeiten... Viele Möglichkeiten...

34 34 Drehbare Objekte (2-d) Wir können auswählen, welche Dimension vertikal gepackt wird Wir können auswählen, welche Dimension vertikal gepackt wird Objekt i wird notiert mit Objekt i wird notiert mit Höhe und Breite sind Zahlen zwischen 0 und 1 Höhe und Breite sind Zahlen zwischen 0 und 1

35 35 Eine einfache 3/2- approximation [EvS, WAOA 2004] Algorithmus: Stapele große Objekte Algorithmus: Stapele große Objekte Füge kleine Objekte an rechte Seite hinzu Algorithmus: Stapele große Objekte Füge kleine Objekte an rechte Seite hinzu Stelle weitere mittlere und kleine Objekte darauf

36 36 Die Approximierung verbessern Wie können wir unter 3/2 geraten? Wie können wir unter 3/2 geraten? Der einfache Algorithmus hat nur die Objekte > ½ optimal gepackt Der einfache Algorithmus hat nur die Objekte > ½ optimal gepackt Wir werden jetzt mehr Objekte optimal packen müssen Wir werden jetzt mehr Objekte optimal packen müssen Z.B., wie finden wir die optimale Packung für Objekte breiter als 1/3? Z.B., wie finden wir die optimale Packung für Objekte breiter als 1/3?

37 37 Ein einfacher Fall Es gibt a unterschiedliche Höhen und b unterschiedliche Breiten Es gibt a unterschiedliche Höhen und b unterschiedliche Breiten Deshalb höchstens ab Gruppen Deshalb höchstens ab Gruppen In einer Gruppe der Größe gibt es In einer Gruppe der Größe gibt es Möglichkeiten für Drehungen: drehe der Objekte Möglichkeiten für Drehungen: drehe der Objekte Insgesamt Möglichkeiten Insgesamt Möglichkeiten

38 38 Ein einfacher Fall Für jede mögliche Orientierung können wir Kenyon & Rémila benutzen für eine gute Approximierung Für jede mögliche Orientierung können wir Kenyon & Rémila benutzen für eine gute Approximierung Weil, haben wir Weil, haben wir Polynomiell in n für konstante a and b Polynomiell in n für konstante a and b

39 39 Wie erreichen wir diesen Fall? Wir müssen vorsichtig sein beim Aufrunden Wir müssen vorsichtig sein beim Aufrunden Kann eine große Auswirkung haben Kann eine große Auswirkung haben Beispiel: viele Objekte mit Breite gerade unter ½ Beispiel: viele Objekte mit Breite gerade unter ½ Bei Aufrundung auf einen Wert größer als ½ passen sie nicht mehr nebeneinander Bei Aufrundung auf einen Wert größer als ½ passen sie nicht mehr nebeneinander

40 40 Lösung von Kenyon & Rémila Wenn Drehungen nicht erlaubt sind, können wir die Breiten aufrunden Wenn Drehungen nicht erlaubt sind, können wir die Breiten aufrunden Höhen bleiben ungeändert und wir machen Gruppen gleicher Höhe Höhen bleiben ungeändert und wir machen Gruppen gleicher Höhe Eine horizontale Aufrundung kann so zu einer vertikalen Anpassung der Eingabe führen Eine horizontale Aufrundung kann so zu einer vertikalen Anpassung der Eingabe führen

41 41 Fraktionales Strip-Packing Erlaube horizontale Schnitte durch die Rechtecke Erlaube horizontale Schnitte durch die Rechtecke Das macht das Problem einfacher Das macht das Problem einfacher Ein fraktionales Strip-Packing kann in ein normales Packing verwandelt werden Ein fraktionales Strip-Packing kann in ein normales Packing verwandelt werden Lösungswert ändert sich “nicht viel” und ist einfacher zu finden (LP) Lösungswert ändert sich “nicht viel” und ist einfacher zu finden (LP)

42 42 Auf- und abrunden

43 43 Auf- und abrunden Der Unterschied zwischen L und R ist ein Stapel der Breite 1 und Höhe h/m Der Unterschied zwischen L und R ist ein Stapel der Breite 1 und Höhe h/m Dies trägt h/m extra zum Lösungswert bei Dies trägt h/m extra zum Lösungswert bei Wir können dies beliebig klein machen indem wir m größer machen Wir können dies beliebig klein machen indem wir m größer machen

44 44 Probleme mit Drehungen Wir möchten aufrunden und gruppieren und K&R benutzen Wir möchten aufrunden und gruppieren und K&R benutzen Jetzt wird in 2 Dimensionen gerundet Jetzt wird in 2 Dimensionen gerundet Bedingungen: Bedingungen: –“Höhen” sollten nicht zu weit von Originalhöhen entfernt sein –Lösungswert sollte nicht zu weit entfernt vom ursprünglichen Lösungswert sein

45 45 Probleme mit Drehungen Wir können nicht einfach das Gruppieren und Aufrunden von K&R benutzen, weil manche Dimensionen sich stark ändern können Wir können nicht einfach das Gruppieren und Aufrunden von K&R benutzen, weil manche Dimensionen sich stark ändern können Geometrisches Aufrunden geht auch nicht weil der Lösungswert sich vielleicht zuviel ändert Geometrisches Aufrunden geht auch nicht weil der Lösungswert sich vielleicht zuviel ändert Lösung: kombiniere beide Methoden! Lösung: kombiniere beide Methoden!

46 46 Die Aufrundung Mache eine Liste die jedes Objekt zweimal enthält (einmal quer) Mache eine Liste die jedes Objekt zweimal enthält (einmal quer) Mache einen Stapel wie vorher Mache einen Stapel wie vorher Definiere Grenzrechtecke Definiere Grenzrechtecke Runde jede “Breite” auf auf Minimum von der Breite der Runde jede “Breite” auf auf Minimum von der Breite der –Ersten Grenzrechtecke darunter –Ersten Potenz von über orig. Breite

47 47 Diskussion So finden wir eine Lösung die beliebig nah an der optimalen Lösung ist So finden wir eine Lösung die beliebig nah an der optimalen Lösung ist Den Beweis werde ich überspringen… Den Beweis werde ich überspringen…

48 48 Übersicht Approximationsalgorithmen Approximationsalgorithmen Online-Algorithmen Online-Algorithmen Unit Clustering Unit Clustering Strip-Packing Strip-Packing Scheduling auf einer Maschine Scheduling auf einer Maschine

49 49 Das Problem Jobs kommen online an Jobs kommen online an Job J j hat Freigabezeit r j, Größe p j Job J j hat Freigabezeit r j, Größe p j Die Maschine kann nur einen Job gleichzeitig ausführen Die Maschine kann nur einen Job gleichzeitig ausführen Keine Informationen über die Zukunft Keine Informationen über die Zukunft C j = Zeitpunkt an dem J j beendet wird C j = Zeitpunkt an dem J j beendet wird Ziel: minimiere Summe der C j

50 50 Bekannte Ergebnisse Deterministisch: R = 2 Deterministisch: R = 2 –Obere Schranke [Phillips, Stein & Wein 95, Stougie 95, Hoogeveen & Vestjens 96] –Untere Schranke [Hoogeveen & Vestjens 96] Randomisiert: R = e/(e-1) = 1,58… Randomisiert: R = e/(e-1) = 1,58… –Obere Schranke [Chekuri, Motwani, Natarajan & Stein 97] –Untere Schranke [Vestjens 97]

51 51 Neustarts Es ist erlaubt, einen Job abzubrechen Es ist erlaubt, einen Job abzubrechen Er sollte dann wieder vom Anfang ausgeführt werden Er sollte dann wieder vom Anfang ausgeführt werden Macht nur Sinn im Online-Problem Macht nur Sinn im Online-Problem (Preemptions: SRPT hat Kompetitivi- tätsverhältnis 1) (Preemptions: SRPT hat Kompetitivi- tätsverhältnis 1) Untere Schranke 1,211 [Epstein, vS 01] Untere Schranke 1,211 [Epstein, vS 01]

52 52 Neustarts Jobs „sollten“ sortiert nach Größe ausgeführt werden (das ist optimal wenn alle Jobs Freigabezeit 0 haben) Jobs „sollten“ sortiert nach Größe ausgeführt werden (das ist optimal wenn alle Jobs Freigabezeit 0 haben) Falls es Jobs gibt, führen wir immer den Kleinsten aus Falls es Jobs gibt, führen wir immer den Kleinsten aus Frage: wann sollten wir einen Job J abbrechen für einen neuen Job J´ ? Frage: wann sollten wir einen Job J abbrechen für einen neuen Job J´ ?

53 53 Wann Job J abbrechen? Verschiedene Parameter könnten betrachtet werden: Aktuelle Fertigstellungszeit von J Aktuelle Fertigstellungszeit von J Potenzielle Fertigstellungszeit von J´ Potenzielle Fertigstellungszeit von J´ Größe von J, Größe von J´ Größe von J, Größe von J´ Anfangszeit von J und von J´ Anfangszeit von J und von J´ Anzahl wartender Jobs… Anzahl wartender Jobs…

54 54 RSPT (restarting SPT) Führt Jobs aus wie SPT, aber bricht manchmal Jobs ab Führt Jobs aus wie SPT, aber bricht manchmal Jobs ab J hat Größe x, fängt an am Zeitpunkt s J hat Größe x, fängt an am Zeitpunkt s J´ hat Größe w, hat Freigabezeit r J´ hat Größe w, hat Freigabezeit r RSPT bricht J ab und fängt J´ an falls RSPT bricht J ab und fängt J´ an falls s+x r r+w 2(s+x)/3 0 s

55 55 RSPT Dieser Algorithmus ist sehr einfach Dieser Algorithmus ist sehr einfach Wieso die Zahl 2/3? Wieso die Zahl 2/3? Betrachten wir RSPT(a) mit Abbruchbedingung Betrachten wir RSPT(a) mit Abbruchbedingung Kann nicht besser sein als 1,48 Kann nicht besser sein als 1,48

56 56 RSPT(a): Beispiel 1 0 a 1 0 a 1 OPT = (N+1) a + 1 => Verhältnis 1/a Wenn a < 2/3: untere Schranke 3/2 Kosten: N+1 N sehr kleine Jobs (Größe 0) Kein Neustart

57 57 RSPT(a): Beispiel 2 0 a 1 0 a 1 Kein Neustart Neustart

58 58 RSPT(a): Beispiel 3 0 a 1 0 a 1 Neustart

59 59 RSPT(a): Ergebnis Kompetitivitätsverhältnis von RSPT(a) ist mindestens Wir nehmen jetzt a = 2/3 und werden zeigen R(RSPT) = 3/2

60 60 Analyse Kredite: „um wieviel darf ein Job noch verzögert werden“ Kredite: „um wieviel darf ein Job noch verzögert werden“ Invariant: alle Jobs haben genügend Kredit (mindestens 0) Invariant: alle Jobs haben genügend Kredit (mindestens 0) Ereignis: RSPT fängt einen Job an Ereignis: RSPT fängt einen Job an Klassifiziere Ereignisse nach Entscheidung von OPT Klassifiziere Ereignisse nach Entscheidung von OPT

61 61 Optimale Kosten Wir führen eine Schätzung (untere Schranke) s*(J) für die optimale Anfangszeit von J Wir führen eine Schätzung (untere Schranke) s*(J) für die optimale Anfangszeit von J Bei jedem Jobanfang wird s*(J) für alle Jobs angepasst Bei jedem Jobanfang wird s*(J) für alle Jobs angepasst Kredit des neuen Jobs basiert zum Teil auf s*(J) Kredit des neuen Jobs basiert zum Teil auf s*(J)

62 62 Kredite Idee: wenn OPT einen Job am Zeitpunkt t fertig stellt, „sollte“ RSPT diesen Job am Zeitpunkt 3t /2 fertig gestellt haben Idee: wenn OPT einen Job am Zeitpunkt t fertig stellt, „sollte“ RSPT diesen Job am Zeitpunkt 3t /2 fertig gestellt haben –Eigentlich gilt das nur im Durchschnitt Wenn neuer Job J ankommt, berechne Anfangszeit s(J) in Schedule von RSPT (Annahme: keine weitere Jobs) Wenn neuer Job J ankommt, berechne Anfangszeit s(J) in Schedule von RSPT (Annahme: keine weitere Jobs)

63 63 Abbrüche gibt Kredit an verliert Kredit 0 1 2 0 1 2 3 4 verliert Kredit

64 64 Abbrüche Ein neuer Job kann nicht für alle Jobs zahlen die er vielleicht verzögert Ein neuer Job kann nicht für alle Jobs zahlen die er vielleicht verzögert Deshalb sollten Jobs teilweise für Abbrüche von kleineren Jobs zahlen / Kredit haben: Deshalb sollten Jobs teilweise für Abbrüche von kleineren Jobs zahlen / Kredit haben: –Weißer Job im ersten Beispiel –Brauner Job im zweiten Beispiel

65 65 Fertigstellungen: was macht OPT? 0 1 OPT Hat mehr Kredit als vorher berechnet! Haben negativen Kredit s*(J) wurde zuletzt berechnet als angefangen hat

66 66 Fertigstellungen: was macht OPT? 0 1 2 OPT Wir benutzen nur: s*(J) ist mindestens 0

67 67 Kredite Beispiele zeigen: ein Job sollte zahlen Beispiele zeigen: ein Job sollte zahlen –für seinen eigenen Fertigstellung –für Abbrüche von Jobs vor ihm Invariante (Idee): Invariante (Idee): –Jeder Job hat genügend Kredit, um für alle möglichen zukünftigen Abbrüche von kleineren Jobs und für seinen eigenen Fertigstellung zu zahlen

68 68 Beweis Für jedes mögliche Ereignis sollten wir zeigen, dass wir Kredite umordnen können damit die Invariante gilt Für jedes mögliche Ereignis sollten wir zeigen, dass wir Kredite umordnen können damit die Invariante gilt Ereignisse unterscheiden sich durch Ereignisse unterscheiden sich durch –Anfangszeit des aktuellen Jobs (im Verhältnis zu seiner Größe) –Zeitpunkt an dem OPT diesen Job anfängt –welchen neuen Job OPT zuerst anfängt

69 69 Beweis Der Rest ist Algebra. Der Rest ist Algebra.

70 70 Zusammenfassung Eleganter Algorithmus mit guter Leistung Eleganter Algorithmus mit guter Leistung Lücke zwischen unterer und oberer Schranke kleiner als 0,3 Lücke zwischen unterer und oberer Schranke kleiner als 0,3 Zur Verbesserung werden wir einen komplizierteren Algorithmus brauchen Zur Verbesserung werden wir einen komplizierteren Algorithmus brauchen Neustarts effizient benutzen ist nicht trivial Neustarts effizient benutzen ist nicht trivial

71 71 Danke schön!


Herunterladen ppt "1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006."

Ähnliche Präsentationen


Google-Anzeigen