Inhaltsverzeichnis:
Algorithmus
Dieser Begriff ist heutzutage in aller Munde, allerdings wissen viele nicht, was das genau ist. Oder haben Angst, es sei “zu technisch” um es zu verstehen.
Der Begriff wird meist automatisch in Zusammenhang mit Informatik oder Mathematik gebracht, obwohl er diesen Zusammenhang nicht zwingend haben muss. Allgemein gesagt stellt ein Algorithmus eine Reihe von Schritten dar, die zur Durchführung einer Aufgabe benötigt werden.
Algorithmen im täglichen Leben
Jeder Mensch nutzt Algorithmen im täglichen Leben. Und das sogar völlig ohne Smartphone oder Computer.
Nehmen wir zum Beispiel ein Kochrezept. Man nimmt Zutaten, bereitet diese Schritt für Schritt zu und bekommt am Ende ein leckeres (zumindest meistens) Gericht. Man hat also einen Input (die Zutaten), schrittweise Anweisungen was mit dem Input zu tun ist (die Kochanleitung) und am Ende ein Ergebnis (das Gericht). Nimmt man beim nächsten mal die selben Zutaten , führt die selben Kochschritte durch dann kommt auch jedes mal das gleiche Gericht dabei raus. Bei gleichbleibendem Input können wir also immer dasselbe Ergebnis erwarten.
Algorithmen in dieser Form begegnen uns überall. Auch Bedienungs- oder Aufbauanleitungen, wie beispielsweise von Ikea, sind gute Beispiele für Algorithmen die wahrscheinlich jeder Mensch schonmal genutzt hat.
Algorithmen in der Informatik
Trotz ihres Vorkommens außerhalb von Computern & Co, sind sie insbesondere in der Informatik ein zentrales Thema. Um jegliche Art von Aufgabe zu automatisieren muss ein Computer konkrete Anweisungen haben wie diese Aufgaben zu lösen sind. Diese Anweisung ist der Algorithmus, den ein Entwickler schreibt. Darin stellt er sicher, dass der Computer ein Problem zuverlässig und “ohne Rückfragen” lösen kann.
Algorithmen besitzen einige charakteristische Eigenschaften: [1]
- Allgemeingültigkeit
Algorithmen entwickelt man nicht für die Lösung von konkreten Problemen, sondern nur für Probleme mit gleichartigen Aufgabenstellungen. Beispielsweise schreibt man den Algorithmus des Navigationssystems nicht um immer die schnellste Route von Berlin nach Hamburg zu berechnen, sondern um die schnellste Route zwischen einem Punkt A und B zu berechnen, wobei A und B beliebige Werte annehmen können. - Ausführbarkeit
Der Algorithmus muss für den Computer ausführbar sein. Das bedeutet, dass jeder Schritt eindeutig und der Folgeschritt immer klar sein muss. Eine Anweisung “Wenn die Route zu lange dauert, verwerfe sie” kann der Computer nicht verarbeiten, er braucht eine eindeutige, ausführbare Anweisung wie z.B. “Wenn die Route A im Vergleich zu Route B über 30 Minuten länger dauert, lösche Route A”. - Endlichkeit
Der Algorithmus muss endlich sein, das heißt er muss an einem bestimmten Punkt zu einem Ende kommen und ein Ergebnis liefern. Diese Endlichkeit muss beim Entwickeln aktiv berücksichtigt und ggf. bewusst programmiert werden. Insbesondere bei ändernden Verkehrsbedingungen könnte ein Navigationsalgorithmus dauerhaft neu rechnen, und so nie eine finale Route liefern können.
Zum Schreiben von Algorithmen können verschiedene Verfahren angewandt werden, welche hier vorerst nicht weiter aufgeführt werden. Ziel der verschiedenen Verfahren ist es, einen Algorithmus möglichst effizient zu gestalten und dabei gleichzeitig ein möglichst korrektes und genaues Ergebnis zu bekommen.
Teilweise konkurrieren diese Anforderungen jedoch miteinander. Beim Berechnen von Routen steigt die Menge der zu berechnenden Routenmöglichkeiten mit der Komplexität der gewünschten Route (z.B. durch hinzugefügte Zwischenziele) exponential in die Höhe. Auch wenn eine solche Berechnung am Ende ein exaktes Ergebnis hinsichtlich der schnellsten Route liefern könnte, würde die Berechnung sehr lange dauern. Nimmt man jetzt noch weitere Attribute dazu, welche die Berechnung der schnellsten Strecke beeinflussen könnten, z.B. Verkehr und Baustellen, kann man sich vorstellen, dass die Dauer für eine solche Berechnung ein Ausmaß annehmen kann, welches für einen Nutzer des Navigationssystems nicht mehr akzeptabel ist. In diesem Fall würde man Abstriche bei der Genauigkeit des Ergebnisses zu Gunsten der Effizienz des Algorithmus machen.
Dennoch sind es genau diese Ziele der Algorithmen, Effizienz und Ergebnisgenauigkeit, die ihren zentralen Einsatz in der Informatik begründen. Maschinen werden gebaut um repetitive Aufgaben zu automatisieren. Das führt zeitgleich zu einer Effizienzsteigerung, der Minimierung von Fehlern und gleichbleibenden Ergebnissen. Das Ziel beim Einsatz von Algorithmen ist somit die effiziente und effektive Nutzung von Ressourcen. Diese können von beliebiger Art sein, also Menschen, Maschinen oder auch Zeit. Daher ist ihr Einsatz bei weitem nicht nur auf die Informatik beschränkt, sondern finden in vielen Bereichen, beispielsweise der Wirtschaft und der Medizin, ihren Einsatz.
Einsatz von Algorithmen
Insbesondere in den letzten Jahren werden Algorithmen auch immer häufiger zur Entscheidungsunterstützung genutzt. Manche Berechnungen sind für das menschlichen Gehirn zu komplex. Also werden Algorithmen eingesetzt und unterstützen mit den Ergebnissen der Berechnung die Entscheidungsfindungen. In Zeiten von Big Data sprengt das aber die Fähigkeit des menschlichen Gedächtnisses, aus diesen Unsummen von Daten Muster, auch Segmente oder Cluster genannt, zu erkennen. Und genau hier kommen Algorithmen zum Einsatz. Sie sind in der Lage, aus großen Datenmengen Muster zu erkennen, die dann zur Analyse und Ableitung von Handlungsempfehlungen zur Verfügung stehen.
Plant man eine Reise mit dem Auto so verbringt man heute keine Stunden mehr vor einem Atlas, sondern bekommt in Sekundenschnelle eine geeignete Route. Neben der Arbeitserleichterung von einzelnen Individuen können Algorithmen aber auch Leben retten oder die Umwelt verbessern. Sucht man dringend eine passende Organspende, ist ein händischer Abgleich von Datenbanken und Verfügbarkeiten vermutlich langsam, während ein Algorithmus diese Aufgabe in einem Bruchteil der Zeit vornehmen kann. Über Messgeräte und im Hintergrund laufende Algorithmen können bedrohliche Feinstaubwerte Warnungen auslösen, welche die Entscheidungsgrundlage für schnelle Gegenmaßnahmen bieten.
Ob im privaten, wirtschaftlichen, gesundheitlichen oder natürlichem Umfeld, Algorithmen sind aus unserem Leben heute nicht mehr wegzudenken und haben in den letzten Jahren zu einem enormen Fortschritt der Gesellschaft beigetragen.
[1] Von Rimscha, M. (2010). Algorithmen kompakt und verständlich (2. Aufl.). Wiesbaden, Deutschland: Vieweg und Teubner.
Dieser Text wurde von Nora geschrieben.