Die Informatik bezeichnet mit Suchverfahren oder Suchalgorithmus einen Algorithmus, der in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Man unterscheidet einfache und heuristische Suchalgorithmen. Einfache Suchalgorithmen benutzen die intuitive Methoden für das Durchsuchen des Suchraumes, während heuristische Suchalgorithmen Wissen über den Suchraum (beispielsweise die Datenverteilung) mit einbeziehen um die benötigte Suchzeit zu reduzieren.
Der einfachste Suchalgorithmus für Listen ist die lineare Suche. Bei ihr wird solange ein Element nach dem anderen durchlaufen, bis ein Element mit dem gesuchten Schlüssel angetroffen wird. Die lineare Suche hat eine Laufzeit von O(n) (n ist die Anzahl der Elemente der Liste) und kann sowohl auf sortierte als auch unsortierte Listen angewendet werden. Ein fortgeschrittenes Verfahren ist die binäre Suche mit einer Laufzeit von O(log n). Für große Listen ist sie viel effizienter als die lineare Suche, setzt jedoch voraus, dass die Liste vorher sortiert wurde und ein wahlfreier Zugriff auf die Elemente möglich ist. Die Interpolationssuche, auch Intervallsuche genannt, ist eine Verbesserung der binären Suche, die eine Gleichverteilung der Daten voraussetzt. Die Laufzeit O(log(log n)) ist nur für sehr große Datenmengen besser als die der binären Suche. Ein weiterer Suchalgorithmus für Listen ist Grovers Algorithmus, der auf Quantencomputern zum Einsatz kommt und quadratisch schneller als die klassische lineare Suche für unsortierte Listen abläuft. Für die Suche in Listen kann auch Hashing verwendet werden, das im Durchschnitt eine konstante Zeit O(1), im schlechtesten Fall jedoch lineare Zeit benötigt.
Kombinatorische Suche und Backtracking sind Verfahren, die bei der optimierenden Suche zum Einsatz kommen, vor allem bei diskreten Variablen.
Zur analogen Suche nach Minima oder Maxima von mehrdimensionalen Funktionen gibt es eine ganze Anzahl an numerischen Optimierungsverfahren, die je nach den jeweiligen Ausgangsbedingungen eingesetzt werden.
Ein anderes Vorgehen beruht auf dem Feedback durch den Nutzer, der die Relevanz der Ergebnisse zu bewerten hat, siehe Relevanz-Feedback.
Suchverfahren für Zeichenketten suchen, wie der Name schon sagt, in Zeichenketten nach einem Schlüssel. Bekannte Vertreter sind der Algorithmus von Knuth-Morris-Pratt, der Algorithmus von Boyer sowie der Karp-Rabin-Algorithmus. Siehe dazu: String-Matching-Algorithmus.
Genetische Algorithmen benutzen Ideen aus der Evolutionslehre als Heuristiken, um den Suchraum zu verkleinern.
Simulierte Abkühlung (simulated annealing) ist ein auf Wahrscheinlichkeit beruhender Suchalgorithmus.
Adversarial Search wird im Bereich der künstlichen Intelligenz eingesetzt.
In den No-Free-Lunch-Theoremen wurde gezeigt, dass – gemittelt über alle mathematisch formulierbaren Probleme – alle Suchverfahren gleich gut sind. Einen Leistungsvorsprung zeigt ein Suchverfahren jeweils nur auf einer speziellen Klasse von Problemen.
Search algorithm | Hakualgoritmi | Algorithme de recherche | Algoritmo di ricerca | 検索 | Zoekalgoritme
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Suchverfahren".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world