Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion“. ” Hier einige informelle Erklärungen zum Algorithmus“ ” P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 1 Ein Algorithmus ist eine mit formalen Mitteln endlich beschreibbare, mechanisch nachvollziehbare Verarbeitungsvorschrift zur Lösung einer Klasse von Aufgaben (Problemen). Endliche, präzise Verarbeitungsvorschrift, die so formuliert ist, dass sie von einer mechanisch oder elektronisch arbeitenden Maschine in endlicher Zeit bearbeitet werden kann. Ein Algorithmus ist eine endliche Menge von Regeln, die eine endliche Folge von Operationen zur Lösung eines Problems beschreibt. Ist das ein Algorithmus?? Anweisung für die Polizei: Wenn die gesuchte Person die im Fahndungsplakat abgebildete ist, ” dann sofort verhaften. “ P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 3 Kein Algorithmus Wenn die gesuchte Person die im Fahndungsplakat abgebildete ist, ” dann sofort verhaften. “ Vergleich zwischen Bild und Person ist so nicht automatisierbar. Biometrie untersucht solche Vergleichs-Algorithmen mittels Messungen, Ähnlichkeitsmaßen u.ä. Abgleich mittels: Fingerabdruck, genetischer Fingerabdruck, Iris-Erkennung, Gesichtsmessung, Spracherkennung, etc. P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 4 Beispiel für einen Algorithmus Schriftliche Addition von zwei beliebigen Binärzahlen. 1 1 1 Eingabe Wert 7 + 1 1 Eingabe Wert 3 1 1 1 Übertrag 1 0 1 0 Ergebnis Wert 10 P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 5 Algorithmus als Funktion Viele Algorithmen sind Verarbeitungsvorschriften, die eine Eingabe erwarten, daraus eine Ausgabe berechnen Eingabedaten Algorithmus Ausgabedaten Algorithmus ist eine (Berechnungs-) Funktion: Eingabe → Ausgabe Algorithmus berechnet immer eine Klasse von Aufgaben P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 6 Programmiersprachen Präzisierungen des Begriffs Algorithmus: Programm einer Programmiersprache Turingmaschine und zugehörige Turingprogramme Lambda-Kalkül von Church P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 7 Das Turingmaschinenmodell Ist ein einfaches formales Maschinenmodell: Besteht aus: • • • unendlichem Band, in Zellen unterteilt, deren Inhalt kann gelesen und geschrieben werden Schreib-Lesekopf: Liest und schreibt den Inhalt einer Zelle und kann sich um eins nach links oder rechts bewegen. Turingprogramm: Steuert die Aktionen des SchreibLesekopfes. Beispiel einer Programmzeile: 123: If Z = 0 then Z = 1; goto 125 else Z = 0 ; goto 124 P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 8 Lambda-Kalkül von A. Church: • • • • logisch-algebraisches Modell Formalisiert Funktionen: Z.B. Identität ist λx.x Anwendung von Funktionen auf Argumente Operation: Berechnung des Ergebnisses durch iteriertes Einsetzen Beispiel: (λx.x + 1)(2) ergibt 2 + 1, somit 3. P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 9 Church-Turing-Hypothese: Alle denkbaren Formalisierungen des Algorithmusbegriffs sind äquivalent Folgende Formalismen haben nachweislich äquivalente Berechnungsfähigkeiten: • • • • das Turingmaschinenmodell der Lambda-Kalkül Programmiersprache Haskell Programmiersprache . . . P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 10 Erweiterter Algorithmusbegriff • Nichtdeterministische Schritte sind erlaubt • Zufallsprozesse können integriert sein • reaktive Verfahren, die ständig neue Eingaben verarbeiten P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 11 Spezifikation Beschreibt Eigenschaften eines Berechnungsverfahrens Z.B. Beziehung der Eingabewerte zu den Ausgabewerten ist oft Vorstufe bei der Entwicklung eines Algorithmus Spezifikation: Algorithmus: WAS soll erreicht werden WIE soll es erreicht werden Formalisierungsstufen: informell (umgangssprachlich oder unscharf) oder formal exakt Gilt Algorithmus ↔ Spezifikationen ? Antwort mittels Verifikation bzw. Test P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 12 Kriterien zur Bewertung von Algorithmen Terminierung Der Algorithmus hält für jedes Problem der Problemklasse an. (totale) Korrektheit Der Algorithmus terminiert und berechnet das gewünschte Ergebnis (bzgl. einer Spezifikation). (partielle) Korrektheit Wenn der Algorithmus einen Wert berechnet, dann ist der Wert das gewünschte Ergebnis (bzgl. einer Spezifikation). Effizienz Der Algorithmus ist effizient (schnell, wenig Speicher, wenig Kommunikation, billig, wenig Handarbeit, usw.) P raktische Inf ormatik 1, W S 2004/05, F olien Algorithmus,(20. Oktober2004) Seite 13 Einfachheit Verständlichkeit, Wartungsfreundlichkeit Robustheit Abgesichert gegen viele Fehlermöglichkeiten. Sicherheit Abgesichert gegen ungewollte Eingriffe und Einbrüche von außen