Wie Algorithmen Ihr digitales Leben prägen: Ein Leitfaden für Nicht-Programmierer

6

Sie tippen auf einen Bildschirm. Inhalt erscheint. Du hast es nicht gesehen, aber jemand oder etwas hat entschieden, was du dir zeigen möchtest.

Algorithmen sind die unsichtbaren Architekten des modernen Internets. Sie bestimmen Suchrankings, kuratieren soziale Feeds und leiten Ihren Datenverkehr weiter. Aber was ist ein Algorithmus in der realen Welt, jenseits des Fachjargons?

Im einfachsten Fall ist ein Algorithmus ein Schritt-für-Schritt-Rezept. Es handelt sich um eine Reihe von Anweisungen zum Lösen eines Problems oder zum Erledigen einer Aufgabe. Es kann so einfach sein wie das Addieren zweier Zahlen oder so komplex wie ein neuronales Netzwerk, das Ihr Gesicht erkennt. Diese Regeln bilden das Rückgrat jeder Softwareanwendung und stellen sicher, dass Aufgaben effizient ausgeführt werden. Sie sind das „Wie“ hinter dem „Was“.

Um zu verstehen, warum das wichtig ist, müssen wir uns ansehen, wie Computer tatsächlich funktionieren.

Die Schritt-für-Schritt-Logik des Codes

Computer sind gehorsam, aber wörtlich. Sie raten nicht. Wenn Sie möchten, dass ein Computer etwas tut, müssen Sie ein Programm schreiben, das ihm Schritt für Schritt genau sagt, was er tun soll. Der Computer führt diese Anweisungen mechanisch aus.

Wenn Sie dieses Programm schreiben, müssen Sie die Methode auswählen. Diese Methode ist der Algorithmus. Es ist die Technik, mit der die Arbeit erledigt wird.

Bedenken Sie Folgendes: Ein Freund kommt am Flughafen an. Sie müssen zu Ihnen nach Hause kommen. Ihnen stehen vier verschiedene Algorithmen zur Verfügung, denen sie folgen können. Jeder bringt sie zum gleichen Ziel, aber der Weg ist völlig anders.

Der Taxi-Algorithmus
* Gehen Sie zum Taxistand.
* Steigen Sie in ein Taxi.
* Geben Sie dem Fahrer Ihre Adresse.

Der Call-Me-Algorithmus
* Rufen Sie Ihr Mobiltelefon an, wenn das Flugzeug landet.
* Treffen Sie sich außerhalb der Gepäckausgabe.

Der Rent-a-Car-Algorithmus
* Nehmen Sie den Shuttle zum Mietschalter.
* Mieten Sie ein Fahrzeug.
* Fahren Sie mit GPS zu Ihrem Haus.

Der Bus-Algorithmus
* Nehmen Sie den Bus Nr. 70 vor der Gepäckausgabe.
* Umsteigen in Bus 14 an der Main Street.
* Steigen Sie an der Elm Street aus.
* Gehen Sie zwei Blocks nach Norden.

Alle vier funktionieren. Keiner ist „falsch“. Sie unterscheiden sich jedoch stark in Bezug auf Kosten und Zeitaufwand. Das Taxi ist schnell, aber teuer. Der Bus ist günstig, aber langsam. Sie wählen den Algorithmus entsprechend den Umständen aus.

Bei der Software machen wir dasselbe. Wir wählen die Technik aus, die zu den Daten, der Zeit und dem Budget passt.

Warum Sortieren wichtiger ist, als Sie denken

Beim Programmieren gibt es oft viele Möglichkeiten, ein einzelnes Problem zu lösen. Jeder Weg hat Kompromisse. Nirgendwo wird dies deutlicher als beim Sortieren.

Computer verbringen viel Zeit damit, Listen zu sortieren. Namen. Preise. Termine. Suchergebnisse. Wenn die Sortierung ineffizient ist, verlangsamt sich das gesamte System.

Forscher beschäftigen sich seit Jahrzehnten mit Sortieralgorithmen. Hier sind fünf gängige Ansätze:

  • Bin-Sortierung
  • Sortierung zusammenführen
  • Blasensortierung
  • Muschelsortierung
  • Quicksort

Welches verwendest du?

Wenn Sie eine Million Ganzzahlen zwischen 1 und 10 haben, ist die Bin-Sortierung der Gewinner. Bei kleinen Reichweiten geht das schnell und einfach. Wenn Sie eine Million Buchtitel haben, ist Quicksort wahrscheinlich die beste Wahl. Es verarbeitet unstrukturierte Daten besser. Wenn Entwickler die Stärken und Schwächen kennen, können sie das richtige Tool auswählen. Wenn Sie die falsche auswählen, fühlt sich Ihre App träge an.

Die wichtigsten Arten von Algorithmen

Bei Algorithmen geht es nicht nur um das Sortieren. Sie lassen sich in große Kategorien einteilen, je nachdem, was sie erreichen möchten. Von der Verschlüsselung bis zum maschinellen Lernen bestimmt die Art des Algorithmus, wie Daten verarbeitet werden.

Suchalgorithmen

