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.