Was ist ein Algorithmus?

Woher weiß eine Software, wer die Liebe meines Lebens ist? Das versprechen zumindest große Dating-Portale – dabei hat das Programm keine Ahnung von Partnerschaft, geschweige denn vom Gefühl der Liebe. Doch es hat ein Instrument, das – richtig angewendet – sehr mächtig sein kann: den Algorithmus. Den möchte ich Ihnen heute genauer vorstellen.

Definition eines Algorithmus

Der Begriff Algorithmus umfasst mittlerweile eine breite Spanne von Verfahren in der Mathematik und der Informatik. Folglich ist eine Definition immer sehr allgemein und liest sich je nach Quelle ein wenig unterschiedlich. Grundsätzlich handelt es sich bei einem Algorithmus um eine formal festgelegte Vorgehensweise, nach der eine definierte Aufgabe gemäß einem strukturierten Schema gelöst wird.

In der Regel gibt es dabei einen Eingabewert, der zu einem Ausgabewert umgeformt wird. Meist erfolgt dieser Vorgang schrittweise, wobei ein einfacher funktionaler Algorithmus auch aus nur einem (Rechen-)Schritt bestehen kann.

Was ist ein Algorithmus? Ein Eingabewert, der zu einem Ausgabewert umgeformt wird.
Was ist ein Algorithmus?

Das ist alles ziemlich theoretisch, weshalb ich an dieser Stelle schon einmal auf die praktischen Anwendungsmöglichkeiten vorgreifen möchte. Ein Algorithmus kann zum Beispiel genutzt werden, um das kleinste gemeinsame Vielfache von zwei Zahlen zu bestimmen.

Er eignet sich aber auch für sehr viel komplexere Aufgaben: Die Reihenfolge der Suchergebnisse bei Google wird ebenfalls von einem Algorithmus bestimmt.

Eigenschaften eines Algorithmus

Zurück zur Theorie: Welche Merkmale muss ein Verfahren haben, um als Algorithmus zu gelten? In der Informatik ist das klar definiert:

  1. Determinismus: Das Verfahren ist determiniert, weil zu einer bestimmten Eingabe jedes Mal dasselbe Resultat ausgegeben wird.
  2. Determiniertheit: Das Schema ist deterministisch, weil es jedem Teilergebnis einen eindeutigen nächsten Schritt zuordnet.
  3. Terminiertheit: Die Anzahl der Schritte ist endlich, das Verfahren liefert nach dem finalen Schritt ein Ergebnis.
  4. Finitheit: Der Algorithmus selbst muss eine endliche Beschreibung haben. Zudem muss der von ihm belegte Speicher zu jeder Zeit begrenzt sein.

Was ist der Unterschied zwischen Algorithmus und Programm?

Die (schrittweise) Umwandlung einer Eingabe zu einer Ausgabe – das erinnert stark an ein Programm. Worin unterscheidet sich also das Algorithmus-Verfahren von einer Programmierung? Kurze Antwort: durch die verwendete Sprache.

Im Detail heißt das: Ein Algorithmus in Form einer Handlungsanweisung oder eines Schemas besteht unabhängig von einer Sprache. Er ist die reine „Anleitung“, bestimmte Schritte nach einer vorgegebenen Struktur durchzuführen. Ein Piktogramm zum „Verhalten im Notfall“ kann somit in gewisser Hinsicht bereits ein Algorithmus sein.

In der Technik liegt der Fokus jedoch auf dem Nutzen von Algorithmen für automatische, maschinelle Prozesse. So ist es mithilfe hochentwickelter Schemata möglich, große Datensätze zu analysieren – zum Beispiel bei Google. Damit das jedoch funktioniert, braucht der Algorithmus eine Sprache. Genauer: eine Programmiersprache.

Aufgabe des Entwicklers ist es, die formalen Algorithmus-Vorgaben in einer synthetischen Sprache wie Java auszudrücken. Hierbei muss er nicht nur die konkrete „Berechnungsvorschrift“ korrekt erfassen, sondern auch die zugehörigen Datenbereiche.

Eine Herausforderung kann es dabei sein, das Schema mit den in der jeweiligen Sprache verfügbaren elementaren Operationen umzusetzen. Die vollständige Formulierung des Algorithmus mit all seinen Datenbereichen in einer Sprache heißt Programm.

Beispiele für Algorithmen

