Ein Algorithmus ist eine Vorschrift zur Lösung einer Klasse von Problemen. Er besteht aus einer endlichen Folge von Schritten, mit der aus bekannten Eingangsdaten neue Ausgangsdaten eindeutig berechnet werden können.
Der Mensch ist genau genommen ein Algorithmus.
“Wer einen Fehler macht und ihn nicht korrigiert, begeht einen zweiten.”
— Die Quelle ist der chinesische Philosoph Konfuzius.
Der simpelste Algorithmus des Menschen, wenn man darunter eine grundlegende, wiederholbare Verhaltens- oder Entscheidungsregel versteht, lässt sich in der Form von Reiz-Reaktion-Mustern beschreiben. Diese sind die einfachsten Informationsverarbeitungsmechanismen, die in der Neurologie und Psychologie bekannt sind.
Reiz-Reaktions-Schema:
- Input (Reiz): Eine äußere oder innere Stimulation tritt auf (z.B. ein Geräusch, ein Lichtreiz oder ein emotionales Gefühl).
- Verarbeitung (Verknüpfung): Der Reiz wird von sensorischen Systemen aufgenommen und im Gehirn verarbeitet. Auf Basis von Erfahrung, Instinkten oder einfachen Reflexen wird eine Reaktion gewählt.
- Output (Reaktion): Eine physische, emotionale oder kognitive Reaktion erfolgt (z.B. Bewegung, Gedanken, Emotionen).
Beispiel:
- Reiz: Ein lautes Geräusch.
- Verarbeitung: Das Gehirn erkennt das Geräusch als potenzielle Gefahr.
- Reaktion: Du zuckst zusammen oder schaust in die Richtung des Geräuschs.
Reflexe als einfachste Algorithmen:
Reflexe sind die simpelsten neuronalen Schaltkreise, die nach diesem Reiz-Reaktions-Schema arbeiten. Zum Beispiel der Kniesehnenreflex (der sog. “Patellarsehnenreflex”):
- Reiz: Ein Schlag auf die Sehne unterhalb der Kniescheibe.
- Verarbeitung: Nervenbahnen übertragen die Information direkt an das Rückenmark.
- Reaktion: Die Streckung des Beins als unbewusster Reflex.
Hier eine kurze Zusammenfassung der angeborenen Reflexe:
- Saugreflex: Babys saugen automatisch, wenn etwas ihren Mund berührt.
- Suchreflex: Berührt man die Wange, dreht das Baby den Kopf und sucht nach Nahrung.
- Greifreflex: Berührt man die Handfläche, schließt das Baby die Finger.
- Moro-Reflex (Schreckreflex): Bei plötzlichen Geräuschen oder Bewegungen streckt das Baby die Arme aus und zieht sie wieder an.
- Tretreflex: Wenn die Füße festen Boden berühren, macht das Baby Gehbewegungen.
- Babinski-Reflex: Beim Streichen über die Fußsohle spreizen sich die Zehen.
- Galant-Reflex: Berührt man den Rücken, krümmt sich das Baby zur Seite der Berührung.
Diese Reflexe verschwinden meist in den ersten Lebensmonaten, da das Nervensystem reift.
Entscheidungsmuster auf kognitiver Ebene:
In der menschlichen Kognition gibt es auch einfache Entscheidungsalgorithmen, wie das Wenn-Dann-Prinzip, das z.B. bei routinemäßigen Handlungen oder bei der kognitiven Heuristik zur Anwendung kommt:
- Wenn: Du bist hungrig.
- Dann: Suche nach Nahrung.
Insgesamt stellen diese einfachen, automatischen oder reflexiven Verhaltensmuster die grundlegendste Form von „Algorithmen“ dar, die in der menschlichen Informationsverarbeitung und Reaktionssteuerung wirken.
Du bist immer eine Entscheidung entfernt von einem völlig anderen Leben!
Der Algorithmus “wenn, dann” wird auch als bedingte Anweisung* bezeichnet und wird in der Informatik zur Steuerung von Abläufen verwendet. Er funktioniert folgendermaßen*
- Bedingte Anweisung*: Wenn eine bestimmte Bedingung erfüllt ist, führe eine bestimmte Aktion aus; ansonsten führe eine andere Aktion aus oder setze den Ablauf fort.
- Schleifen: Wiederholung von Anweisungen basierend auf einer Bedingung.
- Suche und Sortierung: Algorithmen, die Daten nach bestimmten Kriterien ordnen oder nach spezifischen Elementen suchen.
- Backtracking-Algorithmen: Ein Algorithmus, der systematisch nach einer Lösung sucht, indem er alle möglichen Optionen durchgeht und bei Fehlschlägen zurückgeht und eine andere Option ausprobiert.
- Divide-and-Conquer, Teile und Herrsche: Ein Algorithmus, der ein Problem in kleinere Teilprobleme aufteilt, diese separat löst und dann die Lösungen kombiniert, um das ursprüngliche Problem zu lösen.
- Rekursion: Ein Algorithmus, der sich selbst aufruft, um eine Lösung zu finden.
- Zufallsalgorithmen: Algorithmen, die auf zufälligen Entscheidungen basieren oder Zufallszahlen für verschiedene Berechnungen verwenden.
- Dynamische Programmierung: Ein Ansatz zur Lösung komplexer Probleme, bei dem Probleme in kleinere Teilprobleme aufgeteilt werden, um Lösungen zu finden und Zwischenergebnisse zu speichern, um Rechenzeit zu sparen.
- Greedy-Algorithmen: Ein Greedy-Algorithmus trifft in jedem Schritt die beste lokale Entscheidung, um den sofortigen Nutzen zu maximieren, ohne den gesamten Lösungsraum zu betrachten. Dieser Ansatz gewährleistet jedoch nicht immer die Erreichung einer globalen optimalen Lösung.
- Fuzzy-Logik-Algorithmen: Ein Ansatz zur Verarbeitung unscharfer Informationen, bei dem Werte zwischen “wahr” und “falsch” liegen können, um komplexe Entscheidungen zu treffen.
- RANSAC (RANdom SAmple Consensus): Ein Algorithmus, der in der Computer Vision und Bildverarbeitung verwendet wird, um aus einer Menge verrauschter Daten robuste Schätzungen zu machen.
- Evolutionäre Algorithmen: Diese Algorithmen sind von biologischen Evolutionsprozessen inspiriert und verwenden Methoden wie Mutation, Rekombination und natürliche Selektion, um Lösungen für Optimierungsprobleme zu finden.
- Approximationsalgorithmen: Sind Algorithmen, die in kurzer Zeit annähernde Lösungen für Probleme liefern, die schwer exakt zu lösen sind. Sie bieten eine akzeptable Lösung, aber nicht unbedingt die optimale.
Bitte beachte, dass die Komplexität von Algorithmen oft relativ und situationsabhängig ist. Je nach Anwendung und Problemstellung können unterschiedliche Algorithmen als komplexer oder einfacher wahrgenommen werden.
Bedingte Anweisung (If-Then)
Wenn es regnet, dann nimm einen Regenschirm.
Bedingte Anweisung (If-Else)
Wenn es regnet, dann nimm einen Regenschirm; sonst zieh nur Schuhe an.
Schleifen
Putze jeden Zahn, bis alle sauber sind.
Suche und Sortierung
Sortiere Bücher alphabetisch und suche ein bestimmtes Buch im Regal.
Backtracking
Finde den Weg aus einem Labyrinth, indem du bei Sackgassen umkehrst und einen anderen Weg probierst.
Divide-and-Conquer
Teile eine große Hausaufgabe in kleine Teile, löse sie einzeln und füge die Ergebnisse zusammen.
Rekursion
Öffne eine Matroschka-Puppe, indem du jede kleinere Puppe auf die gleiche Weise öffnest.
Zufallsalgorithmen
Würfle, um zu entscheiden, wer zuerst im Spiel dran ist.
Dynamische Programmierung
Plane die schnellste Route zur Schule, indem du Teilstrecken berechnest und speicherst.
Greedy-Algorithmen
Nimm beim Einkaufen immer den billigsten Apfel, auch wenn es nicht die beste Gesamtwahl ist.
Fuzzy-Logik-Algorithmen
Entscheide, ob es „eher warm“ oder „eher kalt“ ist, statt nur „warm“ oder „kalt“.
RANSAC
Finde die beste gerade Linie auf einem Blatt mit vielen krummen Strichen und Punkten.
Evolutionäre Algorithmen
Züchte die besten Pflanzen, indem du die stärksten auswählst und kombinierst.
Approximationsalgorithmen
Schätze schnell, wie viele Kekse in eine Dose passen, ohne sie genau zu zählen.