Gierige Algorithmen Marcel Henninger. Hallo Welt -Seminar - LS 2 Gierige Algorithmen

Ähnliche Dokumente
Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene

Informatik II Greedy-Algorithmen

Algorithmen und Datenstrukturen 2

Informatik II Greedy-Algorithmen

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Datenstrukturen & Algorithmen

ADS: Algorithmen und Datenstrukturen 2

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

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

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

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei

Dynamische Programmierung

Gierige Algorithmen Interval Scheduling

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Durchschnitt von Matroiden

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

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

Approximationsklassen für Optimierungsprobleme

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Informatik II, SS 2014

Algorithmen II Vorlesung am

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Vorlesung 2 KÜRZESTE WEGE

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Dynamisches Programmieren - Problemstruktur

Approximationsalgorithmen

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Von Labyrinthen zu. Algorithmen

Algorithmen und Datenstrukturen

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Übungsblatt 2 - Lösung

Effiziente Algorithmen

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Traveling Salesman

4 Greedy-Algorithmen (gierige Algorithmen)

Binäre lineare Optimierung mit K*BMDs p.1/42

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Algorithmen und Datenstrukturen ITS(B)-B 2016

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Dynamische Programmierung

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

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

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Einstieg in die Informatik mit Java

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Lineare Programmierung (2)

Approximationsalgorithmen

Geometrische Algorithmen

2. Optimierungsprobleme 6

Effiziente Algorithmen Übung 2

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren

Neuronalen Netzen. Jens Lehmann. 1. März Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden

Algorithmen in Zellularautomaten

Einführung in die Informatik 1

3. Übungsblatt zu Algorithmen I im SoSe 2017

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Programmierung mit C Algorithmen

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

11. Übung zu Algorithmen I 6. Juli 2016

Algorithmen für schwierige Probleme

Algorithmen und Datenstrukturen

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen

Flüsse, Schnitte, Bipartite Graphen II

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/ / 206

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Dynamische Programmierung 1. April DP Aufgabensammlung

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Suchen und Sortieren

Hamiltonsche Graphen (2. Teil)

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester

Vervollständigung Lateinischer Quadrate

13. Bäume: effektives Suchen und Sortieren

Codierung, Codes (variabler Länge)

(Lineare) stochastische Optimierung

Die dynamische Programmierung 1 / 51

Minimal spannende Bäume

7. Sortieren Lernziele. 7. Sortieren

Kostenmaße. F3 03/04 p.188/395

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Euklidische Distanzmatrizen. Andrei Grecu

Algorithmen und Datenstrukturen

2. Algorithmenbegriff

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)

Transkript:

Gierige Algorithmen Hallo Hallo Welt! Welt! für für Fortgeschrittene Fortgeschrittene 31.05.2017 Marcel Henninger 1

Inhalt Einführung Allgemeines Greedy-Choice-Property Greedy vs Dynamic Vor- und Nachteile von GA Beispiele Knapsack Probleme Münzwecheslproblem LKW-Fahrer-Problem Scheduling Load balancing Quellen 2

Allgemeines Algorithmen Algorithmen zur zur Lösung Lösung von von Optimierungsproblemen Optimierungsproblemen Vorgehen: Vorgehen: 1: 1: Optimierungsproblem Optimierungsproblem umformen, umformen, sodass sodass man man immer immer eine eine gierige gierige Entscheidung Entscheidung treffen treffen kann kann und und nur nur noch noch ein ein Teilproblem Teilproblem übrig übrig hat hat 2: 2: Gierige Gierige Entscheidung Entscheidung treffen, treffen, also also das das lokale lokale Optimum Optimum wählen wählen 3: 3: Mit Mit Teilproblem Teilproblem weitermachen weitermachen 4: 4: Wenn Wenn kleinstes kleinstes Teilproblem Teilproblem noch noch nicht nicht erreicht erreicht => => GOTO GOTO 22 5: 5: Teillösungen Teillösungen zu zu einer einer Gesamtlösung Gesamtlösung zusammensetzen, zusammensetzen, die die dann dann (hoffentlich) (hoffentlich) ein ein globales globales Optimum Optimum ist ist 3

