Zum Inhalt springen

Algorithmus

Ein Algorithmus ist eine endliche Handlungsvorschrift, die Eingabe in Ausgabe überführt. Definition, Kernmerkmale und Abgrenzung zu Modell und Programm.

Ein Algorithmus ist eine Handlungsvorschrift: eine feste Abfolge von Schritten, die aus einer Eingabe (den Ausgangsdaten) eine Ausgabe (das Ergebnis) macht und nach endlich vielen Schritten fertig ist. Ein Kochrezept ist ein Alltagsbeispiel dafür. In der Informatik ist der Algorithmus der Bauplan der Berechnung, unabhängig davon, in welcher Programmiersprache und auf welcher Hardware er später läuft.

Was ist ein Algorithmus?

Der Begriff geht auf den persischen Mathematiker al-Chwarizmi (9. Jahrhundert) zurück; aus der lateinischen Form seines Namens wurde im Mittelalter „Algorismus", das Wort für die Rechenverfahren mit indisch-arabischen Ziffern. Aus dieser Rechenpraxis wurde ein zentraler Begriff der Informatik: das exakte Verfahren, das ein Problem in endlich vielen Schritten löst.

Donald Knuth formulierte 1968 in „The Art of Computer Programming" fünf Kernmerkmale, die bis heute als Standard gelten. Ein Algorithmus ist endlich (er terminiert nach endlich vielen Schritten), definit (jeder Schritt ist eindeutig beschrieben), hat einen klaren Input und Output und ist effektiv (jeder Schritt ist mechanisch ausführbar, ohne Interpretation). Cormen et al. ergänzen in „Introduction to Algorithms" die Sicht auf Korrektheit: Ein Algorithmus ist korrekt, wenn er für jede zulässige Eingabe die richtige Ausgabe liefert.

Algorithmen sind sprach- und hardware-unabhängig. Der euklidische Algorithmus zur Bestimmung des größten gemeinsamen Teilers funktioniert auf Papier, in Python, in C++ oder in Assembler mit identischer Logik; nur die Implementierung ändert sich. Diese Trennung ist der Kern des Begriffs: Der Algorithmus ist der Bauplan, das Programm die konkrete Umsetzung.

In Data & AI sitzen Algorithmen an zwei Stellen. Trainings-Algorithmen wie Gradient Descent, Backpropagation oder der Random-Forest-Aufbau setzen die Parameter eines Modells aus Trainingsdaten. Inferenz-Algorithmen wenden diese trainierten Parameter zur Laufzeit auf neue Eingaben an. Beide sind Algorithmen im engeren Sinn, aber sie erfüllen unterschiedliche Aufgaben in der Modell-Lebenszeit.

Abgrenzung zu Modell, Heuristik und Programm

Vier Begriffe werden im Sprachgebrauch häufig vermischt. Die relevanten Trennlinien:

BegriffRolleVerhältnis zum Algorithmus
ModellTrainierte Instanz aus Parametern und ArchitekturErgebnis, wenn ein Lern-Algorithmus auf Trainingsdaten läuft
HeuristikFaustregel ohne Optimalitäts-GarantieTeilmenge; heuristische Algorithmen liefern „gute", keine beweisbar optimalen Ergebnisse
ProgrammKonkrete Implementierung in einer SpracheUmsetzung eines Algorithmus in ausführbaren Code
ArchitekturStruktureller Bauplan eines ModellsOft synonym zum Algorithmus verwendet (Transformer, CNN, Random Forest)

Ein Modell ist das Ergebnis, ein Algorithmus der Weg dorthin. Der Transformer-Algorithmus (Vaswani et al. 2017) beschreibt die Attention-Mechanik und den Vorwärts-/Rückwärts-Pfad; GPT-4 und Llama sind Modelle, deren Parameter durch das Training mit dieser Architektur gesetzt wurden. Ohne Algorithmus kein Modell, ohne Trainingsdaten aber auch nicht.

Die Trennung zwischen Algorithmus und Heuristik ist präziser, als sie im Alltag klingt. Deterministische Algorithmen wie Quicksort oder Dijkstra liefern das beweisbar korrekte Ergebnis. Heuristische Algorithmen wie Simulated Annealing oder viele Greedy-Verfahren liefern nachweisbar gute, aber nicht garantiert optimale Ergebnisse; sie werden eingesetzt, wenn die exakte Lösung zu teuer wäre. Beide gelten als Algorithmen; nur die Garantie unterscheidet sich.

Programm und Algorithmus werden im Alltag oft synonym gebraucht, gehören aber auf unterschiedliche Ebenen. Der euklidische Algorithmus existiert seit über 2.000 Jahren; die konkreten Programme, die ihn implementieren, gibt es in jeder ernstzunehmenden Programmiersprache. Beim Debuggen wird das Programm angepasst; der Algorithmus selbst bleibt. Diese Ebene wird bei Diskussionen um „algorithmische Entscheidungen" (etwa im Kontext des EU AI Act) wichtig: Reguliert wird die Logik, weniger der Sourcecode.

Beispiel: Random Forest im Trainings- und Inferenz-Pfad

Eine Churn-Prognose in einem Datenprodukt zeigt, wie der Algorithmus-Begriff im ML-Kontext greift. Der Random-Forest-Algorithmus (Breiman 2001) beschreibt das Verfahren: Es werden n Entscheidungsbäume auf jeweils zufälligen Teilmengen der Trainingsdaten und zufälligen Merkmalsauswahlen trainiert; jeder einzelne Baum wird durch den CART-Algorithmus aufgebaut, der an jedem Knoten den besten Split nach Gini-Impurity oder Information Gain wählt. Die Vorhersagen der Einzelbäume werden bei der Inferenz durch Mehrheitsvotum (Klassifikation) oder Mittelwert (Regression) aggregiert.

Der Algorithmus ist damit vollständig beschrieben, unabhängig von der Umsetzung. Konkret wird er in scikit-learn (RandomForestClassifier), Spark MLlib oder XGBoost implementiert. Das Ergebnis des Trainings ist das Modell: die Menge an Bäumen mit ihren Split-Regeln und Blatt-Wahrscheinlichkeiten. Beim Deployment auf einer Datenplattform wie Databricks läuft ausschließlich der Inferenz-Algorithmus: Eingabezeile durch alle Bäume schicken, Voten sammeln, Wahrscheinlichkeit zurückgeben. Der Trainings-Algorithmus wird erst bei einem Retraining wieder aktiv, wenn frische Daten das Modell aktualisieren.

Algorithmus im eigenen Unternehmen umsetzen?

Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.

Gespräch vereinbaren