Algorithmus und Heuristik

Ein Algorithmus dient dazu, eine Lösung für ein Problem zu berechnen. Ein typisches Beispiel ist das sogenannte "Kürzeste-Wege-Problem", das für zwei von den Nutzern eingegebene Orte berechnet, welches der kürzeste Weg zwischen ihnen ist. Ein anderes typisches Problem ist die Sortierung einer Menge von Daten. Dazu muss der Nutzer die Daten und das Sortierschema vorgeben. So kann man eine Menge von Büchern beispielsweise nach Farbe, Größe oder Nachname der jeweiligen Autorin oder des jeweiligen Autors sortieren. Solche Probleme beschreiben also eine sehr allgemeine Fragestellung, die in einer Situation immer noch durch weitere Zusatzinformationen ergänzt werden müssen: Im ersten Beispiel müssen die beiden Orte genannt werden, im zweiten Fall das Sortierkriterium.
Algorithmen sind nun so allgemeine Lösungsvorschriften, dass sie das Problem immer lösen können, unabhängig davon, was die Nutzer:innen eingeben. Sie sind dabei so detailliert, dass sie auf einen Computer übertragbar sind – man nennt diesen Vorgang Implementierung.
Viele dieser Probleme sind sogenannte Optimierungsprobleme: Sie suchen eine Lösung mit beispielsweise möglichst geringen Kosten oder möglichst hohem Gewinn. Dazu gehören z.B. Probleme, die versuchen, die Pakete einer Lieferung möglichst so auf LKWs zu verteilen und die Routen so auszuwählen, dass insgesamt die Auslieferzeit minimiert wird. Eine solche Lösungsvorschrift oder Handlungsanweisung nennt man in diesen Fällen nur dann Algorithmus, wenn sie auch tatsächlich eine optimale Lösung findet. Dieser Punkt ist deshalb wichtig, weil die meisten Verfahren des maschinellen Lernens ein Optimierungsproblem lösen: "Finde in den Daten Muster, die möglichst gute Entscheidungen erlauben". Dafür muss man dem Verfahren auch ein Qualitätsmaß mitgeben, das optimiert werden soll, wie z.B. die Menge aller korrekt gefällten Entscheidungen. Insbesondere die mächtigeren Verfahren des maschinellen Lernens können hier aber nicht garantieren, die bestmögliche Lösung zu finden, es sind nur sogenannte Heuristiken.

Heuristik

Bei diesem Begriff herrscht in der Informatik keine Einigung in der Nutzung. Eine gängige und hier verwendete Definition, die auch mit Ideen aus der Psychologie zusammenpasst, bezeichnet als "Heuristik" eine Lösungsstrategie für ein Problem, die meistens eine Lösung findet, aber nicht notwendigerweise eine optimale Lösung. Ein Beispiel illustriert das Vorgehen: Wenn man am Eingang eines Labyrinths ist, kann man den Ausgang finden, indem man mit der rechten Hand an die Wand fasst und dann immer dieser Wand folgt. Diese Handlungsanweisung ist also ein Algorithmus für das Problem, irgendeinen Weg von Eingang zu Ausgang zu finden. Es ist aber nur eine Heuristik für das Problem, den kürzesten Weg von Eingang zu Ausgang zu finden, wie die Abbildung zeigt.
Labyrinth mit Rechte-Hand-Regel
Kürzester Weg Labyrinth

Abbildung: Auf der linken Seite wird der Weg vom Eingang eines Labyrinthes bis zum Ausgang gezeigt, den die "Rechte-Hand-Regel" findet. Rechts wird der kürzeste Weg von Eingang bis Ausgang gezeigt.
Genauso sind die meisten Verfahren des maschinellen Lernens nur Heuristiken – sie finden Muster in den ihnen vorliegenden Daten, es müssen aber nicht die "besten" Muster sein in irgendeinem vorher festgelegten Sinne des Wortes.