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 karlsplatz
U4
stephansplatz
stadtpark
U3 U4
stubentor
herrengasse
©Jürgen Dorn 2003
U3
U1
pilgramgasse
U4
rathaus
nestroyplatz
U2 U4
margarethengürtel
volkstheater
U2
schwedenplatz
U4
U4
U2
U1
praterstern
kettenbrükkengasse
U1
U3 landstraße
babenbergerstr.
U3
taubstummengasse
U1 U4
U2
U1
U4
U3
längenfeldgasse
neubaugasse
U6 gumpendorferstr
U3
schottentor
zieglergasse
U2
U6 U3
schottenring
U4
heiligenstadt
U6
westbhf
Wissensbasierte Suche
3
Ein allgemeiner Suchalgorithmus • • • • •
Start- und Zielpunkt: ps, pz 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(pS, pZ, Path) : boolean; begin Graph:=p S; Tree:= pS; Open := p S; Closed := ∅; p i := p S; while pZ ∉ Open and Open ≠ ∅ do pi := first(Open); for all p j := suc(pi) do Graph := add(Graph, edge(p i, p j)); if not pj in Open and not pj in Closed then Tree := add(Tree, edge(p i, pj)); Open := Open + pj end if end for all; Open := Open - p i; Closed := Closed + pi; heuristic_sort(Open); end while;
©Jürgen Dorn 2003
/* Ausgabe des Weges */ IF pi = pZ then Path := pZ; pi := pZ; repeat pi = pre(p i, Tree); Path := pi + Path until p i = p S; return search := true else search := false end if end function search;
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 ps zu einem Zielpunkt p z über einen Zwischenpunkt wird geschätzt • Annahme: Funktion mit tatsächlichen Kosten für eine Kante k(pi, pj) ©Jürgen Dorn 2003
Wissensbasierte Suche
7
Schätzfunktion • • • • • • • •
h*(p) sind die optimalen (theoretischen) Kosten von p nach pz g*(p) sind die optimalen (theoretischen) Kosten von ps 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 pz g(p) ist die Schätzfunktion für die Kosten von ps 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(pi) - h(pj) ≤ kosten(pi, pj) • 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 ps und pz 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
kar ls pl at z
f ahrr ad
f ahrz eug
U1 auto fa hre n
l ei hen kagr an
kauf en
Taxi
PKW
Par kpla t z
26A r ad f ahr en ess li ng f ahra usw eis
99B ja hr eskar te
auernheimergasse
st re if enkar te ein zelk art e
©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
Spielbaum
15
(2;14) 19,42 (3;12) 18,11 (23;11) 19,24
(22;12) 18,11
(4;13) 17,26 (24;13) 19,24
(4;10) (5;11) (5;13) (4;14) 19,03 18,00 18,11 19,24
(4;10) 19,24 (4;10) (5;11) (5;13) (4;14) (23;11) (22;12) 18,11 17,03 17,03 18,11 18,44 17,26 (5;11) (6;12) (6;14) (5;15) 18,00 17,03 17,26 18,44 (5;11) (6;12) (6;14) (5;15) 17,03 16,00 16,12 17,26
©Jürgen Dorn 2003
Wissensbasierte Suche
16
8