Algorithmus


Ein Algorithmus ist eine Handlungsvorschrift, mit der verschiedene, meist mathematische Probleme gelöst werden können.

Anwendungsfälle

Ein Beispiel aus dem täglichen Leben ist ein Rezept, nach dem ein Kuchen gebacken wird. Durch Befolgung der einzelnen Schritte im Rezept bekommt man am Ende den gewünschten Kuchen. Bekannte Anwendungen sind auch Suchen und Sortieren. Wie muss man zum Beispiel vorgehen, um am schnellsten einen bestimmten TV-Sender zu finden, wenn alle alphabetisch sortiert sind? Auch die Frage nach dem kürzesten Weg in einem Graphen kann mit Algorithmen gelöst werden.

Namentlich zu erwähnen sind im Zusammenhang mit Suchmaschinenoptimierung der PageRank Algorithmus sowie der HITS Algorithmus, die zur Bewertung von Webseiten dienen und die Grundlage der Algorithmen von Google und Co. bilden.

Eigenschaften

Determiniertheit

Man spricht von einem deterministischen Algorithmus, wenn in jedem Augenblick der Durchführung maximal eine mögliche Fortsetzung existiert. Der nächste Schritt ist also eindeutig. Gibt es keine mögliche Fortsetzung, terminiert der Algorithmus. Wenn zu einem Zeitpunkt zwei oder mehr mögliche nächste Schritte existieren, zwischen denen frei gewählt werden kann, dann ist der Algorithmus nicht-deterministisch. Ebenso, wenn an einer Stelle zufällig gewählt werden kann.

Determinismus

Wenn ein Algorithmus unter gleichen Bedingungen und mit gleichen Parametern zum gleichen Ergebnis kommt, so ist er determiniert.

Finitheit

Ist die Länge eines Algorithmus endlich, so spricht man von statischer Finitheit. Wenn er während der Durchführung endlich viel Speicherplatz verwendet, spricht man von dynamischer Finitheit.

Terminierung

Sofern ein Algorithmus bei jeder Durchführung nach einer endlichen Anzahl an Schritten anhält und zu einem Ergebnis kommt, heißt er terminierend.

Algorithmus.png

Effizienz

Die Frage der Effizienz spielt bei Algorithmen eine große Rolle. Wenn zum Lösen eines Problems eine Vielzahl von Algorithmen zur Verfügung stehen, muss überlegt werden, welcher am sinnvollsten ist. Dabei muss zwischen zwei Dingen unterschieden werden: Zum Einen ist die Schnelligkeit der Ausführung von Bedeutung, man spricht von Laufzeiteffizienz. Zum Anderen sollte ein Algorithmus möglichst wenig Ressourcen belegen, zum Beispiel Speicherplatz während der Ausführung, man spricht von Speichereffizienz. Um Algorithmen sinnvoll zu vergleichen, muss eine von Hardware und Implementation unabhängige Bewertung stattfinden. Hierfür wird unter anderem nicht in Zeiteinheiten gemessen, sondern in nötigen Rechenschritten. Mit Hilfe der O-Notation kann beispielsweise die Laufzeit abgeschätzt werden und ein worst case sowie ein best case angegeben werden. Auf Basis dieser Werte kann ein Vergleich von Algorithmen stattfinden.

Bedeutung für die Suchmaschinenoptimierung

Algorithmen sind das wichtigste Grundkonzept für Suchmaschinenbetreiber wie Google, Yahoo oder Bing. Die Gründung von Google geht auf die Patentanmeldung des PageRank-Algorithmus zurück, der anhand der Verlinkungsstruktur einer Webseite einen ganzzahligen Wert zwischen 0 und 10 ausgibt – den PageRank. Neben der Verlinkungsstruktur, die als Graph dargestellt werden kann, nutzen Suchmaschinen auch Algorithmen, die den Seiteninhalt – z.b. Text und Formatierung – sowie deren Beziehungen zu anderen Webseiten auslesen und bewerten. Auch der Hiltop-, der TrustRank- und der HITS (Hypertext induced topic selection)-Algorithmus spielen bei der Hierarchisierung der Suchergebnisse wichtige Rollen.

Die Ergebnislisten – kurz: SERP – der Suchmaschinen sind genau genommen das Produkt verschiedener Algorithmen, die zahlreiche Signale verwenden, um eine Webseite höher oder tiefer in den Suchergebnissen anzuzeigen. Google selbst gibt an, dass über 200 unterschiedliche Faktoren bei der Gewichtung von Webseiten herangezogen werden. Neben Verlinkungen und Begriffen zählen auch die Aktualität des Inhalts einer Webseite und deren Standort dazu. Die genauen Formeln, Strukturen und Implementierungen solcher Algorithmen werden indessen streng geheim gehalten.

Weblinks