1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006.
-
Upload
caroline-beyer -
Category
Documents
-
view
213 -
download
0
Transcript of 1 Kombinatorische Algorithmen für Scheduling- und Packungsprobleme Rob van Stee 23. Oktober 2006.
11
Kombinatorische Kombinatorische Algorithmen für Algorithmen für Scheduling- und Scheduling- und
PackungsproblemePackungsprobleme
Rob van SteeRob van Stee
23. Oktober 200623. Oktober 2006
22
ÜbersichtÜbersicht ApproximationsalgorithmenApproximationsalgorithmen Online-AlgorithmenOnline-Algorithmen Unit-ClusteringUnit-Clustering (Epstein, vS, neu)(Epstein, vS, neu) Strip-Packing Strip-Packing
(Epstein, vS, (Epstein, vS, WAOA 2004WAOA 2004; Jansen, vS, ; Jansen, vS, STOC STOC 20052005))
Scheduling auf einer Maschine Scheduling auf einer Maschine (vS und La Poutre, (vS und La Poutre, JAlg 2005JAlg 2005))
33
ApproximationsalgorithmApproximationsalgorithmenen Viele praktische Probleme sind Viele praktische Probleme sind
nicht in polynomieller Zeit lösbar nicht in polynomieller Zeit lösbar (oder P=NP…) (oder P=NP…)
Was machen wir damit?Was machen wir damit?– Aufgeben, zu schwierigAufgeben, zu schwierig– Exponentielle Zeit benutzen Exponentielle Zeit benutzen
(Heuristiken)(Heuristiken)– ApproximationsalgorithmenApproximationsalgorithmen
44
ApproximationsalgorithmApproximationsalgorithmenen Arbeiten in polynomieller ZeitArbeiten in polynomieller Zeit Produzieren eine Lösung die Produzieren eine Lösung die
garantiertgarantiert relativ gutrelativ gut ist ist Was bedeutet das?Was bedeutet das? Approximationsverhältnis: Approximationsverhältnis:
Vergleich mit der optimalen Vergleich mit der optimalen LösungLösung
55
ApproximationsverhältniApproximationsverhältniss Höchstmögliche Verhältnis Höchstmögliche Verhältnis
zwischen den Kosten des zwischen den Kosten des Algorithmus und den optimalen Algorithmus und den optimalen KostenKosten
Schlimmster Fall bestimmt Schlimmster Fall bestimmt Verhältnis, deshalb Verhältnis, deshalb GarantieGarantie
)()(
OPTALG
sup
66
Online-AlgorithmenOnline-Algorithmen Auch hat man in der Praxis oft Auch hat man in der Praxis oft keine keine
vollständige Informationvollständige Information Beispiel:Beispiel:
– Aufträge kommen während des Aufträge kommen während des Arbeitstages anArbeitstages an
– Sollten Maschinen oder Mitarbeitern Sollten Maschinen oder Mitarbeitern zugewiesen werdenzugewiesen werden
– Kann nicht warten bis der Tag vorbei Kann nicht warten bis der Tag vorbei ist…ist…
77
Online-AlgorithmenOnline-Algorithmen Arbeiten ohne vollständige Arbeiten ohne vollständige
KenntnisseKenntnisse Produzieren Produzieren TeillösungenTeillösungen während während
Information bekannt wirdInformation bekannt wird Dürfen evtl. Dürfen evtl. exponentielleexponentielle Zeit Zeit
benutzen (lieber nicht natürlich)benutzen (lieber nicht natürlich) Wie gute Lösungen kann man finden Wie gute Lösungen kann man finden
im Vergleich zur optimalen Lösung?im Vergleich zur optimalen Lösung?
88
KompetitivitätsverhältKompetitivitätsverhältnisnis Genauso definiert wie Genauso definiert wie
Approximationsverhältnis:Approximationsverhältnis: Vergleich ist mit der optimalen Vergleich ist mit der optimalen
Lösung, die nur mit vollständiger Lösung, die nur mit vollständiger Kenntnis gefunden werden kannKenntnis gefunden werden kann
Nicht die Laufzeit, sondern der Nicht die Laufzeit, sondern der Mangel an InformationenMangel an Informationen ist das ist das ProblemProblem
)()(
OPTALG
sup
99
ÜbersichtÜbersicht ApproximationsalgorithmenApproximationsalgorithmen Online-AlgorithmenOnline-Algorithmen Unit-ClusteringUnit-Clustering
– AlgorithmusAlgorithmus– Untere SchrankeUntere Schranke
Strip-Packing Strip-Packing Scheduling auf einer MaschineScheduling auf einer Maschine
1010
Clustering-ProblemeClustering-Probleme Allgemein: verteile eine Menge Allgemein: verteile eine Menge
von Punkten in Gruppen, damit von Punkten in Gruppen, damit eine Funktion optimiert wirdeine Funktion optimiert wird
Fundamentales ProblemFundamentales Problem Viele Anwendungen:Viele Anwendungen:
– Data miningData mining– Facility location Facility location – ……
1111
Clustering-ProblemeClustering-Probleme k-Zentrenk-Zentren: decke n Punkte mit : decke n Punkte mit
höchstens k Bällen ab, minimiere höchstens k Bällen ab, minimiere Durchmesser des größten BallesDurchmesser des größten Balles
Unit-CoveringUnit-Covering: decke n Punkte mit : decke n Punkte mit Einheitsbällen ab, minimiere Anzahl Einheitsbällen ab, minimiere Anzahl der Bälle (der Bälle (Charikar et al.Charikar et al. [SICOMP 2004][SICOMP 2004] ) )
Beide Probleme sind NP-hart auf Beide Probleme sind NP-hart auf der Ebeneder Ebene
1212
Unit-Unit-ClusteringClustering Chan und Zadeh Chan und Zadeh [WAOA 2006][WAOA 2006] Decke n Punkte mit Bällen abDecke n Punkte mit Bällen ab Jeder Ball hat einen Durchmesser Jeder Ball hat einen Durchmesser
von von höchstenshöchstens 1 1 Minimiere die Anzahl der BälleMinimiere die Anzahl der Bälle Offline: identisch mit Unit-CoveringOffline: identisch mit Unit-Covering Online: Online: PositionPosition von Bällen liegt von Bällen liegt
nicht sofort fest!nicht sofort fest!
1313
Unit-ClusteringUnit-Clustering Wir betrachten nur eine DimensionWir betrachten nur eine Dimension Problem ist äquivalent mit Problem ist äquivalent mit dualen dualen
ProblemProblem: finde größte Teilmenge : finde größte Teilmenge disjunkter Intervallen in einer Menge disjunkter Intervallen in einer Menge von Einheitsintervallenvon Einheitsintervallen
Oder: finde Oder: finde maximale unabhängige maximale unabhängige MengeMenge in Einheitsintervallgraphen in Einheitsintervallgraphen
1414
Definition des Definition des ProblemsProblems Eingaben sind Punkte auf der Eingaben sind Punkte auf der
GeradenGeraden Jeder Punkt sollte Jeder Punkt sollte einemeinem Cluster Cluster
zugewiesen werdenzugewiesen werden Zuweisung kann nicht mehr geändert Zuweisung kann nicht mehr geändert
werdenwerden Ein Cluster hat eine Größe von Ein Cluster hat eine Größe von
höchstens 1höchstens 1 Ziel: minimiere Anzahl der ClusterZiel: minimiere Anzahl der Cluster
1515
Offline Unit ClusteringOffline Unit Clustering Fange links an, definiere ein Fange links an, definiere ein
ClusterCluster Falls noch ein Punkt unbedeckt, Falls noch ein Punkt unbedeckt,
definiere neues Cluster usw.definiere neues Cluster usw. Gibt optimale LösungGibt optimale Lösung
1616
OnlineOnline Unit-Clustering Unit-Clustering Chan und Zadeh [WAOA 2006]:Chan und Zadeh [WAOA 2006]:
– Einfache Algorithmen haben Einfache Algorithmen haben Kompetitivitätsverhältnis 2Kompetitivitätsverhältnis 2
– Randomisierter Algorithmus mit Randomisierter Algorithmus mit 1,8751,875– Untere Schranken:Untere Schranken:
Randomisiert Randomisiert 4/34/3 Deterministisch Deterministisch 3/23/2
Wir verbessern Wir verbessern diesediese Ergebnisse Ergebnisse
1717
OnlineOnline Unit-Clustering Unit-Clustering Unsere Ergebnisse:Unsere Ergebnisse:
– Randomisierter Algorithmus mit Randomisierter Algorithmus mit 1,8751,875
– Untere Schranken:Untere Schranken: Randomisiert Randomisiert 4/34/3 Deterministisch Deterministisch 3/23/2
Deterministischer1,75 ------
---- 3/2---- 1,6
1818
Einfache AlgorithmenEinfache Algorithmen
Wenn neuer Punkt p nicht in ein Wenn neuer Punkt p nicht in ein bereits definiertes Cluster passt:bereits definiertes Cluster passt:
ZentriertZentriert: p ist Mittelpunkt des : p ist Mittelpunkt des neuen Clustersneuen Clusters
GridGrid: Alle Cluster sind von der : Alle Cluster sind von der Form [i, i+1)Form [i, i+1)
GreedyGreedy: definiere neues Cluster: definiere neues Cluster
1919
Untere SchrankenUntere Schranken ZentriertZentriert::
Diese untere Schranke Diese untere Schranke funktioniert auch für funktioniert auch für GridGrid (Punkte (Punkte sind 1/2, 3/2, 5/2,…)sind 1/2, 3/2, 5/2,…)
2020
Untere SchrankenUntere Schranken GreedyGreedy::
2121
VerbesserungVerbesserung Wie kommt man unter 2?Wie kommt man unter 2? Chan und Zadeh benutzen Chan und Zadeh benutzen
RandomisierungRandomisierung Geht es auch ohne?Geht es auch ohne? Die untere Schranke für Greedy Die untere Schranke für Greedy
zeigt, dass diese Situation zeigt, dass diese Situation schlecht ist:schlecht ist:
2222
Paare von ClusternPaare von Clustern
Wir vermeiden diese Lage, damit Wir vermeiden diese Lage, damit wir Cluster wir Cluster zusammenschmiedenzusammenschmieden falls möglichfalls möglich
- Mindestens ein optimales Cluster muss ganz im Paar erhalten sein
- Beide Cluster haben jetzt Größe 1
2323
AnalyseAnalyse Höchstens an Höchstens an einereiner Seite von einem Seite von einem
Paar kann ein optimales Cluster Paar kann ein optimales Cluster herausstehenherausstehen
Punkt in der Mitte muss bedeckt Punkt in der Mitte muss bedeckt sein!sein!
OPT 1OPT 2
2424
AnalyseAnalyse Eine Eine GruppeGruppe ist eine Serie von ist eine Serie von
Online-Clustern Online-Clustern verbundenverbunden durch durch Offline-ClusternOffline-Clustern
2525
AnalyseAnalyse Jedes Jedes PaarPaar ist das rechte oder das ist das rechte oder das
linke Ende einer Gruppelinke Ende einer Gruppe Auf jede Gruppe ist das Auf jede Gruppe ist das
Kompetitivi-tätsverhältnis Kompetitivi-tätsverhältnis höchstens höchstens 7/47/4
2626
Untere Schranke: 1,6Untere Schranke: 1,6
Sonst Kompetitivitätsverhältnis25/3 Kompetitivitätsverhältnis
X
2727
Untere Schranke: 1,6Untere Schranke: 1,6
Kompetitivitätsverhältnis5/3
2828
Untere Schranke: 1,6Untere Schranke: 1,6
OPT = 4Sonst Kompetitivitätsverhältnis7/4
OPT = 5 Kompetitivitätsverhältnis 8/5
2929
Zusammenfassung Zusammenfassung Unit- ClusteringUnit- Clustering 1,751,75-kompetitiver Algorithmus-kompetitiver Algorithmus Untere Schranke Untere Schranke 1,61,6 Randomisierte untere Schranke Randomisierte untere Schranke 3/23/2 Geht es noch besser? Vielleicht mit Geht es noch besser? Vielleicht mit
Randomisierung?Randomisierung? Vermutung: echte Vermutung: echte
(deterministische) Schranke ist (deterministische) Schranke ist 5/35/3..
3030
ÜbersichtÜbersicht ApproximationsalgorithmenApproximationsalgorithmen Online algorithmenOnline algorithmen Unit ClusteringUnit Clustering Strip-PackingStrip-Packing
– 3/2 – Approximation 3/2 – Approximation [Epstein, vS, [Epstein, vS, WAOA2004WAOA2004]]
– APTAS APTAS [Jansen, vS, [Jansen, vS, STOC2005STOC2005]] Scheduling auf einer MaschineScheduling auf einer Maschine
3131
Asymptotisches Asymptotisches LeistungsverhältnisLeistungsverhältnis Leistungsmaß für Bin- und Strip-Leistungsmaß für Bin- und Strip-
Packing-AlgorithmenPacking-Algorithmen Idee: vergleiche Anzahl der benutzten Idee: vergleiche Anzahl der benutzten
Behälter zur optimalen Anzahl, für Behälter zur optimalen Anzahl, für große Eingabengroße Eingaben
Worst-case LeistungsgarantieWorst-case Leistungsgarantie
)()(
OPTALG
sup
nOPTRn
A )(suplim
3232
Strip-PackingStrip-Packing Packe Rechtecke auf einen Packe Rechtecke auf einen
StripStrip Nur orthogonale PackungenNur orthogonale Packungen Keine ÜberschneidungenKeine Überschneidungen Ziel: minimiere max. HöheZiel: minimiere max. Höhe Kenyon und Rémila Kenyon und Rémila [FOCS’96, [FOCS’96,
Math OR 2000]Math OR 2000] geben AFPTAS geben AFPTAS
3333
DrehungeDrehungenn Jetzt nehmen wir an, dass Objekte Jetzt nehmen wir an, dass Objekte
über 90 Grad gedreht werden über 90 Grad gedreht werden könnenkönnen
Wie können wir sie effizient Wie können wir sie effizient packen?packen?
Für jedes Objekt müssen wir eine Für jedes Objekt müssen wir eine Orientierung bestimmenOrientierung bestimmen
Viele Möglichkeiten...Viele Möglichkeiten...
3434
Drehbare Objekte (2-d)Drehbare Objekte (2-d) Wir können auswählen, welche Wir können auswählen, welche
Dimension vertikal gepackt wirdDimension vertikal gepackt wird Objekt Objekt ii wird notiert mit wird notiert mit Höhe und Breite sind Zahlen Höhe und Breite sind Zahlen
zwischen 0 und 1zwischen 0 und 1
iiii hwhw ),,(
3535
Eine einfache 3/2-Eine einfache 3/2-approximation approximation [EvS, WAOA [EvS, WAOA 2004]2004]
Algorithmus:• Stapele große ObjekteAlgorithmus:• 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
)2/1( iw
)3/1( iw1h
3636
Die Approximierung Die Approximierung verbessernverbessern Wie können wir unter 3/2 geraten?Wie können wir unter 3/2 geraten? Der einfache Algorithmus hat nur Der einfache Algorithmus hat nur
die Objekte > ½ optimal gepacktdie Objekte > ½ optimal gepackt Wir werden jetzt mehr Objekte Wir werden jetzt mehr Objekte
optimal packen müssenoptimal packen müssen Z.B., wie finden wir die optimale Z.B., wie finden wir die optimale
Packung für Objekte breiter als 1/3?Packung für Objekte breiter als 1/3?
3737
Ein einfacher FallEin einfacher Fall Es gibt Es gibt aa unterschiedliche Höhen und unterschiedliche Höhen und
bb unterschiedliche Breiten unterschiedliche Breiten Deshalb höchstens Deshalb höchstens abab Gruppen Gruppen In einer Gruppe der Größe In einer Gruppe der Größe gibt es gibt es
Möglichkeiten für Drehungen: Möglichkeiten für Drehungen:
drehe drehe der Objekte der Objekte Insgesamt MöglichkeitenInsgesamt Möglichkeiten
ab
i in1 )1(
in1in
in,,0
3838
Ein einfacher FallEin einfacher Fall Für jede mögliche Orientierung Für jede mögliche Orientierung
können wir Kenyon & Rémila können wir Kenyon & Rémila benutzen für eine gute benutzen für eine gute ApproximierungApproximierung
Weil , haben wirWeil , haben wir
Polynomiell in Polynomiell in nn für konstante für konstante aa and and bb
ab
i i nn1
abab
i i abnn
1)1(1
3939
Wie erreichen wir Wie erreichen wir diesen Fall?diesen Fall? Wir müssen vorsichtig sein beim Wir müssen vorsichtig sein beim
AufrundenAufrunden Kann eine große Auswirkung habenKann eine große Auswirkung haben BeispielBeispiel: viele Objekte mit Breite : viele Objekte mit Breite
gerade unter ½gerade unter ½ Bei Aufrundung auf einen Wert Bei Aufrundung auf einen Wert
größer als ½ passen sie nicht mehr größer als ½ passen sie nicht mehr nebeneinandernebeneinander
4040
Lösung von Kenyon & Lösung von Kenyon & RémilaRémila Wenn Drehungen nicht erlaubt sind, Wenn Drehungen nicht erlaubt sind,
können wir die können wir die BreitenBreiten aufrunden aufrunden Höhen bleiben ungeändert und wir Höhen bleiben ungeändert und wir
machen Gruppen gleicher Höhemachen Gruppen gleicher Höhe Eine Eine horizontalehorizontale Aufrundung kann so Aufrundung kann so
zu einer zu einer vertikalenvertikalen Anpassung der Anpassung der Eingabe führenEingabe führen
4141
Fraktionales Strip-Fraktionales Strip-PackingPacking Erlaube horizontale Schnitte durch Erlaube horizontale Schnitte durch
die Rechteckedie Rechtecke Das macht das Problem einfacherDas macht das Problem einfacher Ein fraktionales Strip-Packing kann Ein fraktionales Strip-Packing kann
in ein normales Packing verwandelt in ein normales Packing verwandelt werdenwerden
Lösungswert ändert sich “nicht viel” Lösungswert ändert sich “nicht viel” und ist einfacher zu finden (LP)und ist einfacher zu finden (LP)
4242
Auf- und abrundenAuf- und abrunden
4343
Auf- und abrundenAuf- und abrunden Der Unterschied zwischen L und R Der Unterschied zwischen L und R
ist ein Stapel der Breite 1 und ist ein Stapel der Breite 1 und Höhe Höhe h/mh/m
Dies trägt Dies trägt h/mh/m extra zum extra zum Lösungswert beiLösungswert bei
Wir können dies beliebig klein Wir können dies beliebig klein machen indem wir machen indem wir mm größer größer machenmachen
4444
Probleme mit Probleme mit DrehungenDrehungen Wir möchten aufrunden und Wir möchten aufrunden und
gruppieren und K&R benutzengruppieren und K&R benutzen Jetzt wird in 2 Dimensionen gerundetJetzt wird in 2 Dimensionen gerundet Bedingungen:Bedingungen:
– ““Höhen” sollten nicht zu weit von Höhen” sollten nicht zu weit von Originalhöhen entfernt seinOriginalhöhen entfernt sein
– Lösungswert sollte nicht zu weit entfernt Lösungswert sollte nicht zu weit entfernt vom ursprünglichen Lösungswert seinvom ursprünglichen Lösungswert sein
4545
Probleme mit Probleme mit DrehungenDrehungen Wir können nicht einfach das Wir können nicht einfach das
Gruppieren und Aufrunden von K&R Gruppieren und Aufrunden von K&R benutzen, weil manche Dimensionen benutzen, weil manche Dimensionen sich stark ändern können sich stark ändern können
Geometrisches Aufrunden geht auch Geometrisches Aufrunden geht auch nicht weil der Lösungswert sich nicht weil der Lösungswert sich vielleicht zuviel ändertvielleicht zuviel ändert
Lösung: kombiniere beide Lösung: kombiniere beide Methoden!Methoden!
4646
Die AufrundungDie Aufrundung Mache eine Liste die jedes Objekt Mache eine Liste die jedes Objekt
zweimal enthält (einmal quer)zweimal enthält (einmal quer) Mache einen Stapel wie vorherMache einen Stapel wie vorher Definiere GrenzrechteckeDefiniere Grenzrechtecke Runde jede “Breite” auf auf Runde jede “Breite” auf auf
Minimum von der Breite derMinimum von der Breite der– Ersten Grenzrechtecke darunterErsten Grenzrechtecke darunter– Ersten Potenz von über orig. BreiteErsten Potenz von über orig. Breite
11
4747
DiskussionDiskussion So finden wir eine Lösung die So finden wir eine Lösung die
beliebig nah an der optimalen beliebig nah an der optimalen Lösung istLösung ist
Den Beweis werde ich Den Beweis werde ich überspringen…überspringen…
4848
ÜbersichtÜbersicht ApproximationsalgorithmenApproximationsalgorithmen Online-AlgorithmenOnline-Algorithmen Unit ClusteringUnit Clustering Strip-PackingStrip-Packing Scheduling auf einer MaschineScheduling auf einer Maschine
4949
Das ProblemDas Problem Jobs kommen online anJobs kommen online an Job Job JJjj hat Freigabezeit hat Freigabezeit rrjj, Größe , Größe ppjj Die Maschine kann nur einen Job Die Maschine kann nur einen Job
gleichzeitig ausführengleichzeitig ausführen Keine Informationen über die ZukunftKeine Informationen über die Zukunft CCjj = Zeitpunkt an dem = Zeitpunkt an dem JJjj beendet wird beendet wirdZiel: minimiere Ziel: minimiere Summe der CSumme der Cjj
5050
Bekannte ErgebnisseBekannte Ergebnisse Deterministisch: R = 2Deterministisch: R = 2
– Obere Schranke Obere Schranke [Phillips, Stein & Wein 95, [Phillips, Stein & Wein 95, Stougie 95, Hoogeveen & Vestjens 96]Stougie 95, Hoogeveen & Vestjens 96]
– Untere Schranke Untere Schranke [Hoogeveen & Vestjens [Hoogeveen & Vestjens 96]96]
Randomisiert: R = e/(e-1) = 1,58…Randomisiert: R = e/(e-1) = 1,58…– Obere Schranke Obere Schranke [Chekuri, Motwani, [Chekuri, Motwani,
Natarajan & Stein 97]Natarajan & Stein 97]– Untere Schranke Untere Schranke [Vestjens 97][Vestjens 97]
5151
NeustartsNeustarts Es ist erlaubt, einen Job abzubrechenEs ist erlaubt, einen Job abzubrechen Er sollte dann wieder Er sollte dann wieder vom Anfangvom Anfang
ausgeführt werdenausgeführt werden Macht nur Sinn im Online-ProblemMacht nur Sinn im Online-Problem ((PreemptionsPreemptions: SRPT hat Kompetitivi-: SRPT hat Kompetitivi-
tätsverhältnis 1)tätsverhältnis 1) Untere Schranke 1,211 Untere Schranke 1,211 [Epstein, vS 01][Epstein, vS 01]
5252
NeustartsNeustarts Jobs „sollten“ sortiert nach Größe Jobs „sollten“ sortiert nach Größe
ausgeführt werden ausgeführt werden (das ist optimal (das ist optimal wenn alle Jobs Freigabezeit 0 haben)wenn alle Jobs Freigabezeit 0 haben)
Falls es Jobs gibt, führen wir Falls es Jobs gibt, führen wir immer den Kleinsten ausimmer den Kleinsten aus
Frage:Frage: wann sollten wir einen Job J wann sollten wir einen Job J abbrechen für einen neuen Job J´ ?abbrechen für einen neuen Job J´ ?
5353
Wann Job J abbrechen?Wann Job J abbrechen?
Verschiedene Parameter könnten Verschiedene Parameter könnten betrachtet werden:betrachtet werden:
Aktuelle Fertigstellungszeit von JAktuelle 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…
5454
RSPT (restarting SPT)RSPT (restarting SPT) Führt Jobs aus Führt Jobs aus wie SPTwie SPT, aber , aber
bricht manchmal Jobs abbricht manchmal Jobs ab J hat Größe x, fängt an am J hat Größe x, fängt an am
Zeitpunkt sZeitpunkt s J´ hat Größe w, hat Freigabezeit rJ´ hat Größe w, hat Freigabezeit r RSPT bricht J ab und fängt J´ an RSPT bricht J ab und fängt J´ an
fallsfalls 32
xswr
s+xr r+w
2(s+x)/3
0 s
5555
RSPTRSPT Dieser Algorithmus ist sehr einfachDieser Algorithmus ist sehr einfach Wieso die Zahl Wieso die Zahl 2/32/3?? Betrachten wir RSPT(a) mit Betrachten wir RSPT(a) mit
AbbruchbedingungAbbruchbedingung
Kann nicht besser sein als 1,48Kann nicht besser sein als 1,48
axswr
6060
AnalyseAnalyse KrediteKredite: „um wieviel darf ein Job : „um wieviel darf ein Job
noch verzögert werden“noch verzögert werden“ InvariantInvariant: alle Jobs haben : alle Jobs haben
genügend Kredit (mindestens 0)genügend Kredit (mindestens 0) EreignisEreignis: RSPT fängt einen Job an: RSPT fängt einen Job an Klassifiziere Ereignisse nach Klassifiziere Ereignisse nach
Entscheidung von OPTEntscheidung von OPT
6161
Optimale KostenOptimale Kosten Wir führen eine Schätzung Wir führen eine Schätzung
(untere Schranke) s*(J) für die (untere Schranke) s*(J) für die optimale Anfangszeit von Joptimale Anfangszeit von J
Bei jedem Jobanfang wird s*(J) für Bei jedem Jobanfang wird s*(J) für alle Jobs angepasstalle Jobs angepasst
Kredit des neuen Jobs basiert zum Kredit des neuen Jobs basiert zum Teil auf s*(J)Teil auf s*(J)
6262
KrediteKredite IdeeIdee: wenn OPT einen Job am : wenn OPT einen Job am
Zeitpunkt Zeitpunkt tt fertig stellt, „sollte“ RSPT fertig stellt, „sollte“ RSPT diesen Job am Zeitpunkt diesen Job am Zeitpunkt 33t t /2/2 fertig fertig gestellt habengestellt haben– Eigentlich gilt das nur im DurchschnittEigentlich gilt das nur im Durchschnitt
Wenn neuer Job J ankommt, berechne Wenn neuer Job J ankommt, berechne Anfangszeit s(J) in Schedule von RSPT Anfangszeit s(J) in Schedule von RSPT (Annahme: keine weitere Jobs)(Annahme: keine weitere Jobs)
6363
AbbrücheAbbrüche
gibt Kredit anverliert Kredit
0 1 2
0 1 2 3 4
verliert Kredit
6464
AbbrücheAbbrüche Ein neuer Job kann nicht für Ein neuer Job kann nicht für allealle
Jobs zahlen die er vielleicht Jobs zahlen die er vielleicht verzögertverzögert
Deshalb sollten Jobs teilweise für Deshalb sollten Jobs teilweise für Abbrüche von Abbrüche von kleinerenkleineren Jobs Jobs zahlen / Kredit haben:zahlen / Kredit haben:– Weißer Job im ersten BeispielWeißer Job im ersten Beispiel– Brauner Job im zweiten BeispielBrauner Job im zweiten Beispiel
6565
Fertigstellungen: Fertigstellungen: was macht OPT?was macht OPT?
0 1
OPT
Hat mehr Kredit als vorher berechnet!
Haben negativen Kredit
s*(J) wurde zuletzt berechnet als angefangen hat
6666
Fertigstellungen: Fertigstellungen: was macht OPT?was macht OPT?
0 1 2
0 1 2
OPT
Wir benutzen nur: s*(J) ist mindestens 0
6767
KrediteKredite Beispiele zeigen: ein Job sollte zahlenBeispiele zeigen: ein Job sollte zahlen
– für seinen für seinen eigeneneigenen Fertigstellung Fertigstellung– für Abbrüche von Jobs für Abbrüche von Jobs vorvor ihm ihm
Invariante (Idee):Invariante (Idee):– Jeder Job hat genügend Kredit, um für Jeder Job hat genügend Kredit, um für
alle möglichen zukünftigen Abbrüche alle möglichen zukünftigen Abbrüche von von kleinerenkleineren Jobs und für seinen Jobs und für seinen eigeneneigenen Fertigstellung zu zahlen Fertigstellung zu zahlen
6868
BeweisBeweis Für jedes mögliche Ereignis sollten Für jedes mögliche Ereignis sollten
wir zeigen, dass wir Kredite umordnen wir zeigen, dass wir Kredite umordnen können damit die Invariante giltkönnen damit die Invariante gilt
Ereignisse unterscheiden sich durchEreignisse unterscheiden sich durch– AnfangszeitAnfangszeit des aktuellen Jobs (im des aktuellen Jobs (im
Verhältnis zu seiner Größe)Verhältnis zu seiner Größe)– Zeitpunkt an dem Zeitpunkt an dem OPTOPT diesen Job diesen Job
anfängtanfängt– welchenwelchen neuen Job OPT zuerst anfängt neuen Job OPT zuerst anfängt
6969
BeweisBeweis Der Rest ist Algebra.Der Rest ist Algebra.
7070
ZusammenfassungZusammenfassung Eleganter Algorithmus mit guter Eleganter Algorithmus mit guter
LeistungLeistung Lücke zwischen unterer und oberer Lücke zwischen unterer und oberer
Schranke kleiner als Schranke kleiner als 0,30,3 Zur Verbesserung werden wir einen Zur Verbesserung werden wir einen
komplizierteren Algorithmus komplizierteren Algorithmus brauchenbrauchen
Neustarts effizient benutzen ist Neustarts effizient benutzen ist nicht trivialnicht trivial
7171
Danke schön!Danke schön!