Greedy-Choice-Property Global Global optimale optimale Lösung Lösung wird wird erreicht, erreicht, indem indem man man schrittweise schrittweise immer immer das das lokale lokale Optimum Optimum wählt wählt Die Die Teilprobleme, Teilprobleme, welche welche dabei dabei entstehen, entstehen, werden werden mit mit jedem jedem Schritt Schritt kleiner kleiner Die Die Ergebnisse Ergebnisse der der Unterprobleme Unterprobleme werden werden dabei dabei weder weder rückgängig rückgängig gemacht, gemacht, noch noch beeinflussen beeinflussen sie sie weitere weitere Entscheidungen Entscheidungen Optimal Substructure Die Die optimale optimale Lösung Lösung eines eines Problems Problems liegt liegt in in der der lokalen lokalen Lösung Lösung eines eines Teilproblems Teilproblems 4

Matroids Matroids Matroids sind sind eine eine Möglichkeit, Möglichkeit, um um die die Richtigkeit Richtigkeit von von gierigen gierigen Algorithmen Algorithmen zu zu beweisen beweisen Wenn Wenn M M ein ein Matroid Matroid ist, ist, dann dann fuktioniert fuktioniert ein ein gieriger gieriger Algorithmus Algorithmus unabhängig unabhängig von von der der Kostenfunktion Kostenfunktion Definition: Definition: Ein Ein Matroid Matroid M=(X, M=(X, J) J) ist ist ein ein Set Set X X und und ein ein Independent Independent Set Set JJ über über X X Dabei Dabei gelten gelten folgende folgende Beschränkungen: Beschränkungen: 1. X ist ein endliches Set 2. J 3. Wenn I J und B I, dann B J 4.Wenn A, B J und A < B, dann existieren x B A, sodass A {x} J 5

Gierige Algorithmen vs Dynamische Programmierung Greedy DP Vergleichsweise Intuitiv Oft aufwändige Überlegungen nötig top-down bottom-up Meistens iterativ Oft rekursiv Lokale Optima werden schrittweise ohne Zwischenergebnisse erreicht Teilprobleme werden gelöst, Zwischenergebnisse werden mitbenutzt Kein zusätzlicher Speicherbedarf Zusätzlicher Speicherbedarf 6

Vor-/Nachteile von GA Vorteile Intuitiv Schnell (oft O(n log(n)) durch Sortierung) Nachteile Tatsächlicher Beweis über Korrektheit oft schwer Funktioniert nicht immer Oft kann nur ein loakales Optimum erreicht werden 7

Beispiele 8

(0-1) Knapsack vs Fractional Knapsack Allgemeines Allgemeines Knapsack Knapsack Problem: Problem: Man Man packt packt einen einen Koffer, Koffer, ein ein Dieb Dieb raubt raubt einen einen Laden Laden aus aus o.ä. o.ä. Dabei Dabei hat hat man man verschiedene verschiedene Gegenstände, Gegenstände, die die man man einpacken einpacken kann kann Jeder Jeder Gegenstand Gegenstand hat hat ein ein Gewicht Gewicht und und eine eine Wertigkeit Wertigkeit und und man man kann kann nur nur ein ein bestimmtes bestimmtes Gewicht Gewicht mitnehmen mitnehmen Ziel: Ziel: Möglichst Möglichst hohen hohen Wert Wert einpacken einpacken (0-1) (0-1) Knapsack: Knapsack: Man Man kann kann sich sich nur nur binär binär entscheiden, entscheiden, also also man man nimmt nimmt ein ein Gegenstand Gegenstand komplett komplett mit mit oder oder gar gar nicht nicht ( Goldbarren ) ( Goldbarren ) Fractional Fractional Knapsack: Knapsack: Man Man kann kann beliebige beliebige Bruchstücke Bruchstücke der der Gegenstände Gegenstände mitnehmen mitnehmen ( Goldstaub ) ( Goldstaub ) 9

Fractional Knapsack Tasche, Tasche, die die 50 50 gg fassen fassen kann kann 33 Gegenstände Gegenstände mit mit unterschiedlichen unterschiedlichen Gewichten Gewichten und und Wertigkeiten Wertigkeiten 50 30 20 10 60 80 150 10

Fractional Knapsack Jedem Jedem Gegenstand Gegenstand einen einen Wert Wert mit mit /g /g geben geben 50 30 20 10 60 /10g= 6 /g 80 /20g= 4 /g 150 /30g= 5 /g 11

