Algorithmus

Werbung
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
Herunterladen