Das Algorithmus-Prinzip ist schon lange bekannt, mindestens seit dem 9. Jahrhundert. Zu dieser Zeit forschte der Gelehrte al-Chwārizmī in Bagdad, sein latinisierter Name: Algorismi. An ihn ist der Fachbegriff angelehnt. Das strukturierte Herangehen an ein Problem ist hingegen vermutlich (fast) so alt wie die Menschheit selbst.

Schließlich lässt sich jedes Kochrezept als eine Art von Algorithmus auffassen. Tatsächliche Relevanz bekam das Prinzip jedoch erst in der Mathematik. Mit dem Gauß-Algorithmus ist es zum Beispiel möglich, beliebige lineare Gleichungssysteme zu lösen. Zugegeben, das ist eher trockene Materie.

Algorithmen finden sich jedoch auch im Alltag. Wenn Sie das nächste Mal vor einer roten Ampel stehen, können Sie das zugrundeliegende Programm wunderbar beobachten. Die Schaltung folgt einer genau definierten Abfolge von wiederkehrenden Befehlen.

An dieser Stelle möchte ich auf die eingangs erwähnte Suche nach der großen Liebe zurückkommen: Auch hierfür gibt es Programme auf Algorithmus-Basis. Die bekannten Dating-Portale analysieren die Eigenschaften ihrer Nutzer und suchen auf dieser Grundlage nach passenden Partnern.

Dabei fließen weit mehr Informationen ein als nur die Körpergröße und das Leibgericht. Die Software analysiert darüber hinaus große Datenmengen, die im Rahmen der Nutzung des Portals entstehen. Das führt zu den aktuell fortschrittlichsten Algorithmus-Entwicklungen: Künstliche Intelligenz und Machine Learning.

Algorithmen und Machine Learning

Machine Learning bezeichnet die Fähigkeit einer Software, selbstständig zu lernen und sich zu verbessern – das war lange Jahre den Menschen vorbehalten. Seit einiger Zeit zeigen sich jedoch auch Programme lernfähig. Die Erfahrungen, die beim Menschen die Grundlage für das Lernen bilden, sind im Fall von Software die Daten. Was macht ein Programm damit – und vor allem: Wie arbeitet die Künstliche Intelligenz?

Der „intelligente“ Part der Software ist der Algorithmus. Er wird oft dazu entwickelt, um Werte sinnvoll zu gruppieren oder Muster zu erkennen. Bestes Beispiel: die Kundensegmentierung auf Grundlage vorhandener Daten.

Größte Herausforderung ist hier die enorme Menge an gespeicherten Informationen (Stichwort: Big Data). Sie per Hand zu durchsuchen, ist unmöglich. Auch ist zu Beginn unklar, welche Gemeinsamkeiten zwischen Kunden überhaupt bestehen könnten. Hier greift die Künstliche Intelligenz. Sie ist auf Grundlage ihrer Basis-Algorithmen in der Lage, neue Strukturen zu erkennen und Muster zu identifizieren.

… wobei das nicht ganz richtig ist: Tatsächlich muss das Programm erst lernen, wie es arbeiten soll. In der sogenannten Trainingsphase richtet der Entwickler die Software so ein, dass sie „lernt, zu lernen“.

Damit sind Unternehmen in der Lage, vorhandene, aber bisher nicht genutzte Daten mehrwertschaffend zu analysieren. Im Bereich CRM wird dadurch beispielsweise eine persönliche und individuelle Kommunikation möglich, die sich in Form steigender Umsätze auszahlt. Weil Sie, bildlich gesprochen, in einem Berg aus Informationen nach wertvollen Erkenntnissen suchen, werden solche Programme auch unter dem Stichwort „Data Mining“ zusammengefasst.

Das Potential von Machine Learning zeigt sich darüber hinaus im digitalen Alltag, zum Beispiel auf Youtube. Hier nehmen die meisten den Algorithmus aus Kundenseite wahr: Er schlägt Videos vor, die zu den Interessengebieten des Nutzers passen. Es muss also nicht immer die Liebe des Lebens sein, die das Programm findet – es gibt viele spannende Möglichkeiten!

Ihr Ansprechparnter: Laurenz Wuttke

Wir entwickeln Künstliche Intelligenz, mit der Sie mehr aus Ihren Kundendaten machen – für wachsende Umsätze und eine nachhaltig hohe Kundenzufriedenheit.
Laurenz Wuttke

Auch interessant für Sie