Fractional Knapsack Gegenstände Gegenstände nach nach Wertigkeit Wertigkeit sortieren sortieren 50 30 20 10 60 /10g= 6 /g 150 /30g= 5 /g 80 /20g= 4 /g 12

Fractional Knapsack In In jedem jedem weiteren weiteren Schritt Schritt immer immer den den übrigen übrigen höchstwertigen höchstwertigen Gegenstand Gegenstand einpacken, einpacken, solange solange noch noch Platz Platz ist ist 40 30 20 10 150 /30g= 5 /g 80 /20g= 4 /g 60 13

Fractional Knapsack 10 30 20 10 80 /20g= 4 /g 210 14

Fractional Knapsack Beim Beim letzten letzten Gegenstand Gegenstand passt passt nicht nicht mehr mehr der der ganze ganze Gegenstand Gegenstand rein=> rein=> man man packt packt noch noch so so viel viel rein, rein, damit damit die die Tasche Tasche voll voll ist ist Globales Globales Optimum Optimum gefunden gefunden 10 30 10 10 40 250 15

(0-1) Knapsack Hier Hier darf darf man man nun nun nur nur komplette komplette Gegenstände Gegenstände einpacken einpacken Klappt Klappt der der gierige gierige Ansatz Ansatz immer immer noch? noch? 50 30 20 10 60 /10g= 6 /g 150 /30g= 5 /g 80 /20g= 4 /g 16

(0-1) Knapsack 40 30 20 10 150 /30g= 5 /g 80 /20g= 4 /g 60 17

(0-1) Knapsack 10 30 20 10 80 210 18

(0-1) Knapsack Optimal: Greedy: 10 20 30 Der Der gierige gierige Algorithmus Algorithmus führt führt hier hier offensichtlich offensichtlich zu zu keinem keinem globalem globalem Optimum Optimum Lösung Lösung muss muss über über DP DP gesucht gesucht werden. werden. 30 20 10 230 80 210 19

Münzwechselproblem Problemstellung: Problemstellung: Ein Ein bestimmter bestimmter Betrag Betrag soll soll ausgezahlt ausgezahlt werden werden Es Es sind sind beliebig beliebig viele viele Münzen Münzen einer einer Währung Währung gegeben gegeben z.b. z.b. : : 2, 2, 1, 1, Man Man soll soll nun nun die die minimale minimale Anzahl Anzahl von von Münzen Münzen finden, finden, um um den den Betrag Betrag auszugeben auszugeben z.b.: z.b.: 2,81 2,81 20

Münzwechselproblem Gieriger Gieriger Ansatz: Ansatz: Cashier s Cashier s Algorithmus: Algorithmus: solange solange Restbetrag>0: Restbetrag>0: wähle wähle den den größten größten Münzewert, Münzewert, die die noch noch in in den den Restbetrag Restbetrag passt. passt. füge füge die die Münze Münze der der Auswahl Auswahl hinzu. hinzu. ziehe ziehe den den Wert Wert vom vom Restbetrag Restbetrag ab. ab. Gib Gib Sammlung Sammlung aus. aus. Restbetrag: 1,36 0,36 0,16 0,06 0,01 0,00 z.b.: 1,36 21

Münzwechselproblem Funktioniert Funktioniert der der gierige gierige Ansatz Ansatz in in allen allen Fällen? Fällen? Nein. Nein. Bekanntestes Bekanntestes Beispiel: Beispiel: US-Briefmarkensystem US-Briefmarkensystem mit mit den den Einheiten: Einheiten: 1, 1, 10, 10, 21 21,34,,34, 70, 70, 100, 100, z.b.: z.b.: 140=100+34+1+1+1+1+1+1 140=100+34+1+1+1+1+1+1 (richtig (richtig wäre wäre 140=70+70) 140=70+70) Noch Noch schwerwiegender: schwerwiegender: der der gierige gierige Algorithmus Algorithmus kann kann auch auch zu zu gar gar keiner keiner Lösung Lösung kommen: kommen: Fiktive Fiktive Währung:5,8,12 Währung:5,8,12 Greedy: Greedy: 18=12+5+??? 18=12+5+??? Optimal=8+5+5 Optimal=8+5+5 22

