Wortherkunft
Das Wort «Algorithmus» stammt vom Mathematiker und Universalgelehrten Abu Dscha'far Muhammad ibn Musa al-Chwarizmi. Al-Chwarizmi lebte um 800 n. Chr. in Bagdad und verfasste ein Standardwerk mit einer Sammlung mathematischer Methoden. Er stammte aus Choresmien, der Gegend südlich des Aral-Sees. Deshalb wurde er «al-Chwarizmi» genannt. Die lateinischen Übersetzer seines Werkes schrieben diesen Namen in «Algorismi» um. Mit «Rhythmus» hat Algorithmus also nichts zu tun.
Definition
Ein Algorithmus ist eine Handlungsanweisung, ein Rezept, um ein bestimmtes Problem zu lösen.
Die Anweisung muss eine endliche Anzahl einzelner Schritte haben: Sie muss irgendwann fertig werden. Nach dem Abschluss eines einzelnen Schrittes muss immer klar sein, welches der nächste Schritt ist. Ein einfacher Algorithmus soll ausserdem «determiniert» sein: Bei gleichen Anfangsbedingungen soll hinten das gleiche Ergebnis herauskommen (siehe dazu Diskussion unten).
Beispiel
Ein Verfahren von Euklid gilt als der älteste überlieferte Algorithmus. Das damit zu lösende Problem: Den grössten gemeinsamen Teiler von zwei Zahlen zu finden. Man erinnernt sich vielleicht aus der Schule an diesen «GGT».
Die Anweisung geht so: Man nehme die grössere der zwei Zahlen, teile sie durch die kleinere und behalte den Rest. Dann nehme man den Teiler, teile diesen wiederum durch den soeben errechneten Rest und rechne auch hier den Rest aus. Das wiederhole man nun so lange, bis die Teilung aufgeht, also der Rest Null ist. Der letzte Teiler ist dann der grösste gemeinsame Teiler «GGT».
Euklid lieferte mit diesem Algorithmus also eine Schritt-für-Schritt-Anleitung, wie man den «GGT» ausrechnet.
Bedeutung
Algorithmen sind eng verknüpft mit der Entstehung der Computer. Die Countess of Lovelace, Augusta Ada Byron King – oder kürzer: Ada Lovelace – gilt als die erste Programmiererin. Denn schon hundert Jahre bevor der erste Computer gebaut war, dachte sie sich einen Algorithmus spezifisch für einen solchen Computer aus.
Algorithmen beschäftigten auch die Mathematiker des 19. und 20. Jahrhunderts. Denn mathematisch war das Konzept schwer fassbar, zu ungenau definiert. Beispielsweise die Vorgabe, dass ein Algorithmus fertig werden muss: Wie kann man das eigentlich wissen? Also mathematisch beweisen, ob ein Algorithmus einfach sehr, sehr lange braucht, oder ob er unendlich lange läuft, also keine Antwort findet?
Auf der Suche nach der Lösung dieser und ähnlicher Fragen entwickelte der Brite Alan Turing die Turing-Maschine. Und dieses abstrakte Konzept wurde dann in reale Maschinen umgesetzt, die ersten Computer der 40er-Jahre.
Ein Computerprogramm ist also ein Algorithmus – oder mehrere Algorithmen, die sich gegenseitig mit Ein- und Ausgaben füttern.
Heute und morgen
Seither sind Jahre vergangen und Computer schneller und schneller geworden. Entsprechend sind immer komplexere Algorithmen möglich. Und zwar nicht nur in der Art und Weise, wie sie rechnen; sondern auch darin, wie viel Eingabe sie verarbeiten können.
So arbeiten moderne Algorithmen nicht mehr nur mit ein, zwei Zahlen. Sondern sie verschlucken riesige Berge von Daten. Sie durchsuchen diese Daten, sortieren, gewichten. Wie Google, deren Algorithmen wissen, was wir suchen; oder Amazon, das uns Bücher vorschlägt; oder Facebook, das alte Freunde neu ausgräbt.
Und sie machen ein grosses Versprechen: Beim Durchwühlen dieser Datenberge können die Algorithmen Zusammenhänge entdecken, auf die wir selber nicht gestossen wären. Die Maschinen lernen: Sie zeigen uns Dinge, die wir ihnen nicht so beigebracht haben.
So kann ein komplexer Algorithmus im Datenberg Zusammenhänge entdecken und folglich auch Ereignisse vorhersagen, ohne zu wissen, warum sie genau passieren.
Das bedeutet, dass es eine Verschiebung weg von Kausalität hin zu Korrelation gibt. Es gilt nicht mehr: Weil A passiert, passiert auch B. Sondern nur noch: Passiert A, passiert wahrscheinlich auch B. Also beispielsweise so wie bei den Buchempfehlungen von Amazon: Der Algorithmus weiss, dass wir auch dieses Buch interessant finden. Aber nicht, warum.