Was ist ein Algorithmus?

Was sind Algorithmen

Der Algorithmus spielt in immer mehr Bereichen des Lebens eine bedeutende Rolle. Dennoch ist das Wissen über sie und was dahinter steckt noch nicht sehr ausgeprägt. Das führt zu Ängsten und Ablehnungen. In diesem Artikel erfahren Sie mehr über den Ursprung, die Bedeutung und den praktischen Einsatz von Algorithmen.

Der Begriff „Algorithmus“ taucht immer häufiger im Alltag – auch von nicht Data Scientisten – 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.

Bild altes Dokument "Algorithmus"

Der Text 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 Mutter des Algorithmus

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 und quasi die Mutter des Algorithmus.

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.

Algorithmus vs. Software / Programm

Heute wird der Begriff Algorithmus immer wieder als Synonym für „Software“ verwendet. Die Zuschreibung ist aber nicht ganz korrekt. Die Definition von Algorithmus 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:

Google Algorithmus Ursprungsform

Larry Pages Formel, die den „PageRank“-Algorithmus definiert – auf ihr basiert die Google-Suche bis heute (wenngleich in abgeänderter Form).

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 des Algorithmus 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, die einen Algorithmus bis heute auszeichnen:

  1. Das von einem Algorithmus beschriebene Verfahren muss in einem endlichen Text eindeutig beschreibbar sein.
  2. Jeder Schritt dieses Verfahrens muss tatsächlich ausführbar sein.
  3. Das Verfahren darf zu jedem Zeitpunkt nur endlich viel Speicherplatz benötigen.
  4. Das Verfahren darf nur endlich viele Schritte benötigen.

Algorithmus vs. Code

Auch zwischen Code und Algorithmus gibt es Unterschiede. 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:

Linktipp: In unserem Blog-Artikel über Machine-Learning-Methoden beschreiben und erklären wir zahlreiche dieser Methoden.

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.

Tags

top