Münzwechselproblem Erklärung: Erklärung: Ein Ein Münzsystem Münzsystem kann kann für für einen einen GA GA benutzt benutzt werden, werden, wenn wenn es es kanonisch kanonisch ist. ist. Was Was dann dann erfüllt erfüllt ist, ist, wenn wenn GRD(x) = OPT(x) GRD(x) = OPT(x) gilt gilt für für alle. alle. ( GRD(x) ( GRD(x) ist ist die die Menge Menge der der Münzen Münzen des des gierigen gierigen Algorithmus, Algorithmus, OPT(x) OPT(x) ist ist die die optimalen optimalen Lösung) Lösung) Der Der Gegenbeweis Gegenbeweis ist ist bei bei nicht nicht funktionierenden funktionierenden Systemen Systemen meist meist einfacher: einfacher: z.b. z.b. über über Matroids Matroids bei bei dem dem Briefmarkenbeispiel: Briefmarkenbeispiel: M=(S,J) M=(S,J) S=alle S=alle möglichen möglichen Briefmarkenwerte Briefmarkenwerte JJ enthält enthält alle alle Untermengen Untermengen deren deren Wert Wert 140 140 ist ist Es Es muss muss eine eine Menge Menge JJ geben, geben, zu zu der der nichts nichts mehr mehr hinzugefügt hinzugefügt werden werden kann kann Menge Menge S={1, S={1, 10, 10, 21 21,34,,34, 70, 70, 100,..}, 100,..}, Untermengen Untermengen A={100], A={100], B={70,70}. B={70,70}. A < B A < B es es existiert existiert x=b\a, x=b\a, sodass sodass A AU U xx in in JJ ist ist Also Also sollte sollte {100,70} {100,70} in in JJ sein, sein, aber aber 100+70>140 100+70>140 => => Widerspruch Widerspruch Also Also M M ist ist kein kein Matroid Matroid und und der der gierige gierige Ansatz Ansatz funktioniert funktioniert nicht nicht 23

LKW-Fahrer-Problem Problemstellung: Problemstellung: LKW LKW will will von von A A nach nach B B mit mit möglichst möglichst wenigen wenigen Tankstellenstopps Tankstellenstopps unterwegs unterwegs Gegeben: Gegeben: Strecke Strecke mit mit fester fester Länge Länge Reichweite Reichweite des des LKWs LKWs bei bei vollem vollem Tank Tank (Reichweite (Reichweite min. min. so so groß groß wie wie der der größte größte Abstand Abstand zwischen zwischen 22 Tankstellen) Tankstellen) Liste Liste der der Tankstellen Tankstellen auf auf dem dem Weg Weg Gesucht: Gesucht: Liste Liste der der Tankstellen, Tankstellen, damit damit er er möglichst möglichst selten selten tanken tanken muss muss 24

LKW-Fahrer-Problem Pseudocode: Pseudocode: tankstellenlist tankstellenlist wird wird als als verkette verkette Liste Liste angenommen. angenommen. sort(list) sort(list) sortiert sortiert die die Liste Liste aufsteigend. aufsteigend. 1: 1: tankstellenlist tankstellenlist == sort(tankstellenlist); sort(tankstellenlist); 2: 2: tankstelle tankstelle == tankstellenlist[0]; tankstellenlist[0]; 3: 3: strecke strecke == reichweite; reichweite; 4: 4: while while strecke<ziel: strecke<ziel: 5: 5: while while tankstellenlist.next.km tankstellenlist.next.km strecke: strecke: 6: tankstelle 6: tankstelle == tankstellenlist.next; tankstellenlist.next; 7: 7: result result += += tankstelle; tankstelle; 8: 8: strecke strecke == tankstelle.km+reichweite; tankstelle.km+reichweite; 9: 9: return return result; result; 25

