Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Theorie Effizienter Algorithmen Theory of Efficient Algorithms Arbeitsbereich in der Theoretischen Informatik Peter Kling Katrin Köster (Head of Group) (Team Assistant) Schwerpunkt in Forschung & Lehre Entwicklung & Analyse von Algorithmen Christiane Frede Christoph Damerius Florian Schneider 2
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 2003 Faktor 43.000.000 82 Jahre 1 Minute Hardware Algorithmen Faktor 1.000 Faktor 43.000 6
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
( , , , , , , , ) Folge von Zahlen Eingabe ( ! , " , … , # ) Sortieralgo- Algorithmus rithmus Umordnung ! , " , … , # Ausgabe der Eingabefolge, so dass ! ≤ " ≤ ⋯ ≤ # ( , , , , , , , ) 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 • Quellcode Programm Eingabe • Eingabe für Algorithmus ??? Ausgabe Hält ( )? 18
Das Halteproblem • Quellcode von A(n): wiederhole solange ≠ 1 falls n gerade: Eingabe n := n / 2 sonst: n := (3 * n) + 1 • Eingabe = 17 für Algorithmus ??? Ausgabe Hält (17)? 19
Gibt es einen Algorithmus der das Halteproblem löst? • Angenommen HALT sei ein solcher Algorithmus • konstruiere Algorithmus B wie folgt A B(A) B(B) hält nicht B A x ⟺ A(A) B(B) hält ja HALT nein Was passiert, wenn wir B ja/nein mit eigenem Quellcode Endlos- schleife als Eingabe aufrufen? nein 20
✓ • Was ist ein Algorithmus? • Welche Probleme können Algorithmen lösen? ✓ (Nicht alle!) • Was sind gute Algorithmen? •… 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
Löse für = 4195835 und = 3145727: ! – . = ??? " 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 Anzahl Vergleichsoperationen: 7 25
Wie schnell sind Algorithmen? Beispiel: Sortieren 8 1 17 20 3 12 5 99 Anzahl Vergleichsoperationen: 7+6 26
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 8 17 3 12 5 20 99 Anzahl Vergleichsoperationen: 7+6+5 27
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 8 3 12 5 17 20 99 Anzahl Vergleichsoperationen: 7+6+5+4 28
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 3 8 5 12 17 20 99 Anzahl Vergleichsoperationen: 7+6+5+4+3 29
Wie schnell sind Algorithmen? Beispiel: Sortieren 1 3 5 8 12 17 20 99 Anzahl Vergleichsoperationen: 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28 Für Zahlen: * 1 +1 + − 1 + ⋯+ 1 = / = ≈ + '() 2 Bubblesort 30
Geht das nicht schneller? 17 8 1 99 20 3 12 5 BLACK BLACK 2 " ( /2) MAGIC MAGIC Vergleiche 1 8 17 99 3 5 12 20 Merge −1 Vergleiche 31
Mergesort 17 8 1 99 20 3 12 5 BLACK Merge- BLACK Merge- MAGIC sort MAGIC sort 17 8 1 99 20 3 12 5 Merge- Merge- Merge- Merge- sort sort sort sort 17 8 1 99 20 3 12 5 Merge Merge Merge Merge 8 17 1 99 3 20 5 12 Merge Merge 1 8 17 99 3 5 12 20 Merge 1 3 5 8 12 17 20 99
Und das soll schneller sein? • sei ( ) Laufzeit von Mergesort mit Elementen • gesehen: 8 = 2 1 4 + 7 = 17 • analog: 4 =21 2 +3 =5 • und: 2 =21 1 +1 =1 • trivial: T 1 = =?0? ? Allgemein Rekursionsgleichung mit Lösung 21 + −1 , > 1 =9 2 = - log − + 1 0 , = 1 ≈ - log 33
Merge- Bubble- sort vs sort Laufzeit 500 000 2 n2 400 000 50 n log2 (n) 300 000 200 000 100 000 n 100 200 300 400 500 34
Merge- Bubble- sort vs sort Sortiere = 10$ Zahlen • Mergesort • Mergesort • sortiere Zahlen mit… • sortiere Zahlen mit… • …50 1 1 log(n) Vergleichen • …2 1 + Vergleichen • Computer A: • Computer B: • 104 Vergleiche/Sekunde • 105 Vergleiche/Sekunde Laufzeit: Laufzeit: 50 1 1 log 2 1 + 4 ≈ 100 = 2000 10 10 5 35
• Was ist ein Algorithmus? ✓ • Welche Probleme können Algorithmen lösen? ✓ (Nicht alle!) • Was sind gute Algorithmen? ✓ •… ✕ Erzähl ich euch in ein paar Jahren, wenn ihr in meiner Vorlesung sitzt! 36
Ein paar algorithmische Puzzles
Das Versammlungsproblem • Roboter in der Ebene • diskrete Zeitschritte Ziel: Versammle alle • Roboter bewegen sich gleichzeitig Roboter an einem Ort. • Roboter „beamen“ sich Strategie 1: Strategie 2: Gehe zu einem zufälligen anderen Gehe zum näheren von 2 zufälligen Roboter. anderen Robotern. 38
http://www.rikudo-puzzle.com Rikudo Etwas einfacher: Rikudo auf der Linie (mehr oder weniger) 1 8 7 6 3 11 39
Anchored Rectangle Packing • Punkte im Einheitsquadrat • einer davon im Ursprung (0,0) 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 U (0, 0) 40
Scheduling
Stellt euch vor ihr seid Google… Eigenschaften der PCs • Geschwindigkeit • Energieverbrauch • … Eigenschaften der Aufträge • Größe • Wert • Priorität • Ankunfszeit • Deadline • (Rechen-) Aufträge von Kunden • … • ein Auftrag wird auf einem von m PCs bearbeitet Beweisbare Garantien! Ziele: • hohe Kundenzufriedenheit • effizienter & profitabler Betrieb 42
Beispiel: Makespan Minimierung PC 1 Ankunftsreihenfolge PC 2 PC 3 PC 4 time makespan • kein Auftrag startet im schatierten Bereich • OPT hat Länge mindestens • OPT mindestens so lang wie längster Auftrag List-Scheduling ist eine 2-Approximation [Graham; 1966] 43
Sie können auch lesen