Erklärt: Was genau sind eigentlich Algorithmen?

Programm, Algorithmus, Code

Dem Begriff der Algorithmen begegnet man heute häufig, jedoch ist dabei oft nicht so genau bekannt, was damit gemeint ist. Das ist insofern problematisch, weil dadurch falsche Erwartungen in der Praxis entstehen können. In diesem Artikel erfahren Sie, woher der Begriff stammt, was genau er bedeutet und wie Algorithmen in der Praxis eingesetzt werden.

Einer der häufigsten Begriffe, der im Umfeld von Data Science Projekten immer wieder fällt  – neben den Daten selbst – ist sicher der Begriff Algorithmus. Dabei gibt es

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“. (Bildquelle: Wikipedia)

immer wieder Missverständnisse, was eigentlich genau damit bezeichnet wird. Wir schaffen darum in diesem Artikel Klarheit über den Begriff und die damit verbundenen Konzepte. Zudem grenzen wir den Begriff von anderen Begriffen wie Software, Programm, Programmiersprache oder Code ab.

Linktipp: Ebenfalls interessant – unser Grundlagenartikel zur allen Konzepten rund um Data Science, Data Analytics und Big Data.

Dabei ist der Begriff „Algorithmus“ selbst schon sehr alt und entstand in der Mathematik und Philosophie. Dort bezeichnete er aber etwas Anderes als das, was wir heute unter Algorithmen verstehen. Zunächst waren Algorithmen nichts anderes als eine bestimmte Art von philosophischer Abhandlung. Ein Algorithmus war also zunächst eine Form von Text. Genauer gesagt: ein mathematisches Lehrbuch. Die Bezeichnung dafür geht auf einen persischen Gelehrten zurück, dessen Namen später abgekürzt bzw. veralbert wurde.

Die Mutter aller Algorithmen

Nimmt man die Inhalte dieser mathematischen Lehrbücher, so ging es von Beginn an um konkrete Anweisungen und 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 aller Algorithmen.

Schon zu Lebzeiten wurde sie „Zahlenzauberin“ genannt. Der erste Algorithmus, der je für einen Computer bestimmt war, stammt von Ada Lovelace. Er sollte der Berechnung der Bernoulli-Zahlen – einer bestimmten Folge von rationalen Zahlen- dienen. Da der Computer, auf dem dieser Algorithmus eingesetzt werden sollte, nicht gebaut werden konnte, kam er allerdings nicht zum Einsatz. Nichtsdestotrotz stammt damit der allererste Algorithmus aus dem Jahr 1843.

Algorithmus vs. Software / Programm

Heute wird der Begriff Algorithmus wird immer wieder als Synonym für „Software“ verwendet. Dabei gibt es zwar oberflächlich betrachtet Überschneidungen, vor allem aber auch Unterschiede. Die allgemeinste Definition von Algorithmus lautet: Eine Regel oder ein Set von Regeln und mathematische Operationen oder einer Logik, die zur Lösung eines bestimmten Problems gebraucht wird bzw. werden. Ein Algorithmus ist damit so etwas wie ein Programmablaufplan oder eine Handlungsvorschrift.

Ein Programm bzw. eine Software 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. Ein Algorithmus kann ein Bestandteil eines Programms sein – ein Programm ist aber mehr als nur ein Algorithmus. Einer der berühmtesten und einflussreichsten Algorithmen ist ohne Zweifel 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).

Der Unterschied zwischen Programm und Algorithmus wird dann besonders 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.

Was genau damit gemeint ist, lässt sich anhand einer Analogie zum Brettspiel zeigen. Das Brettspiel ist bei dem Vergleich das Programm, während die Spielanleitung mit den abstrakten Regeln der Algorithmus ist. Wie eine Anleitung erklärt ein Algorithmus die Regeln, wie Schritt für Schritt ein bestimmtes Problem gelöst werden kann. 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.
Was ein #Algorithmus ist, hat Alan #Turing zum ersten Mal definiert. Seine Definition ist bis heute gültig. Klick um zu Tweeten

Algorithmus vs. Code

Auch bei dem Begriffspaar Algorithmus vs. Code gibt es eine fließende Grenze zwischen den dahinterliegenden Konzepten. Der Code beschreibt eine Folge von Einzelschritten, die eine Maschine ausführen kann. In vielen Fällen ist Code in einer Programmiersprache geschrieben, die dann automatisch in Befehle übersetzt wird, die eine Maschine verstehen kann. Der Code besetzt also die Schnittstelle zwischen dem Algorithmus und dem 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 für Algorithmen 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 für Algorithmen, 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.

Algorithmen bestimmen heute direkt oder indirekt die Vorgänge in verschiedenen Bereichen unseres Lebens und vor allem der Wirtschaft. Ein Verständnis dessen, was damit eigentlich gemeint ist, verhindert, dass hier irreführende Vorstellungen und falsche Erwartungen entstehen. Denn ein Algorithmus kann zwar sehr beeindruckende Auswirkungen zeigen.

Letzten Endes kommt es aber eigentlich darauf an, ein in der Praxis 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.

Sie möchten mehr über den Einsatz von Algorithmen in Data-Science-Projekten erfahren? Schreiben Sie uns.

Kontaktanfrage

Tags

top