Diese dienen dazu, Informationen aus einer Datenstruktur abzurufen. Denken Sie an eine lineare Suche (Überprüfung jedes Elements) oder eine binäre Suche (wiederholtes Halbieren der Liste). Suchmaschinen und Datenbankabfragen sind stark darauf angewiesen, um in Millisekunden zu finden, was Sie eingegeben haben.

Dynamische Programmieralgorithmen

Dieser Ansatz optimiert komplexe Probleme, indem er sie in einfachere Teilprobleme zerlegt. Dadurch wird vermieden, dass dieselben Daten immer wieder neu berechnet werden. Beispiele hierfür sind die Generierung der Fibonacci-Reihe, die Lösung des Rucksackproblems (Maximierung des Werts in einer begrenzten Tasche) oder die Suche nach dem kürzesten Weg in einem Diagramm, beispielsweise mit den Bellman-Ford- oder Floyd-Warshall-Algorithmen.

Gierige Algorithmen

Greedy-Algorithmen wählen bei jedem Schritt die beste lokale Option. Sie schauen nicht auf das große Ganze. Sie gehen davon aus, dass die beste unmittelbare Wahl zum besten Gesamtergebnis führt. Dies funktioniert gut für Probleme wie das Finden des minimalen Spanning Tree in einem Netzwerk (Kruskals und Prims Algorithmen). Aber manchmal führt die Gier in eine Sackgasse.

Backtracking-Algorithmen

Diese Algorithmen werden zur Erfüllung von Einschränkungen verwendet und erstellen Schritt für Schritt Kandidaten. Wenn ein Kandidat eine Prüfung nicht besteht, macht er einen Rückzieher und versucht einen anderen Weg. Klassische Beispiele sind Sudoku-Löser und das N-Damen-Problem. Es ist im Wesentlichen ein Versuch und Irrtum mit einer Erinnerung an vergangene Fehler.

Algorithmen für maschinelles Lernen

Dadurch können Computer aus Daten lernen, anstatt fest codierten Regeln zu folgen. Sie sagen Ergebnisse voraus oder treffen Entscheidungen. Sie sind unterteilt in überwachtes Lernen (Training anhand gekennzeichneter Daten), unüberwachtes Lernen (Muster in unbeschrifteten Daten finden), verstärkendes Lernen (Lernen durch Belohnung/Strafe) und tiefes Lernen (unter Verwendung neuronaler Netze).

Randomisierte Algorithmen

Manchmal ist der Determinismus zu langsam. Randomisierte Algorithmen führen Zufälligkeit in ihre Logik ein. Sie verwenden probabilistische Ansätze, um Probleme zu lösen, bei denen eine strenge Schritt-für-Schritt-Methode ineffizient ist. Die Monte-Carlo-Methode und Randomized Quicksort sind Paradebeispiele.

Brute-Force-Algorithmen

Dies ist der Ansatz „Alles ausprobieren“. Brute Force untersucht systematisch alle möglichen Lösungen. Es ist einfach. Es garantiert eine Lösung, falls vorhanden. Aber bei großen oder komplexen Problemen ist es äußerst ineffizient. Es ist das digitale Äquivalent dazu, jeden Schlüssel an einem Ring auszuprobieren, bis einer passt.

Diese Kategorien überschneiden sich. Ein Algorithmus kann in verschiedenen Kontexten sowohl dynamisch programmierend als auch gierig sein. Der Schlüssel liegt darin, die Kompromisse zu verstehen.

Der menschliche Einfluss

Wir betrachten Algorithmen oft als kalte Logik. Sie sind. Aber sie sind auch ein Spiegel unserer Entscheidungen. Wenn wir Wert auf Geschwindigkeit legen, nehmen wir Taxis. Wenn wir den Kosten Priorität einräumen, bekommen wir Busse. Wenn wir der Genauigkeit Priorität einräumen, akzeptieren wir möglicherweise Langsamkeit.

In Ihrem digitalen Leben sehen Sie den Code selten. Sie sehen einfach das Ergebnis. Der Feed, der Ihre Stimmung versteht. Die Karte, die den Verkehr vermeidet. Das Suchergebnis, das Ihre Frage beantwortet, bevor Sie mit der Eingabe fertig sind.

Es ist keine Zauberei. Es sind nur Schritte.

Doch wer bestimmt die Schritte? Und wer bestimmt das Gewicht jedes Schrittes?

Das ist die eigentliche Frage.

Wenn Sie das nächste Mal scrollen, fragen Sie sich: Welcher Algorithmus steuert die Show? Und warum hat es diesen Inhalt für Sie ausgewählt?

Die Antwort könnte Ihre Sicht auf den Bildschirm verändern.

Wie Algorithmen Eingaben in reale Ergebnisse umwandeln

Ein Algorithmus ist nur eine Reihe von Anweisungen. Es braucht Input. Es verarbeitet diese Daten. Es spuckt Ausgabe aus. Die Sprache, in der Sie es schreiben – Python, C++, Java – ändert nichts an der Kernmechanik. Auf die Logik kommt es an. Und diese Logik ist immer auf der Suche nach einer optimalen Lösung, auch wenn „optimal“ je nach Aufgabenstellung etwas anderes bedeutet.

