Wissensbasierte Suche

Wissensbasierte Suche Jürgen Dorn Inhalt • uninformierte Suche • wissensbasierte Suche • A* und IDA* Algorithmus • Suche in Und/Oder-Graphen ©Jürg...
Author: Jasmin Martin
4 downloads 2 Views 100KB Size
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