computational thinking online algorithmen [was ist es wert, die zukunft z u kennen ? ]
DESCRIPTION
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]. Kurt Mehlhorn Konstantinos Panagiotou. Der Weihnachtsmann konnte leider nicht kommen . Bisher…. In allen Problemen, die wir gesehen haben, war die Eingabe immer vollständig spezifiziert Sortieren - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/1.jpg)
Computational Thinking
Online Algorithmen[Was ist es wert, die Zukunft zu kennen?]
Kurt MehlhornKonstantinos Panagiotou
![Page 2: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/2.jpg)
Der Weihnachtsmann konnte leider nicht kommen
![Page 3: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/3.jpg)
Bisher…
• In allen Problemen, die wir gesehen haben, war die Eingabe immer vollständig spezifiziert– Sortieren– Kürzeste Wege, Eulertour, …– Kompression
![Page 4: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/4.jpg)
Aber…
• Manchmal ist die Eingabe nicht im Voraus vollständig bekannt
• Entscheidungen müssen getroffen werden, ohne zu wissen „was kommt“
• Beispiele– Börse– Logistik (zB Post, Amazon)– Aufträge/Anfragen
![Page 5: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/5.jpg)
Online Probleme/Algorithmen
• Daten werden schrittweise verfügbar• Es gibt keine Information über die zukünftigen
Daten• Die Daten müssen sofort verarbeitet werden• Entscheidungen, die getroffen werden, sind
nicht umkehrbar
![Page 6: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/6.jpg)
Diskussion
• Das Modell ist recht restriktiv• In der Praxis sind oft einige Informationen
bekannt– Finanzwelt: Annahmen über Kursverläufe– Logistik: Verteilung der Aufträge
• Solches Wissen kann im Modell berücksichtigt werden
![Page 7: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/7.jpg)
Bin Packing
![Page 8: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/8.jpg)
Beispiel
• Im Bin Packing geht es darum, Gegenstände in Behälter (= Bins) unterzubringen
• Man möchte so wenig Bins wie möglich verwenden
• Schneiden von Teilen• Spedition
![Page 9: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/9.jpg)
Das Problem
• Eine vereinfachte Annahme
• BinPacking– Eingabe: n Objekte mit Größen – Ausgabe: Eine Packung der Objekte in Bins der Größe 1
• Online: die Größen werden eine nach der anderen aufgedeckt, und der Gegenstand muss sofort in einen Bin platziert werden.
![Page 10: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/10.jpg)
Ein einfacher Algorithmus
NextFit• Es gibt immer einen einzigen aktiven Bin• Falls das nächste Element in den aktiven Bin
passt, so wird es dort eingefügt• Sonst wird der Bin geschlossen, und ein neuer,
leerer Bin wird aktiv
• Geschlossene Bins werden nie wieder betrachtet
![Page 11: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/11.jpg)
Beispiel
0.4 0.1 0.9 0.3 0.2
![Page 12: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/12.jpg)
Ein besserer (?) Algorithmus
Warum sollten man Bins schließen?
FirstFit• Falls das nächste Element in irgendeinen Bin
passt, so wird es dort eingefügt• Ansonsten wird es in einen neuen, leeren Bin
eingefügt
![Page 13: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/13.jpg)
Beispiel
0.4 0.1 0.9 0.3 0.2
![Page 14: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/14.jpg)
Wie gut sind diese Algorithmen?
• Vergleich mit einem optimalen Algorithmus• Dieser Algorithmus kennt die Zukunft– Alle Größen sind im Voraus bekannt– Er berechnet die kleinste Anzahl Bins, die benötigt
werden
• Der kompetitive Faktor eines Algorithmus ALG ist definiert als
![Page 15: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/15.jpg)
Beispiele (I)
• Alle Gegenstände sind groß
![Page 16: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/16.jpg)
Beispiele (II)
• 8 Gegenstände mit Größe • 8 mit Größe
![Page 17: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/17.jpg)
Die Reihenfolge ist wichtig!• Angenommen die Elemente kommen
abwechselnd
NextFit
FirstFit
![Page 18: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/18.jpg)
FirstFit kann schlecht sein
• 0.15 + 0.34 + 0.51 = 1• Instanz: 6 x 0.15, 6 x 0.34, 6 x 0.51
![Page 19: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/19.jpg)
Analyse von NextFit
• Nehmen wir an, NextFit hätte b Bins benutzt• Seien die Gewichte der Bins • Dann gilt:
• Außerdem gilt:
• Da aber in jedem Bin Gewicht höchstens 1 passt, folgt daraus
![Page 20: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/20.jpg)
Geht es besser?
• Wie gut kann ein online Algorithmus sein?• Kann man einen Algorithmus angeben, der
immer die beste Lösung konstruiert?
• Nein!
![Page 21: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/21.jpg)
Das Gegenbeispiel (I)
• Angenommen, wir haben Gegenstände mit Gewicht
• Optimale Lösung: Bins• Sei BinPac ein beliebiger Online Algorithmus
• Dann benutzt BinPac bins
• Also gilt:
![Page 22: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/22.jpg)
Das Gegenbeispiel (II)
• Angenommen wir haben Gegenstände – haben Gewicht – haben Gewicht
• Optimale Lösung: Bins
• Was macht BinPac?• Die Bins können aufgefüllt werden.• Die restlichen Gegenstände benötigen nochmal
so viele Bins
![Page 23: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/23.jpg)
ZusammenfassungInstanz I• mit Gewicht
• Optimal = • Bins:
Instanz II• mit Gewicht mit Gewicht • Optimal = • Bins:
![Page 24: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/24.jpg)
Also…
• … kann es keinen online Algorithmus geben, der einen kompetitiven Faktor kleiner als hat!
• FirstFit: der Faktor ist 1.7.• Übrigens: BinPacking ist NP-vollständig!
![Page 25: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/25.jpg)
Scheduling
![Page 26: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/26.jpg)
Scheduling
• Gegeben sind– Maschinen– Jobs
• Beispiele– Fabriken und Aufträge– Aufzüge und Menschen
![Page 27: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/27.jpg)
Problemformulierung• Maschinen• Jobs, mit Bearbeitungszeiten • Problem: minimiere die totale Bearbeitungszeit ( =
der Zeitpunkt, an dem alle Jobs abgearbeitet wurden)
• Online Problem– die Bearbeitungszeiten sind nicht alle zu Beginn bekannt– wird bekannt, sobald der te Job einer Maschine
zugeordnet wurde
![Page 28: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/28.jpg)
Der Algorithmus
• Verteile die Jobs nach folgender Regel:„Job wird der Maschine zugeordnet, die
aktuell die geringste Last hat“
0.4 0.1 0.9 0.3 0.2
![Page 29: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/29.jpg)
Wie gut ist der Algorithmus?
• Wie vorher: vergleiche die Leistung des Algorithmus mit einem optimalen Algorithmus, der alle Bearbeitungszeiten schon zu Beginn kennt
![Page 30: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/30.jpg)
Die obere Schranke
𝑝𝑙
𝑡 𝑙 𝑇
![Page 31: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/31.jpg)
Die untere Schranke
• Kann der Algorithmus wirklich so schlecht werden?
• Ja!• Instanz:– Jobs der Länge 1, ein Job der Länge – Die kurzen Jobs kommen zuerst
![Page 32: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/32.jpg)
Experten
![Page 33: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/33.jpg)
Das Problem
• Wir möchten eine Vorhersage machen– Wird es morgen regnen?– Wird der DAX steigen?
• Es gibt n Experten, die wir befragen können– Ja/Nein Antworten
• Am Ende des Tages erfahren wir, wer Recht hatte
• Wie können wir möglichst viele richtige Vorhersagen machen?
![Page 34: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/34.jpg)
Eine Idee
• Jeder der Experten bekommt ein Gewicht:
– Zu Beginn sind alle Gewichte = 1– Gesamtgewicht =
• Wir fragen alle Experten, und bilden die Summe aller „Nein“-Sager und aller „Ja“-Sager
• Wir wählen die Antwort mit dem größeren Gewicht
![Page 35: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/35.jpg)
Wie lernen wir?
• Am Ende des Tages werden die Gewichte angepasst
• Jeder, der eine falsche Prognose gemacht hat, wird „bestraft“: das Gewicht wird mit multipliziert
• Bei richtigen Prognosen passiert nichts.
![Page 36: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/36.jpg)
Beispiel𝑤1𝑤2𝑤3𝑤4𝑤5
Tag 1Tag 2Tag 3Tag 4
![Page 37: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/37.jpg)
Wie gut ist das?
• Wir vergleichen die Anzahl unserer richtigen Prognosen mit der des besten Experten
• Sei die Anzahl falscher Prognosen des ten Experten nach Tagen
• Sei die Anzahl unserer falscher Prognosen• Was können wir über die Relation dieser ‘s
sagen?
![Page 38: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/38.jpg)
Eine allgemeine Schranke
• Sei das Gesamtgewicht am ten Tag• Dann ist• Angenommen, wir haben am Tag die falsche
Prognose gemacht• Dann ist das Gesamtgewicht der Experten die
falsch prognostiziert haben • Nach der Aktualisierung:
![Page 39: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/39.jpg)
Also…
![Page 40: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/40.jpg)
Andererseits
• Jedesmal wenn ein Experte einen Fehler macht, wird sein Gewicht mit mit multipliziert
• Somit
![Page 41: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/41.jpg)
Zusammenfassung
• Online Probleme– Eingabe wird nach und nach bekannt gemacht– Entscheidungen können nicht rückgängig gemacht
werden• Kompetitiver Faktor
![Page 42: Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft z u kennen ? ]](https://reader030.vdocuments.pub/reader030/viewer/2022032709/568130b8550346895d96d8e2/html5/thumbnails/42.jpg)