Was sind Computeralgorithmen und wie funktionieren sie?

Veröffentlicht: 2022-01-29

Wenn Sie sich nicht für Mathematik oder Programmierung interessieren, mag das Wort „Algorithmus“ für Sie griechisch sein, aber es ist einer der Bausteine ​​von allem, 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 liegt daran, dass ich versuche, alles in einfachem Englisch zu erklären, für Leute, die mit Mathematik nicht ganz vertraut sind. Abgesehen davon ist etwas Mathematik im Spiel, und das ist unvermeidlich. Mathe-Freaks können sie gerne in den Kommentaren korrigieren oder besser erklären, aber bitte halten Sie es einfach für die Mathematik-Abgelehnten unter uns.

Bild von Ian Ruotsala

Was ist ein Algorithmus?

Das Wort „Algorithmus“ hat eine ähnliche Etymologie wie „Algebra“, außer dass sich dies auf den arabischen Mathematiker selbst bezieht, al-Khwarizmi (nur ein interessanter Leckerbissen). Ein Algorithmus, für die Nicht-Programmierer unter uns, ist ein Satz von Anweisungen, die eine Eingabe, A, annehmen und eine Ausgabe, B, liefern, die die beteiligten Daten auf irgendeine Weise verändert. Algorithmen haben eine Vielzahl von Anwendungen. In der Mathematik können sie unter anderem bei der Berechnung von Funktionen aus Punkten in einem Datensatz helfen. Abgesehen von ihrer Verwendung bei der Programmierung selbst spielen sie eine wichtige Rolle bei Dingen wie Dateikomprimierung und Datenverschlüsselung.

Eine grundlegende Anleitung

Nehmen wir an, dein Freund trifft dich in einem Lebensmittelgeschäft und du führst ihn zu dir. Du sagst Dinge wie „Komm durch die rechte Tür herein“, „Passiere die Fischabteilung auf der linken Seite“ und „Wenn du die Molkerei siehst, bist du an mir vorbeigegangen.“ Algorithmen funktionieren so. Wir können ein Flussdiagramm verwenden, um Anweisungen basierend auf 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 and Freewheel)

Anzeige

Von START aus würden Sie den Pfad hinuntergehen, und je nachdem, was passiert, folgen Sie dem „Fluss“ zu einem Endergebnis. Flussdiagramme sind visuelle Werkzeuge, die eine Reihe von Anweisungen, die von Computern verwendet werden, verständlicher darstellen können. In ähnlicher Weise helfen Algorithmen dabei, dasselbe mit eher mathematisch basierten Modellen zu tun.

Grafiken

Lassen Sie uns ein Diagramm verwenden, um die verschiedenen Möglichkeiten zu veranschaulichen, wie wir Anweisungen geben können.

Wir können diesen Graphen als Verbindung zwischen all seinen Punkten ausdrücken. Um dieses Bild zu reproduzieren, können wir jemand anderem 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.

Grafik = {(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 einen Graphen mit tausend Punkten oder mehreren Segmenten vor, die alle in alle Richtungen verlaufen. Diese Liste hätte viele Daten, oder? Und dann jedes einzeln verbinden zu müssen, kann mühsam sein.

Methode 2

Wir können auch einen Startpunkt angeben, die Steigung der Linie zwischen ihm und dem nächsten Punkt, und angeben, wo der nächste Punkt zu erwarten ist, indem wir die Standardform von graph={(Startpunkt}, [m1, x1, h1] verwenden ], …, [mn, xn, hn]} Hier steht die Variable „m“ für die Steigung der Geraden, „x“ für die Zählrichtung (ob x oder y) und „h“ für die Richtung viele, um in die genannte Richtung zu zählen.Sie können auch daran denken, nach jeder Bewegung einen Punkt zu zeichnen.

Grafik = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2,5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}

Anzeige

Sie erhalten am Ende dieselbe Grafik. Sie können sehen, dass die letzten drei Begriffe in diesem Ausdruck gleich sind, also können wir das vielleicht kürzen, indem wir einfach sagen: „Wiederhole das dreimal“ auf irgendeine Weise. Nehmen wir an, jedes Mal, wenn Sie die Variable „R“ sehen, bedeutet dies, das Letzte zu wiederholen. Wir können das schaffen:

Grafik = {(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 nicht wirklich wichtig sind, sondern nur die Grafik selbst? Wir können diese letzten drei Abschnitte wie folgt konsolidieren:

Grafik = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2,5,x,2], [-3,x,3]}