Interval scheduling Problemstellung: Problemstellung: Man Man möchte möchte seinen seinen Tag Tag planen planen und und hat hat eine eine Liste Liste von vonaktivitäten Aktivitäten von von denen denen man man möglichst möglichst wenige wenige versäumen versäumen will will.. Diese Diese finden finden jedoch jedoch nicht nicht alle alle hintereinander hintereinander statt. statt. Des Des Weiteren Weiteren ist ist es es auch auch nicht nicht möglich möglich sich sich selbst selbst aufzuteilen aufzuteilen und und gleichzeitig gleichzeitig mehrere mehrereaktivitäten Aktivitäten zu zu besuchen. besuchen. Also Also gegeben: gegeben: Aktivitäten Aktivitäten mit mit festen festen StartStart- und und Endzeitpunkt Endzeitpunkt Nur Nur eine eineaktivität Aktivität gleichzeitig gleichzeitig besuchbar besuchbar Aktivitäten Aktivitäten können können sich sich überlappen. überlappen. Gesucht: Gesucht: Maximal MaximalAnzahl Anzahl der deraktivitäten, Aktivitäten, die die besucht besucht werden werden können können 26

Interval scheduling Interval Interval scheduling: scheduling: Mögliche Mögliche Sortierreihenfolgen Sortierreihenfolgen für für gierige gierige Ansätze: Ansätze: Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 27

Interval scheduling Frühester Startzeitpunkt: Kürzeste Dauer: 28

Interval scheduling Wenigste Überlappungen: 29

Interval scheduling Die Die Liste Liste wird wird nach nach steigendem steigendem Endzeitpunkt Endzeitpunkt sortiert sortiert Bei Bei jedem jedem Schritt Schritt wird wird die die Aktivität Aktivität aufgenommen, aufgenommen, die die mit mit keiner keiner vorherigen vorherigen kollidiert kollidiert Frühester Endzeitpunkt: b a c d e g f 30

Interval scheduling Frühester Endzeitpunkt: b b hat früheste Endzeit wird aufgenommen a c d e g f 31

Interval scheduling Frühester Endzeitpunkt: b a und c kollidieren mit b, d frühester Endzeitpunkt ohne Kollision d wird aufgenommen a c d e g f 32

Interval scheduling Frühester Endzeitpunkt: b e und f kollidieren mit g, g frühester Endzeitpunkt ohne Kollision g wird aufgenommen a c d e g f 33

Interval partitioning Problemstellung: Problemstellung: Ein Ein Stundenplan Stundenplan soll soll erstellt erstellt werden. werden. Alle Alle Veranstaltungen Veranstaltungen müssen müssen einen einen Raum Raum zugewiesen zugewiesen bekommen bekommen und und es es können können keine keine zwei zwei Veranstaltungen Veranstaltungen zeitgleich zeitgleich im im selben selben Raum Raum stattfinden. stattfinden. Gegeben: Gegeben: Veranstaltungen Veranstaltungen mit mit festen festen StartStart- und und Endzeitpunkt Endzeitpunkt Jede Jede Veranstaltung Veranstaltung muss muss in in einem einem Raum Raum stattfinden stattfinden Keine Keine zweit zweit Veranstaltungen Veranstaltungen können können gleichzeitig gleichzeitig im im selben selben Raum Raum stattfinden stattfinden Gesucht: Gesucht: Minimale Minimale Anzahl Anzahl von von Räumen, Räumen, die die reserviert reserviert werden werden müssen müssen 34

Interval partitioning Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 35

Interval partitioning Frühester Frühester Startzeitpunkt Startzeitpunkt Frühester Frühester Endzeitpunkt Endzeitpunkt Kürzeste Kürzeste Dauer Dauer Wenigste Wenigste Überlappungen Überlappungen 36

Interval partitioning Frühester Startzeitpunkt: Man Man sortiert sortiert die die Liste Liste nach nach aufsteigendem aufsteigendem Startzeitpunkt Startzeitpunkt und und nimmt nimmt in in jedem jedem Schritt Schritt das das erste erste Element Element aus aus der der Liste Liste a 37

Interval partitioning Frühester Startzeitpunkt: Bei Bei Kollision Kollision von von zwei zwei Ereignissen Ereignissen wird wird einfach einfach ein ein neuer neuer Raum Raum erzeugt/reserviert erzeugt/reserviert b a Kollidierung von a und b zweiter Raum wird erzeugt 38

Interval partitioning Frühester Startzeitpunkt: c b a Kollidierung von c mit a und b dritter Raum wird erzeugt 39

Interval partitioning Frühester Startzeitpunkt: c b a d Raum 1 ist nicht mehr durch a belegt d wird zugewießen 40

