Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg

Die Seite wird erstellt Helge Sauer
 
WEITER LESEN
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
Algorithmen

Prof. Dr. Peter Kling – Universität Hamburg
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
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
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
Was ist eigentlich
Informatik?
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
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
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
“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
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
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
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
- spiegel.de

 7
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
Was ist ein Algorithmus?
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
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
Algorithmen Prof. Dr. Peter Kling - Universität Hamburg - Universität Hamburg
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