Wissensbasierte Suche Jürgen Dorn Inhalt uninformierte Suche wissensbasierte Suche A* und IDA* Algorithmus Suche in Und/Oder-Graphen Jürgen Dorn 2003 Wissensbasierte Suche 1 Suche Suche in (expliziten oder impliziten) Graphen Anwendung z.b. Wegsuche Punkt bzw. Knoten (z.b. ein Ort) Kante (direkte Verbindung zwischen zwei Orten) Verzweigungsfaktor (wieviele Wege gehen von einem Punkt weg) Kanten können Kosten zugeordnet sein (Dauer einer Fahrt, Länge der Strecke, Fahrpreis, ) Probleme finde Weg finde kostengünstigsten Weg zwischen zwei Punkten Jürgen Dorn 2003 Wissensbasierte Suche 2 1
U-Bahn Wegegraph U2 rathaus U2 U2 längenfeldgasse U6 gumpendorferstr neubaugasse zieglergasse U2 stephansplatz babenbergerstr. U2 karlsplatz kettenbrükkengasse stadtpark taubstummengasse westbhf heiligenstadt U6 schwedenplatz stubentor landstraße nestroyplatz praterstern volkstheater schottentor schottenring herrengasse pilgramgasse margarethengürtel U6 Jürgen Dorn 2003 Wissensbasierte Suche 3 Ein allgemeiner Suchalgorithmus Start- und Zielpunkt: p s, p z Suchgraph: Graph und Suchbaum: Tree bereits untersuchte Punkte: Closed als nächstes zu untersuchende Punkte: Open Sortieren von Open: heuristic_sort Jürgen Dorn 2003 Wissensbasierte Suche 4 2
function search(p S, p Z, Path) : boolean; begin Graph:=p S ; Tree:= p S ; Open := p S ; Closed := ; p i := p S ; while p Z Open and Open do p i := first(open); for all p j := suc(p i ) do Graph := add(graph, edge(p i, p j )); if not p j in Open and not p j in Closed then Tree := add(tree, edge(p i, p j )); Open := Open + p j end if end for all; Open := Open - p i ; Closed := Closed + p i ; heuristic_sort(open); end while; /* Ausgabe des Weges */ IF p i = p Z then Path := p Z ; p i := p Z ; repeat p i = pre(p i, Tree); Path := p i + Path until p i = p S ; return search := true else search := false end if end function search; Jürgen Dorn 2003 Wissensbasierte Suche 5 uninformierte Suchstrategien Tiefensuche und Backtracking tiefere Punkte nach vorn in Open Liste möglicherweise lange Suchzeit Breitensuche höhere Punkte nach vorn in Open Liste kürzester Weg (Anzahl der Kanten), aber großer Speicherbedarf Suche mit iterativer Vertiefung erster Schritt, Suche mit Backtracking bis zur Tiefe 1 die Suchtiefe wird dann beim nächsten Versuch um 1 erhöht wiederholen der Backtrackingsuche bis Weg gefunden Kombination der Vorteile von Breitensuche und Backtracking kürzester Weg wird gefunden und Speicheraufwand wird verringert Jürgen Dorn 2003 Wissensbasierte Suche 6 3
informierte heuristische Suchstrategien wissensbasiert, da zusätzliches Wissen die Effizienz des Suchverfahrens verbessert die Kosten werden optimistisch geschätzt Punkte, für die kleinere Kosten geschätzt werden, stehen weiter vorne in der Liste Open die Güte eines Weges vom Startpunkt p s zu einem Zielpunkt p z über einen Zwischenpunkt wird geschätzt Annahme: Funktion mit tatsächlichen Kosten für eine Kante k(p i, p j ) Jürgen Dorn 2003 Wissensbasierte Suche 7 Schätzfunktion h*(p) sind die optimalen (theoretischen) Kosten von p nach p z g*(p) sind die optimalen (theoretischen) Kosten von p s nach p f*(p) = g*(p) + h*(p) die Kosten g*(p) sind aber unbekannt deswegen wird dafür die Schätzfunktionen eingeführt h(p) ist die Schätzfunktion für die Kosten von p nach p z g(p) ist die Schätzfunktion für die Kosten von p s nach p f(p) = g(p) + h(p) Jürgen Dorn 2003 Wissensbasierte Suche 8 4
Algorithmus A* Bedingung 0 < h(p) h*(p), optimistische Schätzung h(p) ist monoton, wenn h(p i ) - h(p j ) kosten(p i, p j ) ein Suchalgorithmus ist zulässig, wenn zugesichert ist, dass er einen Weg findet, soweit dieser existiert A* ist zulässig, wenn der Graph endlich und h(p) monoton ist die Auswahl von h(p) ist entscheidend für die Effektivität der heuristischen Suche h(p) = 0 und einheitliche Kosten der Kanten -> Breitensuche Komplexität im Extremfall wie Breitensuche Jürgen Dorn 2003 Wissensbasierte Suche 9 Iterative Deepening A* (IDA*) Kombination von Algorithmus A* und Backtracking Backtracking benutzt die geschätzten Kosten als Tiefenschranke die geschätzten Kosten zwischen p s und p z sind Tiefenschranke mit Backtracking nach Lösung suchen wird keine Lösung gefunden, erhöhen der Tiefenschranke auf den minimalen Wert, der beim Backtracking zum Abbruch führte Jürgen Dorn 2003 Wissensbasierte Suche 10 5
Iterative Deepening A* (IDA*) Vorteil: linearer Speicheraufwand im Gegensatz zum exponentiellem Aufwand bei A* der Zeitaufwand ist theoretisch größer als bei A* praktisch wurde jedoch nachgewiesen, dass der Zeitaufwand nicht viel größer ist Jürgen Dorn 2003 Wissensbasierte Suche 11 Und/Oder Graphen bisher vorgestellte Graphen sind Oder-Graphen wenn verschiedene Bedingungen gleichzeitig erfüllt sein sollen, damit eine Regel angewendet werden kann, dann müssen zur Repräsentation Und/Oder-Graphen benutzt werden Und/Oder-Graphen sind Hypergraphen es existieren Kanten zwischen Mengen von Punkten Lösungen sind nicht mehr Lösungswege sondern Lösungsgraphen das Ziel kann eine Menge von Punkten sein der Algorithmus benutzt einen vielversprechendsten Lösungsgraphen GP A0* Algorithmus Jürgen Dorn 2003 Wissensbasierte Suche 12 6
Beispiel karls plat z fahrrad leihen auto fa hre n fahrzeug kauf en kagran Taxi PKW Parkpla t z 26A rad fahr en essli ng 99B auernheimergasse fahrausweis ja hr eskar te st re if enkar te ein zelkarte Jürgen Dorn 2003 Wissensbasierte Suche 13 Entscheidungen bei Zielkonflikten Suche in Nullsummenspielen der Gewinn des einen Spielers ist gleich hoch wie der Verlust des anderen Spielers (z.b. Schach) wenn die Gegner abwechselnd eine Aktion ausführen, muss Spieler A immer damit rechnen, dass der Gegenspieler B, die für Spieler A ungünstigste Alternative wählt der so genannte Spielbaum wird wie ein Und/Oder-Graph repräsentiert Jürgen Dorn 2003 Wissensbasierte Suche 14 7
Entscheidungen bei Zielkonflikten die Suche wird jedoch anders durchgeführt Expandierung bis zum Suchhorizont Bewertung der Blätter Heraufpropagierung mit MinMax Strategie möglicherweise α-β Beschneidung Jürgen Dorn 2003 Wissensbasierte Suche 15 Spielbaum (2;14) 19,42 (3;12) 18,11 (4;13) 17,26 (23;11) 19,24 (4;10) (5;11) (5;13) (4;14) 19,03 18,00 18,11 19,24 (22;12) 18,11 (24;13) 19,24 (4;10) 19,24 (4;10) (5;11) (5;13) (4;14) 18,11 17,03 17,03 18,11 (23;11) 18,44 (22;12) 17,26 (5;11) 18,00 (6;12) 17,03 (6;14) 17,26 (5;15) 18,44 (5;11) 17,03 (6;12) 16,00 (6;14) (5;15) 16,12 17,26 Jürgen Dorn 2003 Wissensbasierte Suche 16 8