www.wikidata.de-de.nina.az
Dieser Artikel beschreibt die Suche nach Daten im Kontext der Informatik Fur die Suche nach vermissten Personen und Schiffen siehe Suchmuster Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst 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 intuitive Methoden fur das Durchsuchen des Suchraumes wahrend heuristische Suchalgorithmen Wissen uber den Suchraum beispielsweise die Datenverteilung miteinbeziehen um die benotigte Suchzeit zu reduzieren Die Losung eines algorithmischen Problems kann allgemein als Suche nach der Losung in einer Menge von moglichen Losungen dem Losungsraum verstanden werden Als Losung kann der Zielzustand gelten aber auch der Pfad zum Ziel oder die Reihenfolge von entsprechenden Aktionen Ist der Suchraum endlich kann die Suche mit einer geeigneten Suchstrategie immer zu einem Ergebnis fuhren Bei unendlichen Losungs Mengen muss die Suche nach gewissen Kriterien z B nach einer bestimmten Zeit abgebrochen werden Wiederholte Suche in einer endlichen Menge kann dadurch effizient gestaltet werden dass uber den Daten eine Indexstruktur z B in Form eines Suchbaums erstellt wird die nach einem bestimmten Kriterium sortiert ist Dann mussen bei einer Suche nicht mehr alle Eintrage betrachtet werden z B beginnt man die Suche in einem Telefonbuch bei dem Buchstaben mit dem der Name anfangt Inhaltsverzeichnis 1 Einfache Suchalgorithmen 1 1 Suche in Listen 1 2 Suche in Baumen 1 3 Suche in Graphen 2 Heuristische Informierte Suchalgorithmen 3 Optimierende Suche 4 Andere Suchverfahren 5 Leistungsunterschiede der Suchverfahren 6 Siehe auch 7 WeblinksEinfache Suchalgorithmen BearbeitenEinfache Suchalgorithmen vernachlassigen die spezielle Natur des jeweiligen Problems Deshalb konnen sie allgemeiner und abstrakter implementiert werden wodurch dieselbe Implementierung fur eine grosse Auswahl von Problemen verwendet werden kann Der Nachteil einfacher Suchalgorithmen sind die entstehenden Kosten Der Suchraum von Suchproblemen ist im Allgemeinen sehr gross einfaches Suchen lauft jedoch nur in kleinen Suchraumen in annehmbarer Zeit ab Suche in Listen Bearbeiten Algorithmen zur Suche in Listen sind die einfachsten Suchalgorithmen uberhaupt Das Ziel der Suche in Listen ist es ein bestimmtes Element einer Liste zu finden von dem der zugehorige Suchschlussel bekannt ist Da dieses Problem in der Informatik oft anzutreffen ist sind die verwendeten Algorithmen sowie deren Komplexitat sehr gut untersucht nbsp Suche in einer Skip ListeDer einfachste Suchalgorithmus fur Listen ist die lineare Suche Bei ihr wird solange ein Element nach dem anderen durchlaufen bis ein Element mit dem gesuchten Schlussel angetroffen wird Die lineare Suche hat eine Laufzeit von O n displaystyle mathcal O n nbsp n ist die Anzahl der Elemente der Liste und kann sowohl auf sortierte als auch unsortierte Listen angewendet werden Ein fortgeschrittenes Verfahren ist die binare Suche mit einer Laufzeit von O log n displaystyle mathcal O log n nbsp Fur grosse 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 moglich ist Die Interpolationssuche auch Intervallsuche genannt ist eine Verbesserung der binaren Suche die eine Gleichverteilung der Daten voraussetzt Die Laufzeit O log log n displaystyle mathcal O log log n nbsp ist nur fur sehr grosse Datenmengen besser als die der binaren Suche Ein weiterer Suchalgorithmus fur Listen ist der Grover Algorithmus der auf Quantencomputern zum Einsatz kommt und quadratisch schneller als die klassische lineare Suche fur unsortierte Listen ablauft Fur die Suche in Listen kann auch Hashing verwendet werden das im Durchschnitt eine konstante Zeit O 1 displaystyle mathcal O 1 nbsp im schlechtesten Fall jedoch lineare Zeit benotigt Suche in Baumen Bearbeiten nbsp Ein binarer Suchbaum der Grosse neun und der Tiefe dreiDie Suche in Baumen ist die Konigsdisziplin unter den Suchalgorithmen Sie durchsucht Knoten von Baumen unabhangig davon ob der Baum explizit oder implizit wahrend der Suche generiert ist Dabei wird folgendes Prinzip angewendet Ein Knoten wird aus einer Datenstruktur entnommen Seine Kindknoten werden untersucht und gegebenenfalls der Datenstruktur hinzugefugt Je nach Auswahl der Datenstruktur kann der Baum in verschiedenen Reihenfolgen durchsucht werden Die Verwendung einer Warteschlange fuhrt so zu einer Breitensuche bei der der Baum Ebene fur Ebene durchlaufen wird Bei Verwendung eines Stacks hingegen wird jeweils bis zu einem Blatt gesucht und erst anschliessend mit dem nachsten Kindknoten fortgefahren Dies wird als Tiefensuche bezeichnet Suche in Graphen Bearbeiten Viele Probleme der Graphentheorie konnen mit Hilfe von Suchalgorithmen gelost werden Beispiele fur diese Probleme sind das Problem des Handlungsreisenden die Berechnung kurzester Pfade und die Konstruktion eines minimalen Spannbaums Die entsprechenden Algorithmen sind zum Beispiel Kruskals Algorithmus Dijkstras Algorithmus oder Prims Algorithmus die als Erweiterungen der Algorithmen fur die Suche in Baumen gesehen werden konnen Heuristische Informierte Suchalgorithmen BearbeitenStrategien die das Auffinden von Losungen beschleunigen konnen bezeichnet man als Heuristiken Typische Heuristiken sind Faustregeln die Orientierung an Beispielen und die Nachbildung des menschlichen Problemloseprozesses Demnach konnen die Verfahren in uninformierte auch blinde Suche genannt und informierte Nutzung von Heuristiken unterschieden werden Das Studium verschiedener Verfahren zur heuristischen Suche die Entwicklung und Implementation neuer Verfahren und ihre Anwendung auf verschiedene Problembereiche rechnet man ublicherweise zum algorithmischen Kern der Kunstlichen Intelligenz Dazu gehoren z B das automatische Beweisen die Steuerung von Robotern und als typische Vertreter insbesondere Spiele Gemeint sind sowohl Zwei Personen Spiele Nullsummenspiele mit vollstandiger Information wie z B Schach Dame Muhle als auch Ein Personen Spiele wie Schiebepuzzles oder Solitaire Die klassischen Verfahren zur heuristischen Suche sind A IDA bidirektionale Suchschemata das Minimax Verfahren Alpha Beta Suche Heuristische Suchalgorithmen kommen auch dann zum Einsatz wenn ein Algorithmus zur Problemlosung zu rechenintensiv ist In diesem Fall wird ein gewisser Fehler in Kauf genommen also auch eine nicht optimale Losung akzeptiert wenn dafur die eingesetzte Rechenzeit deutlich reduziert werden kann Optimierende Suche BearbeitenDiese Art der Suche lost Optimierungsaufgaben bei der eine Reihe von Variablen mit Werten belegt werden muss Da es sich dabei um sehr viele Variablen mit sehr grossem Wertebereich handeln kann ist der Suchbereich sehr gross und herkommliche Suchverfahren versagen 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 Andere Suchverfahren BearbeitenSuchverfahren fur Zeichenketten suchen in Zeichenketten nach dem Auftreten eines Schlussels Bekannte Vertreter sind der Algorithmus von Knuth Morris Pratt der Algorithmus von Boyer Moore sowie der Karp Rabin Algorithmus Siehe dazu String Matching Algorithmus Evolutionare Algorithmen benutzen Ideen aus der Evolutionstheorie als Heuristiken um schneller gute Ergebnisse zu bekommen Simulierte Abkuhlung simulated annealing ist ein auf Wahrscheinlichkeit beruhender Suchalgorithmus Adversarial Search wird im Bereich der kunstlichen Intelligenz eingesetzt Leistungsunterschiede der Suchverfahren BearbeitenIn den No Free Lunch Theoremen wurde gezeigt dass gemittelt uber alle mathematisch formulierbaren Probleme alle Suchverfahren gleich gut sind Einen Leistungsvorsprung zeigt ein Suchverfahren jeweils nur auf einer speziellen Klasse von Problemen Siehe auch BearbeitenFuzzy Suche Phonetische Suche Recherche Pattern Matching Regularer Ausdruck Data Mining Suchmaschine Suchfunktion Liste von Algorithmen Rosettenabtastung Thematische SucheWeblinks BearbeitenR Poli W B Langdon N F McPhee A Field Guide to Genetic Programming Lulu com 2008 ISBN 978 1 4092 0073 4 researchgate net Abgerufen von https de wikipedia org w index php title Suchverfahren amp oldid 224677910