Algorithmen Prof Dr Peter Kling Universitt Hamburg Theorie
Algorithmen Prof. Dr. Peter Kling – Universität Hamburg
Theorie Effizienter Algorithmen Arbeitsbereich in der Theoretischen Informatik Peter Kling (Head of Group) Katrin Köster (Team Assistant) Schwerpunkt in Forschung & Lehre Entwicklung & Analyse von Algorithmen Christiane Frede Christoph Damerius Florian Schneider 2
Was ist eigentlich Informatik?
Du studierst doch Informatik, oder? • • „Mein PC startet nicht mehr…“ „Wie geht nochmal XYZ bei Word? “ „Kannst du mein Navi programmieren? “ „Soll ich mir den neuen Aldi PC kaufen? “ 4
“Computer science is not about machines in the same way that astronomy is not about telescopes. There is an essential unity of mathematics and computer science. ” — Michael Fellows (Professor @ University of Bergen) 5
Technologie-Fortschritt = bessere Hardware? • Schaltkreiskomplexität verdoppelt sich alle 2 Jahre Lösung eines Optimierungsproblem 1988 82 Jahre Hardware Faktor 1. 000 Faktor 43. 000 2003 1 Minute Algorithmen Faktor 43. 000 6
- spiegel. de 7
Was ist ein Algorithmus?
Ein Algorithmus ist eine Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Für die perfekten Chocolate Chip Cookies benötigt ihr zunächst einmal zwei Rührschüsseln. In der ersten Schüssel schlagt ihr… https: //madamedessert. de 9
Im Folgenden Ein Algorithmus ist eine Menge von Regeln für ein Verfahren, um aus gewissen Eingaben bestimmte Ausgaben zu berechnen. Dabei muss: 1. Das Verfahren in einem endlichen Text Beschreibbar sein. 2. Jeder Schritt des Verfahrens ausführbar sein. 3. Der Ablauf des Verfahrens jeder Zeit eindeutig definiert sein. 12
Eingabe Algorithmus Ausgabe 13
Eingabe Algorithmus Sortieralgorithmus Ausgabe 14
Fragen rund um Algorithmen
• Was ist ein Algorithmus? ✓ • Welche Probleme können Algorithmen lösen? • Was sind gute Algorithmen? • … 16
Welche Probleme können Algorithmen lösen? https: //xkcd. com 17
Das Halteproblem Eingabe Algorithmus Ausgabe ? ? ? 18
Das Halteproblem • Quellcode von A(n): Eingabe Algorithmus Ausgabe ? ? ? 19
Gibt es einen Algorithmus der das Halteproblem löst? • Angenommen HALT sei ein solcher Algorithmus • konstruiere Algorithmus B wie folgt A B ja A x HALT nein ja/nein Endlosschleife nein Was passiert, wenn wir B mit eigenem Quellcode als Eingabe aufrufen? 20
• Was ist ein Algorithmus? ✓ • Welche Probleme können Algorithmen lösen? • Was sind gute Algorithmen? ✓ (Nicht alle!) • … 21
Was sind gute Algorithmen? • • • Algorithmen müssen korrekt sein Algorithmen müssen schnell sein Algorithmen müssen speichereffizient sein Algorithmen müssen energieeffizient sein … Diese Eigenschaften müssen mathematisch bewiesen werden! 22
Mathematische Beweise? Och nö… Warum nicht einfach ausgiebig testen? • • Vergessen von Randfällen Fehler können sehr selten auftreten… …aber fatale Folgen haben! … 23
Verlust: 475 Millionen USD Antwort Intel Pentium Prozessor (1994): 256 Pentium FDIV Bug 24
Wie schnell sind Algorithmen? Beispiel: Sortieren 17 8 1 99 20 3 12 5 25
Wie schnell sind Algorithmen? Beispiel: Sortieren 8 1 17 20 3 12 5 99 26
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 8 17 3 12 5 20 99 27
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 8 3 12 5 17 20 99 28
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 3 8 5 12 17 20 99 29
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 3 5 Bubblesort 8 12 17 20 99 30
Geht das nicht schneller? 17 8 1 99 20 BLACK MAGIC 1 8 3 12 5 BLACK MAGIC 17 99 3 5 12 20 Merge 31
Mergesort 17 8 1 3 99 20 BLACK Mergesort MAGIC 17 8 17 1 Merge 8 1 3 99 20 8 12 Merge 99 3 5 Mergesort 5 Merge 20 Merge 1 12 Mergesort Merge 17 3 99 20 Mergesort 8 5 BLACK Mergesort MAGIC 1 Mergesort 12 5 12 Merge 17 99 3 5 12 20 Merge 1 3 5 8 12 17 20 99
Und das soll schneller sein? Rekursionsgleichung mit Lösung 33
Mergesort vs Bubblesort 34
Mergesort vs Bubblesort 35
• Was ist ein Algorithmus? ✓ • Welche Probleme können Algorithmen lösen? • Was sind gute Algorithmen? • … ✕ ✓ (Nicht alle!) ✓ Erzähl ich euch in ein paar Jahren, wenn ihr in meiner Vorlesung sitzt! 36
Ein paar algorithmische Puzzles
Das Versammlungsproblem Ziel: Versammle alle Roboter an einem Ort. Strategie 1: Gehe zu einem zufälligen anderen Roboter. Strategie 2: Gehe zum näheren von 2 zufälligen anderen Robotern. 38
Rikudo Etwas einfacher: Rikudo auf der Linie http: //www. rikudo-puzzle. com (mehr oder weniger) 39
Anchored Rectangle Packing Ziel • wähle pro Punkt ein Rechteck… • …mit dem Punkt in der linken unteren Ecke des Rechtecks • Rechtecke müssen im Einheitsquadrat liegen • Rechtecke müssen überschneidungsfrei sein • decke möglichst viel Fläche ab 40
Scheduling
Stellt euch vor ihr seid Google… Eigenschaften der PCs • Geschwindigkeit • Energieverbrauch • … Eigenschaften der Aufträge • Größe • Wert • Priorität • Ankunfszeit • Deadline • … Ziele: • hohe Kundenzufriedenheit • effizienter & profitabler Betrieb Beweisbare Garantien! 42
Beispiel: Makespan Minimierung Ankunftsreihenfolge PC 1 PC 2 PC 3 PC 4 time makespan [Graham; 1966] 43
- Slides: 43