| Software | Algorithmus

Algorithmus

Einführung

Kuchenbacken hat so viel mit Algorithmen und Software zu tun, dass wir kaum mehr benötigen, um die zentrale Idee zu erklären. Kuchenrezepte beschreiben, welche Zutaten in welcher Reihenfolge wie verarbeitet werden, bis am Ende der Kuchen fertig ist: Eier, Zucker und Butter verrühren, Mehl und Backpulver und eine Prise Salz hinzufügen, den Teig kneten und dann bei 160 Grad für 30 Minuten backen. Es gibt die Zutaten, die einzelnen Zubereitungsschritte und am Ende einen Kuchen. Außerdem braucht es Hilfsmittel, die vielleicht gar nicht im Rezept stehen: Mixer, Rührschüssel und Backofen. Es gibt außerdem die Autorin und den Autor des Rezepts. Es gibt die einzelnen Schritte im Rezept, nämlich Vermengen, Rühren, Warten und Backen. Und es gibt die Bäckerinnen und Bäcker, die diese einzelnen Schritte hintereinander ausführen und sicherstellen, dass jedem Schritt das Ergebnis des vorherigen Schritts zur Verfügung gestellt wird.

In der Softwarewelt sind die Zutaten die sogenannten Eingaben. Der Kuchen ist die Ausgabe. Das Rezept beschreibt einen sogenannten Algorithmus. Algorithmen sind schrittweise Vorschriften, wie Eingaben in Ausgaben überführt werden. Wenn Algorithmen so aufgeschrieben werden, dass sie von einem Computer ausgeführt werden können, nennt man sie Programme oder Software. Der Unterschied zwischen Algorithmen und Programmen ist also, dass Letztere sehr präzise formuliert sein müssen, was bei Rezepten und bei Algorithmen nicht immer der Fall ist: „Eine Prise Salz“ etwa müsste in eine genaue Mengenangabe übersetzt werden.

Rezepte, Algorithmen und Programme beschreiben also einzelne Schritte und legen damit fest, wie Eingaben in Ausgaben überführt werden. Für Bäcker bzw. Programmiererinnen sind diese einzelnen Schritte wesentlich. Bäckereibesitzerinnen und Nutzer von Programmen interessieren diese einzelnen Schritte nun normalerweise nicht. Die interessiert stattdessen nur das Verhältnis von Ein- zu Ausgaben. Wenn man dieses Verhältnis beschreiben will, ohne jedoch die einzelnen Schritte zu erklären, nennt man das Funktion. Funktionen kennt man noch aus dem Mathematikunterricht: Die Addition beispielsweise ist so eine Funktion mit zwei Summanden als Eingabe und der Summe als Ausgabe. Wenn man im Kopf addiert, denkt man gar nicht mehr darüber nach, wie man das macht – die einzelnen Schritte interessieren nicht! Aber wie macht das eine Maschine? Das ist genau die Aufgabe des Algorithmus bzw. des ihn verfeinernden Programms. Algorithmen und Programme beschreiben ganz einfach, wie eine Funktion ausgerechnet wird.

Den Zusammenhang zwischen Funktion, Algorithmus und Programm kann man so zusammenfassen: Die Funktion beschreibt nur den Zusammenhang von Ein- und Ausgabe, ohne genau zu sagen, wie die Ausgabe berechnet wird. Ein Algorithmus definiert die Schritte, mit denen diese Funktion ausgerechnet werden kann. Und das Programm ist die Beschreibung eines Algorithmus in einer für die Maschine verständlichen Form. Mit der Unterscheidung von „was“ und „wie“ kann man auch sagen, dass die Funktion das Problem beschreibt (was?) und der Algorithmus und das Programm die Lösung (wie?).

Für jede Funktion gibt es normalerweise sehr viele unterschiedliche Algorithmen, die die Schritte zu ihrer Berechnung beschreiben. Diese Algorithmen unterscheiden sich darin, wie viel Speicherplatz, Zeit und Energie sie verbrauchen.

Den Zusammenhang zwischen Funktionen, Algorithmen, Programmen, Software, Hardware und auch Maschinenlernen haben wir an anderer Stelle sehr viel ausführlicher beschrieben.

Forschung

Das Projekt „Kann ein Algorithmus im Konflikt moralisch kalkulieren? Ethik und digitale Operationalisierung im Feld der Kindeswohlgefährdung (KAIMo)“ beschäftigt sich mit der Frage, ob und wie Algorithmen bzw. KI-Systeme in Entscheidungsprozessen im Bereich der Kinder- und Jugendhilfe Unterstützung bieten können.

Im Doktorandenprojekt „Szenenverständnis in Echtzeit auf mobilen Geräten“ geht es um die Verarbeitung von dreidimensionaler, visueller Information durch Algorithmen.

In einem weiteren Doktorandenprojekt mit dem Titel „Bildbasierte Früherkennung von Barretts Ösophagus mit halb überwachten Lernalgorithmen“ sollen mit Methoden des Machine Learnings Algorithmen entwickelt werden, die zur Früherkennung von Speiseröhrenkrebs beitragen.