Die Ausgabe ist nicht immer eine einzelne Zahl oder eine Ja/Nein-Antwort. Es variiert stark, je nachdem, welches Problem der Code zu lösen versucht.

Problemlösung und Klassifizierung

Einige Algorithmen sind darauf ausgelegt, bestimmte Antworten zu finden. Stellen Sie sich vor, dass Google Maps den kürzesten Weg zwischen zwei Punkten berechnet. Oder ein einfaches Skript, das eine unordentliche Zahlenliste sortiert. Dies sind klassische Problemlösungsergebnisse.

Aber beim maschinellen Lernen ist das Ergebnis oft eine Entscheidung. Ein Spamfilter sortiert nicht nur E-Mails; es klassifiziert sie. Ist diese E-Mail Junk? Ja oder nein. Eine Empfehlungsmaschine listet nicht nur Elemente auf. Es entscheidet darüber, welche Produkte Sie derzeit am wahrscheinlichsten kaufen. Es geht darum, eine Wahl für Sie zu treffen.

Zahlen, Strukturen und Bilder

Manchmal ist das Ergebnis nur eine Rohzahl. Algorithmen verarbeiten Gleichungen, um Wurzeln zu finden. Sie berechnen statistische Durchschnittswerte aus riesigen Datensätzen. In anderen Fällen geben sie Datenstrukturen aus. Ein Sortieralgorithmus ordnet ein Array neu. Ein Diagrammalgorithmus identifiziert verbundene Komponenten und bildet im Wesentlichen Beziehungen innerhalb eines Netzwerks ab.

Dann ist da noch die visuelle Seite. Computergrafikalgorithmen nehmen numerische Rohdaten auf und wandeln sie in Bilder um. Rendering-Engines in Videospielen generieren 2D-Bilder aus 3D-Modellen. Ohne diese Algorithmen wären die Welten, in denen wir spielen, nur Linien auf einem Bildschirm.

Text, Signale und physische Aktionen

Algorithmen zur Verarbeitung natürlicher Sprache erzeugen Text. Sie generieren menschenähnliche Antworten, übersetzen Sprachen oder fassen lange Artikel zusammen. Es ist nicht mehr nur Code; es ist ein Gespräch.

In der Robotik und eingebetteten Systemen ist die Ausgabe physisch. Algorithmen senden Signale an Motoren und Aktoren. Sie könnten ein Licht anmachen. Oder sie koordinieren die komplexen Bewegungen eines Roboterarms am Fließband. Der digitale Unterricht wird zur physischen Aktion.

Das große Ganze

Ganz gleich, ob Sie Muster erkennen, Ausgangsdaten durchforsten oder einen mathematischen Prozess finden – effiziente Algorithmen automatisieren die schwere Arbeit. Sie verarbeiten die Eingaben und Variablen, sodass Sie dies nicht tun müssen.

Die Frage ist nicht wirklich, wie sie funktionieren. Das ist es, wozu sie als nächstes fähig sein werden.

Algorithmen sind ein wesentlicher Bestandteil der Art und Weise, wie Computersysteme Daten verarbeiten. Die meisten Computerprogramme bestehen aus Algorithmen, die bestimmte Anweisungen befolgen, um eine einfache Aufgabe auszuführen.

Dieser Artikel wurde in Verbindung mit KI-Technologie aktualisiert, dann von einem HowStuffWorks-Redakteur auf Fakten überprüft und bearbeitet.

Hier einige interessante Links:

  • Wie künstliche Intelligenz alles völlig verändert
  • whatis.com: Algorithmus
  • Wie Java funktioniert
  • Wie C-Programmierung funktioniert
  • Wie PCs funktionieren
  • Wie die Verschlüsselung funktioniert
  • So funktioniert die Dateikomprimierung

Häufig gestellte Fragen zum Algorithmus

Was ist ein Algorithmus in einfachen Worten?
Wenn Sie einem Computer sagen, was er tun soll, entscheiden Sie auch, wie er es tun soll. Das ist der Algorithmus. Dabei handelt es sich um die grundlegende Technik oder den Satz von Anweisungen, mit denen die Arbeit erledigt wird.

Was ist ein Beispiel für einen Algorithmus?
Ein Rezept ist ein klassisches Beispiel. Es handelt sich um eine endliche Liste von Anweisungen. Ein Algorithmus kann spezifischer sein, aber das Konzept ist dasselbe.

Was sind die drei Teile eines Algorithmus?
Dateneingaben. Datenverarbeitung. Datenausgaben. Man gibt etwas hinein, die Maschine macht etwas und man holt etwas heraus.

Wozu dienen Algorithmen in der Computerprogrammierung?
Algorithmen sind das Rückgrat der Datenverarbeitung. Die meisten Computerprogramme sind lediglich Sammlungen von Algorithmen, die bestimmte Anweisungen befolgen, um einfache Aufgaben auszuführen. Ohne sie gibt es keine Automatisierung. Keine Logik. Nur rohe Hardware, die auf die Richtung wartet.