Interval partitioning Frühester Startzeitpunkt: c e b a d e kollidiert mit d und b, c belegt Raum 3 nicht mehr e wird Raum 3 zugewießen 41

Interval partitioning Frühester Startzeitpunkt: c e b a d f f kollidiert mit e, aber Raum 1 ist wieder frei f bekommt Raum 3 42

Interval partitioning Frühester Startzeitpunkt: c e b a g d f g kollidiert mit f, Raum 2 wieder frei g bekommt Raum 2 43

Minimize lateness Problemstellung: Problemstellung: Man Man hat hat verschiedene verschiedene Termine, Termine, die die alle alle eine eine gewisse gewisse Dauer Dauer benötigen benötigen und und eine eine Frist, Frist, die die so so wenig wenig wie wie möglich möglich überschritten überschritten werden werden soll. soll. Gegeben: Gegeben: Liste Liste von von Terminen Terminen Alle Alle Termine Termine haben haben ein ein Fristende Fristende Jeder Jeder Termin Termin braucht braucht eine eine bestimmte bestimmte Zeit Zeit 44

Minimize lateness Gesucht: Gesucht: Abarbeitungsreihenfolge Abarbeitungsreihenfolge der der Termine Termine mit mit minimaler minimaler Fristüberschreitung Fristüberschreitung Gierigen Gierigen Ansatz Ansatz suchen suchen 45

Minimize lateness Man Man sortiert sortiert alle alle Jobs Jobs aufsteigend aufsteigend nach nach Fristende Fristende und und arbeitet arbeitet einen einen nach nach dem dem anderen anderen ab. ab. 46

Load balancing Problemstellung: Problemstellung: Man Man hat hat eine eine Gruppe Gruppe von von Besuchern, Besuchern, die die auf auf Wägen Wägen aufgeteilt aufgeteilt werden werden sollen. sollen. Dabei Dabei sind sind die die Wägen Wägen schon schon ziemlich ziemlich brüchig, brüchig, deshalb deshalb können können sie sie nur nur 0,1 0,1 oder oder 22 Besucher Besucher aufnehmen aufnehmen und und die die Besucher Besucher sollen sollen möglichst möglichst gleichmäßig gleichmäßig auf auf die die Zimmer Zimmer aufgeteilt aufgeteilt werden. werden. Gegeben: Gegeben: Anzahl Anzahl der der Schlafzimmer Schlafzimmer C C Anzahl Anzahl der der Besucher Besucher S S (1 S 2C) (1 S 2C) Liste Liste des des Gewichts Gewichts M M der der einzelnen einzelnen Besucher Besucher Gesucht: Gesucht: I= I= Ʃ( X-A ) Ʃ( X-A ) soll soll möglichst möglichst gering gering bleiben bleiben (X=Gewicht (X=Gewicht in in einem einem Wagen, Wagen, A=durchschnittliches A=durchschnittliches Gesamtgewicht Gesamtgewicht in in einem einem Raum) Raum) 47

Load balancing Beispiel: Beispiel: 33 Wägen, Wägen, 44 Menschen Menschen mit mit Gewichten Gewichten (7,2,1,5) (7,2,1,5) A A wäre wäre hier hier 55 (=(5+2+1+7)/3) (=(5+2+1+7)/3) C1 C2 C3 A 7 2 5 1 48

Load balancing II == (7+5)-5) + 2-5 + 1-5 =14 (7+5)-5) + 2-5 + 1-5 =14 (Nicht (Nicht gut) gut) 5 C1 C2 C3 A 7 1 2 49

Load balancing 22 Beobachtunge Beobachtunge kann kann man man jetzt jetzt hier hier machen: machen: 1.: 1.: Die Die Lösung Lösung wird wird niemals niemals schlechter schlechter wenn wenn man man aus aus einem einem Wagen Wagen mit mit 22 Leuten Leuten eine eine Person Person in in einen einen leeren leeren Wagen Wagen schiebt schiebt 2.:Wenn 2.:Wenn S > C S > C müssen müssen S-C S-C Leute Leute in in einen einen Wagen Wagen in in dem dem bereits bereits eine eine Person Person ist ist Das Das ganze ganze Problem Problem kann kann man man nun nun vereinfachen: vereinfachen: Zunächst Zunächst nimmt nimmt man man 2C-S 2C-S dummy dummy Personen Personen in in die die Liste Liste der der Gewichte Gewichte mit mit auf auf Dann Dann sortiert sortiert man man die die Liste Liste aufsteigend aufsteigend Zum Zum Schluss Schluss werden werden immer immer die die Paare Paare von von vorne vorne und und hinten hinten zusammen zusammen in in einen einen Wagen Wagen gepackt. gepackt. (Also (Also der der erste erste und und der der letzte, letzte, der der zweit zweit under under vorletzte,.) vorletzte,.) l 50

