Was sind Computer-Algorithmen und wie funktionieren sie?
Wenn Sie sich nicht mit Mathematik oder Programmierung beschäftigen, ist das Wort „Algorithmus“ für Sie vielleicht griechisch, aber es ist einer der Bausteine für alles, was Sie zum Lesen dieses Artikels verwenden. Hier ist eine kurze Erklärung, was sie sind und wie sie funktionieren.
Haftungsausschluss: Ich bin kein Mathematik- oder Informatiklehrer, daher sind nicht alle Begriffe, die ich verwende, technisch. Das ist so, weil ich versuche, alles in einfachem Englisch zu erklären, weil die Leute mit Mathematik nicht vertraut sind. Davon abgesehen, gibt es etwas Mathematik, und das ist unvermeidlich. Mathe-Freaks, bitte korrigieren oder erklären Sie es besser in den Kommentaren, aber bitte halten Sie es einfach für die mathematisch uninteressanten Menschen.
Bild von Ian Ruotsala
Was ist ein Algorithmus??
Das Wort "Algorithmus" hat eine Etymologie, die der "Algebra" ähnelt, mit der Ausnahme, dass sich dies auf den arabischen Mathematiker Al-Khwarizmi (nur ein interessanter Leckerbissen) bezieht. Ein Algorithmus für die Nichtprogrammierer unter uns ist ein Satz von Anweisungen, die eine Eingabe A annehmen und eine Ausgabe B bereitstellen, die die beteiligten Daten auf irgendeine Weise ändert. Algorithmen haben eine Vielzahl von Anwendungen. In der Mathematik können sie dabei helfen, Funktionen aus Punkten in einem Datensatz zu berechnen, und zwar aus viel fortgeschritteneren Dingen. Abgesehen von ihrer Verwendung bei der Programmierung selbst spielen sie eine wichtige Rolle bei der Dateikomprimierung und Datenverschlüsselung.
Eine grundlegende Anleitung
Nehmen wir an, Ihr Freund trifft Sie in einem Lebensmittelgeschäft und Sie führen ihn auf Sie zu. Du sagst Dinge wie „Komm durch die Türen auf der rechten Seite“, „Durch die Fischabteilung links“ und „Wenn du die Molkerei siehst, passierst du mich.“ Algorithmen funktionieren so. Wir können ein Flussdiagramm verwenden, um Anweisungen anhand von Kriterien zu veranschaulichen, die wir im Voraus kennen oder während des Prozesses herausfinden.
(Bild mit dem Titel "Icebreaking Routine" EDIT: mit freundlicher Genehmigung von Trigger und Freilauf)
Von START aus würden Sie den Pfad hinuntergehen, und abhängig davon, was passiert, folgen Sie dem „Fluss“ bis zum Endergebnis. Flussdiagramme sind visuelle Werkzeuge, die verständlicher eine Reihe von Anweisungen darstellen, die von Computern verwendet werden. In ähnlicher Weise helfen Algorithmen mit mehr mathematisch basierten Modellen.
Diagramme
Verwenden Sie eine Grafik, um die verschiedenen Wege zu veranschaulichen, auf die wir Richtungen geben können.
Wir können diesen Graphen als Verbindung zwischen allen Punkten ausdrücken. Um dieses Bild zu reproduzieren, können wir jemandem eine Reihe von Anweisungen geben.
Methode 1
Wir können dies als eine Reihe von Punkten darstellen, und die Informationen würden der Standardform von graph = (x1, y1), (x2, y2),…, (xn, yn) folgen..
graph = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)
Es ist ziemlich einfach, jeden Punkt nacheinander zu zeichnen und mit dem vorherigen Punkt zu verbinden. Stellen Sie sich jedoch ein Diagramm mit tausend Punkten oder mehreren Segmenten vor, die in alle Richtungen verlaufen. Diese Liste hätte viele Daten, oder? Und dann kann es schmerzhaft sein, jedes einzeln verbinden zu müssen.
Methode 2
Wir können auch einen Startpunkt, die Steigung der Linie zwischen ihm und dem nächsten Punkt, angeben und angeben, wo der nächste Punkt zu erwarten ist, wobei die Standardform von graph = (Startpunkt, [m1, x1, h1) verwendet wird ],…, [Mn, xn, hn] Hier stellt die Variable 'm' die Steigung der Linie dar, 'x' die Richtung, in der gezählt werden soll (ob x oder y), und 'h' sagt Ihnen, wie Sie können auch daran denken, nach jeder Bewegung einen Punkt zu zeichnen.
Graph = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]
Sie erhalten am Ende das gleiche Diagramm. Sie können sehen, dass die letzten drei Ausdrücke in diesem Ausdruck die gleichen sind. Daher können wir das möglicherweise reduzieren, indem wir einfach "Wiederholen Sie das dreimal" in gewisser Weise sagen. Nehmen wir einmal an, dass jedes Mal, wenn Sie die Variable 'R' sehen, das letzte zu wiederholen. Wir können das schaffen:
Graph = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [R = 2]
Was ist, wenn die einzelnen Punkte keine Rolle spielen und nur der Graph selbst? Wir können diese letzten drei Abschnitte wie folgt konsolidieren:
Graph = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]
Es ist etwas kürzer als vorher.
Methode 3
Versuchen wir es auf andere Weise.
y = 0, 0 ≤ x ≤ 3
x = 0, 0 ≤ y ≤ 3
y = x, 3 ≤ x ≤ 5
y = 2,5 × 7,5, 5 ≤ x ≤ 7
y = -3x + 29, 7 ≤ x ≤ 8
y = -3x + 29, 8 ≤ x ≤ 9
y = -3x + 29, 9 ≤ x ≤ 10
Hier haben wir es rein algebraisch. Wenn die Punkte selbst keine Rolle spielen und nur das Diagramm, können wir die letzten drei Elemente zusammenfassen.
y = 0, 0 ≤ x ≤ 3
x = 0, 0 ≤ y ≤ 3
y = x, 3 ≤ x ≤ 5
y = 2,5 × 7,5, 5 ≤ x ≤ 7
y = -3x + 29, 7 ≤ x ≤ 10
Welche Methode Sie wählen, hängt nun von Ihren Fähigkeiten ab. Vielleicht sind Sie mit Mathematik und Grafik gut, also wählen Sie die letzte Option. Vielleicht können Sie gut navigieren, also wählen Sie die zweite Option. Im Computerbereich erledigen Sie jedoch viele verschiedene Aufgaben, und die Fähigkeit des Computers ändert sich nicht wirklich. Daher werden Algorithmen für die von ihnen erledigten Aufgaben optimiert.
Ein weiterer wichtiger Punkt ist, dass jede Methode auf einem Schlüssel beruht. Jede Anweisung ist unbrauchbar, es sei denn, Sie wissen, was mit ihnen zu tun ist. Wenn Sie nicht wissen, dass Sie jeden Punkt plotten und die Punkte verbinden sollen, bedeutet der erste Punktsatz nichts. Wenn Sie nicht wissen, was jede Variable in der zweiten Methode bedeutet, können Sie sie nicht anwenden, ähnlich wie der Schlüssel zu einer Chiffre. Dieser Schlüssel ist auch ein wesentlicher Bestandteil der Verwendung von Algorithmen, und häufig wird dieser Schlüssel in der Community oder über einen "Standard" gefunden.
Dateikomprimierung
Wenn Sie eine ZIP-Datei herunterladen, extrahieren Sie den Inhalt, sodass Sie alles darin enthaltene verwenden können. Heutzutage können die meisten Betriebssysteme in ZIP-Dateien wie in normalen Ordnern eintauchen und erledigen alles im Hintergrund. Auf meinem Windows 95-Computer vor über einem Jahrzehnt musste ich alles manuell extrahieren, bevor ich mehr als die Dateinamen sehen konnte. Dies liegt daran, dass das, was auf der Festplatte als ZIP-Datei gespeichert war, nicht in einer verwendbaren Form war. Denken Sie an eine ausziehbare Couch. Wenn Sie es als Bett verwenden möchten, müssen Sie die Kissen entfernen und ausklappen, wodurch mehr Platz benötigt wird. Wenn Sie es nicht brauchen oder transportieren möchten, können Sie es wieder zusammenfalten.
Kompressionsalgorithmen werden speziell für die Dateitypen angepasst, auf die sie abzielen. Audioformate verwenden beispielsweise jeweils eine andere Methode zum Speichern von Daten, die bei der Decodierung durch den Audio-Codec eine Sounddatei ergeben, die der ursprünglichen Wellenform ähnelt. Weitere Informationen zu diesen Unterschieden finden Sie in unserem vorherigen Artikel "Was sind die Unterschiede zwischen all diesen Audioformaten?". Verlustfreie Audioformate und ZIP-Dateien haben eines gemeinsam: Sie liefern beide die Originaldaten in ihrer exakten Form nach dem Dekomprimierungsprozess. Verlustreiche Audiocodecs verwenden andere Mittel, um Speicherplatz zu sparen, z. B. das Trimmen von Frequenzen, die von menschlichen Ohren nicht gehört werden können, und zum Glätten der Wellenform in Abschnitten, um Details zu beseitigen. Obwohl wir den Unterschied zwischen einem MP3- und einem CD-Titel möglicherweise nicht wirklich hören können, gibt es bei dem ersteren definitiv ein Informationsdefizit.
Datenverschlüsselung
Algorithmen werden auch zur Absicherung von Daten oder Kommunikationswegen verwendet. Anstatt Daten so zu speichern, dass weniger Speicherplatz benötigt wird, werden sie auf eine Weise gespeichert, die von anderen Programmen nicht erkannt werden kann. Wenn jemand Ihre Festplatte stiehlt und beginnt, sie zu scannen, kann er Daten auch dann abholen, wenn Sie Dateien löschen, da die Daten selbst noch vorhanden sind, obwohl der Weiterleitungsort nicht vorhanden ist. Wenn Daten verschlüsselt werden, sieht das, was gespeichert ist, nicht so aus, wie es ist. Es sieht normalerweise zufällig aus, als hätte sich die Fragmentierung im Laufe der Zeit aufgebaut. Sie können auch Daten speichern und als einen anderen Dateityp anzeigen lassen. Bilddateien und Musikdateien sind dafür gut, da sie recht groß sein können, ohne zum Beispiel Verdacht zu erregen. All dies wird durch den Einsatz mathematischer Algorithmen erreicht, die eine Art von Eingabe verwenden und in eine andere, sehr spezielle Art von Ausgabe konvertieren. Weitere Informationen zur Funktionsweise der Verschlüsselung finden Sie unter HTG-Erklärungen: Was ist Verschlüsselung und wie funktioniert sie??
Algorithmen sind mathematische Werkzeuge, die in der Informatik vielfältige Einsatzmöglichkeiten bieten. Sie arbeiten, um einen Pfad zwischen einem Start- und einem Endpunkt auf konsistente Weise bereitzustellen, und geben Anweisungen, um diesem zu folgen. Mehr wissen als das, was wir hervorgehoben haben? Teilen Sie Ihre Erklärungen in den Kommentaren mit!