Im Alltag des Menschen lässt sich ein Algorithmus wohl als „effektive Vorgehensweise / Gewohnheit“ umschreiben. Aber was ist ein Algorithmus in der IT-Welt? Wie ist er definiert und welche Eigenschaften muss er haben, damit er ein Algorithmus ist?
Das Video vom YouTube-Kanal „Informatik - simpleclub“ erklärt sehr gut, was ein Algorithmus ist:
Was ist ein Algorithmus?
Ein Algorithmus ist eine Vorgehensweise, um ein Problem oder eine Aufgabe zu lösen. Diese ist meistens in mehrere Schritte unterteilt. Algorithmen werden nicht nur maschinell durch einen Computer ausgeführt, sondern können auch von Menschen in „natürlicher Sprache“ formuliert werden. In der Informatik und Mathematik sind Algorithmen allerdings besonders wichtig:
- Beispielsweise gibt es den Google-Algorithmus, der bestimmt, wann welche Webseite in den Google-Suchergebnissen auf welcher Position angezeigt wird.
- Definition von Werner Stangl: „Ein Algorithmus bezeichnet eine systematische, logische Regel oder Vorgehensweise, die zur Lösung eines vorliegenden Problems führt“.
- Der Begriff stammt vom choresmischen Universalgelehrten al-Chwarizmi, was latinisiert „Algorismi“ bedeutet.
Algorithmus als Funktion
Ein Algorithmus lässt sich auch mit einer Funktion vergleichen:
- Man gibt bestimmte Vorgaben ein (Eingabe),
- und der Algorithmus berechnet daran das Ergebnis (Ausgabe).
Die Ausgabe muss nicht zwangsläufig „richtig“ sein oder Sinn ergeben. Das hängt davon ab, wie der Algorithmus arbeitet und welche Eingaben er akzeptiert.
Mathematisches Beispiel:
- f(x,y) = x + y
- Der Algorithmus bekommt zwei Eingaben (x und y) und gibt die Summe aus.
- Die zulässigen Eingaben sollten auf Zahlen begrenzt sein, da der Algorithmus Texte nicht mathematisch addieren kann.
Alltags-Beispiele:
- Ihr backt einen Kuchen nach einem Rezept. Das Rezept ist der Algorithmus, den ihr ausführt.
- Euer Navi berechnet ausgehend von eurem Standort die kürzeste oder schnellste Route zu eurem Ziel – gemäß des programmierten Algorithmus.
Folgende Eigenschaften hat jeder Algorithmus, sonst ist es keiner
- Ein Algorithmus ist ausführbar, das heißt, jeder Einzelschritt lässt sich vom Computer auch tatsächlich ausführen.
- Ein Algorithmus ist determiniert, das heißt, er liefert bei jeder Ausführung mit gleicher Eingabe die gleiche Ausgabe.
- Ein Algorithmus ist deterministisch, das heißt, zu jedem Zeitpunkt seiner Ausführung ist der nächste Rechenschritt (auf Basis der Zwischenergebnisse) klar vorgegeben.
- Ein Algorithmus ist finit (endlich), das heißt, sein Quelltext besteht aus einer begrenzten Anzahl von Zeichen und zu jedem Zeitpunkt seiner Ausführung belegt er begrenzt viel Speicherplatz.
- Ein Algorithmus ist terminiert, das heißt, zu jeder (akzeptierten) Eingabe kommt er nach endlich vielen Schritten zu einem Ergebnis oder bricht kontrolliert ab (keine Endlosschleife).
- Ein Algorithmus ist effektiv, das heißt, jede Anweisung des Algorithmus erfüllt einen bestimmten und sinnvollen Zweck, um der letztendlichen Ausgabe näher zu kommen.