Load balancing Nun Nun bei bei unserem unserem Beispiel: Beispiel: Die Die ursprüngliche ursprüngliche Liste Liste M={7,2,1,5} M={7,2,1,5} wird wird mit mit Dummys Dummys befüllt befüllt und und zu zu M={7,2,1,5,0,0} M={7,2,1,5,0,0} (Dummys=D1 (Dummys=D1 und und D2) D2) 7 2 5 1 D1 D2 51

Load balancing Liste Liste wird wird aufsteigend aufsteigend sortiert sortiert D1 D2 1 2 5 7 52

Load balancing Und Und nacheinander nacheinander befüllt befüllt mit mit jeweils jeweils dem dem vordersten vordersten und und letzten letzten Element Element C1 C2 C3 A D1 D2 1 2 5 7 53

Load balancing C1 C2 C3 7 A D1 D2 1 2 5 54

Load balancing C1 C2 7 A 5 D1 D2 1 C3 2 55

Load balancing Damit Damit sind sind wir wir beim beim Endergebnis Endergebnis I= (7+0)-5 + (5+0)-5 + (1+2)-5 =4 I= (7+0)-5 + (5+0)-5 + (1+2)-5 =4 (optimal) (optimal) C1 7 C2 C3 A 5 2 D1 D2 1 56

Fragen? 57

Quellen Introductions Introductions to to Algorithms Algorithms Thomas Thomas H. H. Cormen, Cormen, Charles Charles E. E. Leiserson, Leiserson, Ronald Ronald L. L. Rivest, Rivest, Clifford Clifford Stein Stein http://www.cs.princeton.edu/~wayne/kleinberg-tardos/ http://www.cs.princeton.edu/~wayne/kleinberg-tardos/ Competitive Competitive Programming Programming 33 Steven Steven Halim, Halim, Felix Felix HalimS HalimS https://jeremykun.com/2014/08/26/when-greedy-algorithms-are-perfect-thehttps://jeremykun.com/2014/08/26/when-greedy-algorithms-are-perfect-thematroid/ matroid/ 58

Quellen Bildquellen: Bildquellen: https://pixabay.com/en/money-coins-euro-coins-currency-515058/ https://pixabay.com/en/money-coins-euro-coins-currency-515058/ https://pixabay.com/en/backpack-rucksack-backpacking-29635/ https://pixabay.com/en/backpack-rucksack-backpacking-29635/ https://pixabay.com/en/gas-gasoline-petrol-pump-automobile-158124/ https://pixabay.com/en/gas-gasoline-petrol-pump-automobile-158124/ https://pixabay.com/en/cent-50-euro-coin-currency-europe-400248/ https://pixabay.com/en/cent-50-euro-coin-currency-europe-400248/ https://pixabay.com/en/cent-10-euro-coin-currency-europe-400242/ https://pixabay.com/en/cent-10-euro-coin-currency-europe-400242/ https://pixabay.com/en/euro-cent-currency-money-europe-60531/ https://pixabay.com/en/euro-cent-currency-money-europe-60531/ https://pixabay.com/en/euro-2-coin-currency-europe-money-400250/ https://pixabay.com/en/euro-2-coin-currency-europe-money-400250/ https://pixabay.com/en/cent-20-euro-coin-currency-europe-400247/ https://pixabay.com/en/cent-20-euro-coin-currency-europe-400247/ https://de.wikipedia.org/w/index.php?title=datei:5_cent_coin_eu_serie_1 https://de.wikipedia.org/w/index.php?title=datei:5_cent_coin_eu_serie_1.png&filetimestamp=20120419195807&.png&filetimestamp=20120419195807& https://pixabay.com/en/euro-1-coin-currency-europe-money-400249/ https://pixabay.com/en/euro-1-coin-currency-europe-money-400249/ 59