Was ist ein Suchalgorithmus?

Unter einem Suchalgorithmus versteht man eine schrittweise Prozedur, die das Ziel hat, bestimmte Daten aus einer großen Anzahl an Daten herauszufiltern und diese Daten zu lokalisieren. Dieser Prozess ist ein klassisches Verfahren in der EDV, also in der elektronischen Datenverarbeitung. Es wird im Allgemeinen zwischen einfachen und heuristischen Suchverfahren unterschieden. Die Suchalgorithmen nutzen einen Suchschlüssel, um die Schritte der Prozedur zu durchlaufen. 

Das Ergebnis der Prozedur ist meist ein Erfolgs- oder Fehlerstatus, der als Boolean true / false angegeben wird. Wie effizient ein solcher Suchalgorithmus ist, hängt vor allem davon ab, welche Daten verwendet und in welcher Art und Weise die Daten genutzt werden. Die grundlegendste Form der Suchalgorithmen ist der lineare Suchalgorithmus. Es gibt allerdings sehr verschiedene Formen von Suchalgorithmen, die sich zum Beispiel durch die Art und die Effizienz der Suche unterscheiden. 

Was sind Arten von Suchalgorithmen?

Einfacher Suchalgorithmus

Eine Form der Suchalgorithmen sind die einfachen Suchalgorithmen. Diese vernachlässigen die spezielle Natur des zugrundeliegenden Problems und können deshalb abstrakter implementiert werden. Das bedeutet, dass sie für eine große Auswahl an Problemen genutzt werden können. Das ist der Vorteil der einfachen Suchalgorithmen. Ein Nachteil ist, dass das Kosten-Nutzen-Verhältnis meist eher gering ist und die Suche kosten- und zeitaufwendig ist. 

Eine Form der einfachen Suchalgorithmen ist die Suche in Listen. Bei dieser Art von Suchalgorithmus ist das Ziel der Suche, ein bestimmtes Element in einer Liste zu finden. Von diesem Element muss der zugehörige Suchschlüssel bekannt sein. Dieses Problem kommt sehr häufig in der Informatik vor, deshalb ist diese Form der Algorithmen sehr gut untersucht.

Eine weitere Möglichkeit der einfachen Suche ist die sogenannte Suche in Bäumen, die auch als Königsdisziplin der Suchalgorithmen gilt. Bei dieser Suchform werden Knoten von Bäumen durchsucht, unabhängig davon, ob der zu untersuchende Baum explizit oder implizit ist.

Heuristischer Suchalgorithmus

Neben den einfachen Suchalgorithmen gibt es auch die heuristischen Suchalgorithmen. Als Heuristiken werden Strategien bezeichnet, die das Auffinden von Lösungen für ein bestimmtes Problem beschleunigen können. Ein Beispiel für eine solche Heuristik sind Faustregeln, menschliche Problemlösungsprozesse oder die Orientierung an Beispielen und Vorbildern. Die heuristischen Suchalgorithmen werden in uninformierte, oder auch die blinde Suche und informierte, also der Nutzung von Heuristiken, unterschieden. 

Die Entwicklung und darauffolgende Implementierung von neuen Verfahren und die Anwendung auf die verschiedensten Problembereiche werden auch zum algorithmischen Kern der künstlichen Intelligenz gezählt. Dazu gehören zum unter anderem die Steuerung von Robotern oder auch klassische Gesellschaftsspiele, also Nullsummenspiele mit vollständigen Informationen, wie beispielsweise Schach, Go oder Dame. 

Die heuristischen Suchalgorithmen werden vor allem dann verwendet, wenn ein Algorithmus zu komplex und rechenintensiv ist. Dabei werden unter anderem auch Fehler toleriert, wenn die Rechenzeit verkürzt und der Suchprozess insgesamt effizienter ist. 

Weitere Suchverfahren

Neben den einfachen und heuristischen Suchalgorithmen gibt es eine Reihe weiterer Suchverfahren, die dazu genutzt werden können, Daten zu lokalisieren. Darunter zählen evolutionäre Algorithmen, Suchverfahren für Zeichenketten oder beispielsweise die Adversarial Search, die vor allem im Bereich der künstlichen Intelligenz eingesetzt wird. Meist ist die Effizienz und Leistung der verschiedenen Suchverfahren sehr ähnlich. Unterschiede sind hauptsächlich dann zu erkennen, wenn ein Verfahren auf eine spezielle Klasse von Problemen angewandt wird.