Es verkürzt die Dinge ein wenig von wo sie vorher waren.

Methode 3

Versuchen wir es mal anders.

y = 0, 0 ≤ x ≤ 3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2,5x-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. Noch einmal, wenn die Punkte selbst keine Rolle spielen und nur die Grafik eine Rolle spielt, können wir die letzten drei Elemente konsolidieren.

y = 0, 0 ≤ x ≤ 3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2,5x-7,5, 5≤x≤7
y=-3x+29, 7≤x≤10

Nun, welche Methode Sie wählen, hängt von Ihren Fähigkeiten ab. Vielleicht sind Sie gut in Mathe und grafischer Darstellung, also wählen Sie die letzte Option. Vielleicht können Sie gut navigieren, also wählen Sie die zweite Option. Im Bereich der Computer erledigen Sie jedoch viele verschiedene Arten von Aufgaben, und die Fähigkeiten des Computers ändern sich nicht wirklich. Daher werden Algorithmen für die von ihnen ausgeführten Aufgaben optimiert.

Ein weiterer wichtiger Punkt ist, dass jede Methode auf einem Schlüssel beruht. Jede Anleitung ist nutzlos, wenn Sie nicht wissen, was Sie damit anfangen sollen. Wenn Sie nicht wissen, dass Sie jeden Punkt einzeichnen und die Punkte verbinden sollen, bedeutet der erste Satz von Punkten nichts. Wenn Sie nicht wissen, was jede Variable in der zweiten Methode bedeutet, wissen Sie nicht, wie Sie sie 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 verwenden können, was darin enthalten ist. Heutzutage können die meisten Betriebssysteme in .zip-Dateien eintauchen, als wären sie normale Ordner, und alles im Hintergrund erledigen. Auf meinem Windows 95-Rechner vor über einem Jahrzehnt musste ich alles manuell extrahieren, bevor ich mehr als die darin enthaltenen Dateinamen sehen konnte. Das liegt daran, dass das, was als ZIP-Datei auf der Festplatte 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 es auseinanderfalten, was mehr Platz einnimmt. Wenn Sie es nicht benötigen oder transportieren möchten, können Sie es wieder zusammenklappen.

Anzeige

Komprimierungsalgorithmen werden speziell für die Dateitypen angepasst und optimiert, auf die sie abzielen. Audioformate verwenden beispielsweise jeweils eine andere Methode zum Speichern von Daten, die, wenn sie vom Audio-Codec decodiert werden, eine Klangdatei 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: Beide liefern nach dem Dekomprimierungsprozess die Originaldaten in ihrer exakten Form. Verlustbehaftete Audio-Codecs verwenden andere Mittel, um Speicherplatz zu sparen, z. B. das Trimmen von Frequenzen, die von menschlichen Ohren nicht gehört werden können, und das Glätten der Wellenform in Abschnitten, um einige Details zu entfernen. Obwohl wir den Unterschied zwischen einem MP3- und einem CD-Titel vielleicht nicht wirklich hören können, gibt es am Ende definitiv ein Informationsdefizit bei ersterem.

Datenverschlüsselung

Auch bei der Absicherung von Daten- oder Kommunikationsleitungen kommen Algorithmen zum Einsatz. Anstatt Daten so zu speichern, dass sie weniger Speicherplatz benötigen, 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 abgreifen, selbst wenn Sie Dateien löschen, da die Daten selbst immer noch vorhanden sind, obwohl der Weiterleitungsort dahin gegangen ist. Wenn Daten verschlüsselt werden, sieht das Gespeicherte 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 Daten auch speichern und sie als einen anderen Dateityp erscheinen lassen. Bilddateien und Musikdateien eignen sich dafür gut, da sie zum Beispiel ziemlich groß sein können, ohne auffällig zu sein. All dies geschieht mithilfe mathematischer Algorithmen, die eine Art Eingabe nehmen und sie in eine andere, sehr spezifische Art von Ausgabe umwandeln. Weitere Informationen zur Funktionsweise der Verschlüsselung finden Sie in HTG Explains: Was ist Verschlüsselung und wie funktioniert sie?


Algorithmen sind mathematische Werkzeuge, die in der Informatik vielfältige Anwendungsmöglichkeiten bieten. Sie arbeiten daran, einen Weg zwischen einem Startpunkt und einem Endpunkt auf konsistente Weise bereitzustellen, und geben die Anweisungen, um ihm zu folgen. Wissen Sie mehr als das, was wir hervorgehoben haben? Teilen Sie Ihre Erklärungen in den Kommentaren!