Der Algorithmus spielt in vielen Bereichen des Lebens bereits eine bedeutende Rolle. Dennoch ist das Wissen über sie und was dahinter steckt noch nicht sehr ausgeprägt. Der Begriff taucht immer häufiger im Alltag auf. Dabei handelt es sich keineswegs um eine neue Bezeichnung. Ganz im Gegenteil, der Begriff stammt aus dem Altertum und entstand in der Mathematik und Philosophie.
Zunächst war ein Algorithmus nichts anderes als eine bestimmte Art philosophischer Abhandlungen. Genauer gesagt, handelte es sich um ein mathematisches Lehrbuch.
Inhaltsverzeichnis
Die Mutter des Algorithmus
Der Text im Bild unten beginnt mit den Worten: „Dixit Algorismi“ übersetzt so viel wie: „Algorismi hat gesagt“. Bis um 1600 bedeutete das Wort Algorithmus so viel wie „Lehrbuch“.
Die Lehrbücher enthielten Vorschriften zum Zählen, Rechnen oder zur Vermittlung von Lösungswegen für mathematische Aufgaben. Der erste für einen Computer bestimmte Algorithmus stammt von Ada Lovelace. Sie ist die Pionierin moderner Programmiersprachen.
Schon zu Lebzeiten wurde sie „Zahlenzauberin“ genannt. Ihr erster Algorithmus datiert aus dem Jahr 1843 und sollte zur Berechnung der Bernoulli-Zahlen dienen. Da es Computer zu der Zeit noch nicht gab, kam er letztlich aber nicht zum Einsatz.
Unterschied zur Software / Programm
Heute wird der Begriff immer wieder als Synonym für „Software“ verwendet. Die Zuschreibung ist aber nicht ganz korrekt. Die Definition lautet: Eine Regel oder ein Set aus Regeln und mathematischer Operationen oder einer Logik, die zur Lösung eines bestimmten Problems gebraucht werden. Ein Algorithmus ist damit so etwas wie ein Programmablaufplan.
Ein Programm bzw. eine Software wiederum lässt sich definieren als ein Instrument mit einer visuellen Eingabe- und Ausgabeoberfläche, das im Hintergrund auf einem Set von festgelegten Regeln besteht. Ein Programm ist also eher das Resultat eines Algorithmus, aber nicht identisch damit.
Einer der berühmtesten und einflussreichsten Algorithmen ist der Google-Suchalgorithmus. In seiner ursprünglichsten Form sieht der „RankPage-Algorithmus“ folgendermaßen aus:
Die moderne Definition von Algorithmen
Der Unterschied zwischen Programm und Algorithmus wird deutlich, wenn man den Aspekt der Programmiersprache hinzunimmt. Ein Algorithmus existiert unabhängig von einer Programmiersprache. Ein Programm hingegen ist immer in einer bestimmten Programmiersprache programmiert.
Alan Turing – ebenfalls einer der Pioniere der modernen Informatik – definierte als Erster den Begriff für das Computer-Zeitalter:
„Eine Berechnungsvorschrift zur Lösung eines Problems heißt genau dann Algorithmus, wenn eine zu dieser Berechnungsvorschrift äquivalente Turingmaschine existiert, die für jede Eingabe, die eine Lösung besitzt, stoppt.“
Neben dieser Kurzform gibt es eine ausführlichere Definition von Turin, bei der er vor allem auf vier Eigenschaften hinweist:
- Das von einem Algorithmus beschriebene Verfahren muss in einem endlichen Text eindeutig beschreibbar sein.
- Jeder Schritt dieses Verfahrens muss tatsächlich ausführbar sein.
- Das Verfahren darf zu jedem Zeitpunkt nur endlich viel Speicherplatz benötigen.
- Das Verfahren darf nur endlich viele Schritte benötigen.
Der Unterschied zu einem Code
Der Code beschreibt eine Folge von Einzelschritten, die eine Maschine ausführen kann. In vielen Fällen ist Code in einer bestimmten Programmiersprache geschrieben. Diese wird dann automatisch in Befehle übersetzt, die eine Maschine versteht. Der Code besetzt also die Schnittstelle zwischen Algorithmus und Computer, der die Rechenschritte durchführt.
- Algorithmus: Eine gut durchdachte Abfolge von Schritten zur Lösung eines größeren Problems
- Code: Anweisungen für die Ausführung durch Maschinen
Beispiele aus dem Bereich Data Science & Machine Learning
Algorithmen gibt es – auch unabhängig von Data-Science- und Machine-Learning-Kontexten – in zahlreichen Bereichen. Insbesondere natürlich in der Mathematik, wo es Algorithmen in den Bereichen Geometrie, Graphentheorie und Kalenderrechnung gibt. Beispiele, die im Bereich Machine-Learning-Anwendung finden, sind unter anderem:
- Bayes-Klassifikatoren
- Clusterverfahren
- Entscheidungsbäume
- Fuzzy-Klassifikatoren
- Künstliche Neuronale Netze
In der Praxis ist hinsichtlich des Einsatzes eines Algorithmus folgende Fragestellung leitend: Wie gelingt es, ein bestehendes Problem zu erkennen, zu formulieren und – wenn möglich – eine passende mathematische Lösung dafür zu finden. Erst dann kann ein Algorithmus entwickelt und sinnvoll in der Praxis eingesetzt werden.
0 Kommentare