Definition

Algorithmus

Ein Algorithmus ist ein Verfahren, das zum Lösen eines Problems oder zum Durchführen einer Berechnung verwendet wird. Algorithmen sind eine exakte Liste von Anweisungen, die bestimmte Aktionen Schritt für Schritt in hardware- oder softwarebasierten Routinen angeben.

Algorithmen sind in allen Bereichen der IT weit verbreitet. In der Mathematik und Informatik bezeichnet ein Algorithmus in der Regel ein kleines Verfahren, das ein wiederkehrendes Problem löst. Algorithmen dienen auch als Spezifikationen für die Datenverarbeitung und spielen eine wichtige Rolle in automatisierten Systemen.

Ein Algorithmus kann das Sortieren von Zahlenmengen oder kompliziertere Aufgaben wie Benutzerempfehlungen in sozialen Medien übernehmen. Algorithmen beginnen in der Regel mit einer Anfangseingabe und Anweisungen, die eine bestimmte Berechnung beschreiben. Wenn die Berechnung ausgeführt wird, erzeugt der Prozess eine Ausgabe.

Wie funktionieren Algorithmen?

Algorithmen können in natürlichen Sprachen, Programmiersprachen, Pseudocode, Flussdiagrammen und Steuertabellen geschrieben sein. Ausdrücke in natürlicher Sprache sind selten, da sie mehrdeutig sind. Programmiersprachen sind die häufigere Wahl.

Algorithmen verwenden eine anfängliche Eingabe zusammen mit einer Reihe von Anweisungen. Bei der Eingabe handelt es sich um die für die Entscheidungsfindung erforderlichen Ausgangsdaten, die in Form von Zahlen oder Wörtern dargestellt werden können. Die Eingabedaten werden einer Reihe von Anweisungen oder Berechnungen unterzogen, die Arithmetik- und Entscheidungsprozesse umfassen. Die Ausgabe ist der letzte Schritt in einem Algorithmus und wird normalerweise als weitere Daten ausgedrückt.

Ein Suchalgorithmus beispielsweise nimmt eine Suchanfrage als Eingabe und lässt sie durch eine Reihe von Anweisungen laufen, um eine Datenbank nach relevanten Elementen für die Anfrage zu durchsuchen. Automatisierungssoftware ist ein weiteres Beispiel für Algorithmen, da die Automatisierung einem Satz von Regeln folgt, um Aufgaben zu erledigen. Automatisierungssoftware besteht aus vielen Algorithmen, die alle dazu dienen, einen bestimmten Prozess zu automatisieren.

Was sind die verschiedenen Arten von Algorithmen?

Es gibt verschiedene Arten von Algorithmen, die alle unterschiedliche Aufgaben erfüllen sollen. Algorithmen führen zum Beispiel Folgendes aus:

  • Suchmaschinen-Algorithmus. Dieser Algorithmus nimmt Suchzeichenfolgen von Schlüsselwörtern und Operatoren als Eingabe, sucht in der zugehörigen Datenbank nach relevanten Webseiten und gibt die Ergebnisse zurück.
  • Verschlüsselungsalgorithmus. Dieser Rechenalgorithmus wandelt Daten nach bestimmten Aktionen um, um sie zu schützen. Ein symmetrischer Schlüsselalgorithmus, wie zum Beispiel der Data Encryption Standard, verwendet denselben Schlüssel zum Ver- und Entschlüsseln von Daten. Solange der Algorithmus ausreichend ausgeklügelt ist, kann niemand, der den Schlüssel nicht kennt, die Daten entschlüsseln.
  • Greedy-Algorithmus. Dieser Algorithmus löst Optimierungsprobleme, indem er die lokal optimale Lösung findet, in der Hoffnung, dass es sich dabei um die optimale Lösung auf globaler Ebene handelt. Er garantiert jedoch nicht die optimalste Lösung.
  • Rekursiver Algorithmus. Dieser Algorithmus läuft immer wieder durch, bis er ein Problem gelöst hat. Rekursive Algorithmen rufen sich selbst mit einem kleineren Wert auf, wenn eine rekursive Funktion aufgerufen wird.
  • Backtracking-Algorithmus. Dieser Algorithmus findet eine Lösung für ein gegebenes Problem in inkrementellen Ansätzen und löst es Stück für Stück.
  • Divide-and-Conquer-Algorithmus. Dieser gängige Algorithmus ist in zwei Teile unterteilt. Der eine Teil unterteilt ein Problem in kleinere Teilprobleme. Der zweite Teil löst diese Probleme und kombiniert sie dann zu einer Lösung.
  • Algorithmus für dynamische Programmierung. Dieser Algorithmus löst Probleme, indem er sie in Teilprobleme zerlegt. Die Ergebnisse werden dann gespeichert, um sie bei zukünftigen entsprechenden Problemen anzuwenden.
  • Brute-Force-Algorithmus. Dieser Algorithmus iteriert alle möglichen Lösungen für ein Problem blind und sucht nach einer oder mehreren Lösungen für eine Funktion.
  • Sortieralgorithmus. Sortieralgorithmen ordnen Datenstrukturen auf der Grundlage eines Vergleichsoperators neu zu, um eine neue Reihenfolge für die Daten festzulegen.
  • Hashing-Algorithmus. Dieser Algorithmus nimmt Daten und wandelt sie in eine einheitliche Nachricht mit einem Hash-Wert
  • Randomisierter Algorithmus. Dieser Algorithmus reduziert Laufzeiten und zeitliche Komplexität. Er verwendet Zufallselemente als Teil seiner Logik.

Arten von Algorithmen im Übrblick
Abbildung 1: Elf verschiedene Arten von Algorithmen im Überblick.

Was können Algorithmen?

Das maschinelle Lernen ist ein gutes Beispiel, da es mehrere Algorithmen verwendet, um Ergebnisse vorherzusagen, ohne ausdrücklich dafür programmiert zu sein. Beim maschinellen Lernen wird überwachtes oder unüberwachtes Lernen eingesetzt. Überwachtes Lernen heißt, dass Datenwissenschaftler komplexe Algorithmen mit markierten Trainingsdaten versorgen und die Variablen definieren, die der Algorithmus auf Korrelationen untersuchen soll. Sowohl die Eingabe als auch die Ausgabe des Algorithmus sind festgelegt.

Unüberwachtes maschinelles Lernen umfasst Algorithmen, die auf nicht markierten Daten trainieren. Algorithmen für unüberwachtes maschinelles Lernen durchsuchen unmarkierte Daten, um nach Mustern zu suchen, die zur Gruppierung von Datenpunkten in Teilmengen verwendet werden können. Die meisten Arten des Deep Learning, einschließlich neuronaler Netze, sind unbeaufsichtigte Algorithmen.

Das in der künstlichen Intelligenz verwendete maschinelle Lernen beruht ebenfalls auf Algorithmen. Auf maschinellem Lernen basierende Systeme können jedoch inhärente Verzerrungen in den Daten aufweisen, die den Algorithmus für maschinelles Lernen speisen. Dies kann zu Systemen führen, die nicht vertrauenswürdig und potenziell schädlich sind.

Diese Definition wurde zuletzt im November 2022 aktualisiert

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close