Einführung in heuristische Suchverfahren - Universität Paderborn
Einführung in heuristische Suchverfahren - Universität Paderborn
Einführung in heuristische Suchverfahren - Universität Paderborn
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong><br />
PG Learn<strong>in</strong>g Agents <strong>in</strong> Dynamic Environments<br />
Markus Eberl<strong>in</strong>g<br />
<strong>Universität</strong> <strong>Paderborn</strong><br />
Fachgebiet Wissensbasierte Systeme<br />
Prof. Dr. Kle<strong>in</strong>e Bün<strong>in</strong>g<br />
09. November 2010<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 1/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Inhalt<br />
1 <strong>E<strong>in</strong>führung</strong><br />
2 Graphensuche<br />
3 Un<strong>in</strong>formierte Suche<br />
4 Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 2/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Inhalt<br />
1 <strong>E<strong>in</strong>führung</strong><br />
2 Graphensuche<br />
3 Un<strong>in</strong>formierte Suche<br />
4 Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 3/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
8-Damen-Problem<br />
Wurde 1845 erstmal von M. Bettel <strong>in</strong> e<strong>in</strong>er Schachzeitung<br />
veröffentlicht<br />
Fragestellung: Man f<strong>in</strong>de alle Möglichkeiten, 8 Damen auf e<strong>in</strong>em<br />
8 × 8 Schachbrett so zu platzieren, dass ke<strong>in</strong>e e<strong>in</strong>e andere bedroht.<br />
Verallgeme<strong>in</strong>erung: n Damen auf e<strong>in</strong>em n × n großen Schachbrett<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 4/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
piele<br />
Beispiele<br />
für Suchaufgaben<br />
für Suchaufgaben<br />
en-Problem<br />
8-Damen-Problem<br />
Q<br />
A<br />
Q<br />
B<br />
C<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 5/44<br />
Q
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
Beispiele für Suchaufgaben<br />
8-Damen-Problem<br />
8-Damen-Problem (Fortsetzung)<br />
Analyse Analyse der aktuellen der aktuellen Situation Situation:<br />
Q<br />
A<br />
Q<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 6/44<br />
B<br />
C<br />
Q
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für für Suchaufgaben<br />
8-Damen-Problem<br />
8-Damen-Problem (Fortsetzung)<br />
Analyse der möglichen Folgesituationen<br />
Folgesituationen:<br />
Q<br />
A<br />
Q<br />
B<br />
C<br />
Q<br />
Q<br />
A<br />
Q<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
S: I-4 Search Introduction c○STEIN 1998-2010<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 7/44<br />
B<br />
C<br />
Q<br />
Q<br />
A<br />
Q<br />
B<br />
C<br />
Q
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
8-Damen-Problem<br />
Damen def<strong>in</strong>ieren Constra<strong>in</strong>ts (Beschränkungen, Restriktionen)<br />
Monotone Situation: Contra<strong>in</strong>tverletzungen können nicht repariert werden<br />
Gewünscht: Heuristik für die nächste Platzierung<br />
Generelle Idee: ” Welche Platzierung hält die meisten Optionen offen?“ (least<br />
commitment)<br />
Heuristik 1: ” Maximiere f1 mit f1 =Anzahl der nicht-angegriffenen Felder<br />
(unattacked cells).“<br />
f1(A) = 8<br />
f1(B) = 9<br />
f1(C) = 10<br />
Heuristik 2: ” Maximiere f2 mit f2(x) = m<strong>in</strong>{uc(x, r) | r ∈ {r5, . . . , r8}},<br />
x ∈ {A, B, C}“, uc(x, r) = Anzahl der ” unattacked cells“ <strong>in</strong> Zeile r, falls<br />
Dame auf x.<br />
f2(A) = 1<br />
f2(B) = 1<br />
f2(C) = 2<br />
Beide Heuristiken schätzen e<strong>in</strong>en Nutzen und bewerten die Situation nach<br />
der nächsten Platzierung.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 8/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
Beispiele für Suchaufgaben<br />
8-Damen-Problem (Fortsetzung)<br />
Mögliche Mögliche Lösungen Lösungen:<br />
B<br />
Q<br />
B<br />
Q<br />
B<br />
B<br />
B<br />
Q<br />
Q<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
S: I-6 Search Introduction c○STEIN 1998-2010<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 9/44<br />
C<br />
C<br />
Q<br />
C<br />
C<br />
C<br />
Q
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
8er Puzzle Beispiele für Suchaufgaben<br />
8-Puzzle-Problem<br />
2<br />
1 8<br />
3<br />
4<br />
7 6 5<br />
2<br />
1 8<br />
3<br />
4<br />
7 6 5<br />
2<br />
1<br />
8<br />
3<br />
4<br />
7 6 5<br />
2<br />
3<br />
1 8<br />
4<br />
7 6 5<br />
(A) (B)<br />
(C)<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung Heuristische <strong>Suchverfahren</strong>“]<br />
S: I-8 Search Introduction ” c○STEIN 1998-2010<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 10/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Beispiele für Suchaufgaben<br />
8er Puzzle<br />
Expliziter Zielzustand (Endkonfiguration) existiert und ist bekannt.<br />
Vergleich 8-Damen-Problem: Zielzustand ist unbekannt und wird gesucht.<br />
Gewünscht: Heuristik für den nächsten Zug.<br />
Generelle Idee: ” Wie groß ist der Abstand e<strong>in</strong>er Kandidatenkonfiguration zur<br />
Endkonfiguration?“<br />
Heuristik 1: ” M<strong>in</strong>imiere h1 mit h1 = Anzahl der nicht-übere<strong>in</strong>stimmenden<br />
Felder.“<br />
h1(A) = 2<br />
h1(B) = 3<br />
h1(C) = 4<br />
Heuristik 2: ” M<strong>in</strong>imiere h2 mit h2 = Summe der City-Block-Distanzen zur<br />
Endkonfiguration.“<br />
h2(A) = 2<br />
h2(B) = 4<br />
h2(C) = 4<br />
Beide Heuristiken schätzen e<strong>in</strong>en Aufwand und bewerten das noch ungelöste<br />
Restproblem.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 11/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Inhalt<br />
1 <strong>E<strong>in</strong>führung</strong><br />
2 Graphensuche<br />
3 Un<strong>in</strong>formierte Suche<br />
4 Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 12/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Systematische Suche<br />
Die <strong>in</strong> der <strong>E<strong>in</strong>führung</strong> genannten Probleme def<strong>in</strong>ieren e<strong>in</strong>en<br />
Lösungsraum S von Objekten mit Lösungskandidaten<br />
(Brettkonfigurationen, Zugfolgen,. . . ), wor<strong>in</strong> auch die Lösung zu<br />
suchen ist.<br />
Unterscheidung von zwei Problemtypen:<br />
1 Optimierungsprobleme<br />
Lösungskandidat muss Constra<strong>in</strong>ts erfüllen und hat herausragende<br />
Eigenschaften verglichen mit allen anderen Kandidaten.<br />
2 Contra<strong>in</strong>t-Satisfaction-Probleme<br />
Lösungskandidat muss Constra<strong>in</strong>ts erfüllen und soll mit m<strong>in</strong>imalem<br />
Suchaufwand gefunden werden.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 13/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Systematische Suche<br />
Bauste<strong>in</strong>e zur Automatisierung von Suchproblemen (allgeme<strong>in</strong>)<br />
1 E<strong>in</strong>e Codierung, die zur Repräsentation der Objekte im Suchraum S<br />
dient.<br />
2 E<strong>in</strong> Mechanismus, um e<strong>in</strong> Objekt aus S <strong>in</strong> e<strong>in</strong> anderes zu<br />
transformieren (Aufzählbarkeit).<br />
3 E<strong>in</strong> effektives Verfahren, um die Reihenfolge möglicher<br />
Transformationen festzulegen. Ziel: Das gesuchte Objekt so schnell<br />
wie möglich f<strong>in</strong>den.<br />
Bezeichnungen <strong>in</strong> der künstlichen Intelligenz (KI, AI):<br />
1 Datenbasis<br />
2 Operatoren oder Produktionsregeln<br />
3 Steuerungsstrategie<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 14/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Systematische Suche<br />
Codierungsmöglichkeiten<br />
Zwei pr<strong>in</strong>zipielle Anforderungen:<br />
1. Codierung von Lösungskandidaten (notwendig)<br />
Beispiel: Schachbrett mit 8 Damen<br />
Nachteil: Die Struktur des Problems wird nicht ausgenutzt.<br />
Im 8-Damen-Problem: (A1, A2, A3, A4, A5, A6, A7, A8), . . . ,<br />
(H1, H2, H3, H4, H5, H6, H7, H8)<br />
2. Codierung von Teillösungen (sehr wünschenswert)<br />
Beachte <strong>in</strong>sbesondere: Die Codierung e<strong>in</strong>er Teillösung kann zur<br />
Charakterisierung e<strong>in</strong>er Teilmenge von Lösungskandidaten dienen.<br />
Im 8-Damen-Problem: (A2, B5, C3) charakterisiert<br />
(A2, B5, C3, ∗, ∗, ∗, ∗, ∗)<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 15/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Systematische Suche<br />
Def<strong>in</strong>ition (systematische Steuerungsstrategie)<br />
Sei S e<strong>in</strong> Suchraum mit Lösungskandidaten. E<strong>in</strong>e Steuerungsstrategie<br />
heißt systematisch, falls sie<br />
(a) alle Objekte <strong>in</strong> S betrachtet (Vollständigkeit),<br />
(b) jedes Objekt aus S nur e<strong>in</strong>mal betrachtet (Effizienz).<br />
E<strong>in</strong>e Suche, die e<strong>in</strong>e systematische Steuerungsstrategie anwendet, heißt<br />
systematisch.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 16/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Zustandsraumrepräsentation<br />
Def<strong>in</strong>ition (Zustand)<br />
Die Information, die explizit e<strong>in</strong> bestimmtes (Rest-/Teil-)Problem<br />
beschreibt, heißt Zustand (State).<br />
Def<strong>in</strong>ition (Zustandsraum, Zustandsraumgraph)<br />
Die Menge aller Teilprobleme, die durch die Anwendnung der Operatoren<br />
auf die Datenbasis erzeugt werden können, bilden den Zustandsraum<br />
(State Space).<br />
Verb<strong>in</strong>det man die Elemente des Zustandsraums mit gerichteten Kanten,<br />
die mit den angewandten Operatoren markiert s<strong>in</strong>d, so erhält man den<br />
Zustandsraumgraph (State Space Graph).<br />
Def<strong>in</strong>ition (Lösungsgraph im Zustandsraumgraph)<br />
Sei e<strong>in</strong> Zustandsraumgraph S gegeben. E<strong>in</strong> Pfad von s zu e<strong>in</strong>er Lösung<br />
(triviales Restproblem) heißt Lösungsgraph (Solution Graph) für s.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 17/44
Zustandsraumrepräsentation<br />
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Zustandsraumrepräsentation<br />
Ausschnitt des Zustandsraumgraphen beim 8-Damen-Problem<br />
Ausschnitt des Zustandsraumgraphen beim 8-Damen-Problem<br />
Zustand: (*, *, *, *, *, *, *, *)<br />
"Plaziere 8 Damen auf den Zeilen 1-8"<br />
*<br />
(A1, *,...,*) (A2, *,...,*) (A8, *,...,*)<br />
* *<br />
Dame auf A1 Dame auf A8<br />
(A2, B4, *,...,*)<br />
*<br />
*<br />
...<br />
...<br />
Dame auf B3 Dame auf B8<br />
*<br />
(A2, B5, *,...,*)<br />
*<br />
*<br />
(A2, B8, *,...,*)<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
S: II-22 Problem Representation c○STEIN, LETTMANN 1998-2010<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 18/44<br />
*
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Graphensuche<br />
Grundlagen / Term<strong>in</strong>ologie<br />
a ist Vorgänger / Vater von b<br />
b ist Nachfolger / K<strong>in</strong>d von a<br />
Verzweigungsfaktor e<strong>in</strong>es Graphen ist maximaler Knotengrad<br />
a, b, c, d ist e<strong>in</strong> Pfad von a nach d der Länge 3. Wir sagen, dass der<br />
Knoten d von a erreichbar ist.<br />
Wir haben Zeiger vom K<strong>in</strong>d zum Vater. Wir sprechen auch von<br />
e<strong>in</strong>em Zeigerpfad (rot).<br />
Die Knoten a, b, c, d liegen entlang des Zeigerpfades, e jedoch<br />
nicht.<br />
Alle Knoten liegen auf dem Zeigerpfad.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 19/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Graphensuche<br />
Grundlagen / Term<strong>in</strong>ologie<br />
Behandlung der Knoten:<br />
Knotengenerierung: erzeuge den Repräsentanten e<strong>in</strong>es Knotens<br />
ausgehend von der Kodierung des Elternknotens<br />
Knotenexploration: Generiere m<strong>in</strong>destens e<strong>in</strong>en Nachfolger<br />
Knotenexpansion: Generiere alle Nachfolger<br />
Zu jedem Zeitpunkt kann die Knotenmenge <strong>in</strong> vier disjunkte<br />
Teilmengen zerlegt werden:<br />
1 Knoten, die bereits expandiert wurden<br />
2 Knoten, die exploriert, aber noch nicht expandiert wurden<br />
3 Knoten, die generiert, aber noch nicht exploriert wurden<br />
4 Knoten, die noch nicht generiert wurden<br />
Knoten aus Kategorie 1 heißen ” closed“; Knoten aus Kategorie 3<br />
heißen ” open“.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 20/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Graphensuche<br />
Zusammenhang zwischen Graphen und Suche<br />
Suchprobleme und die eigentliche Suche lassen sich durch Graphen<br />
sehr schön repräsentieren.<br />
Knoten repräsentieren Problemzustände.<br />
Kanten repräsentieren Operatoren um aus e<strong>in</strong>em Zustand<br />
Folgezustände zu generieren.<br />
Es gibt e<strong>in</strong>en ausgezeichneten Startzustand s.<br />
Es gibt e<strong>in</strong>e Menge an Zielzuständen γ ∈ Γ.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 21/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Inhalt<br />
1 <strong>E<strong>in</strong>führung</strong><br />
2 Graphensuche<br />
3 Un<strong>in</strong>formierte Suche<br />
4 Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 22/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
E<strong>in</strong>teilung von Suchstrategien<br />
<strong>Suchverfahren</strong> werden h<strong>in</strong>sichtlich der Art und Weise e<strong>in</strong>geteilt, <strong>in</strong> der sie<br />
die Knoten des Suchgraphen untersuchen:<br />
1. bl<strong>in</strong>d bzw. un<strong>in</strong>formiert<br />
Die Reihenfolge der Knoten, die zur Expansion ausgewählt werden,<br />
hängt ausschließlich von Information ab, die während der Suche<br />
gewonnen wurde. D.h., der nicht-untersuchte Teil des Graphen, wie<br />
z.B. auch das Zielkriterium bleiben unberücksichtigt.<br />
2. gerichtet bzw. <strong>in</strong>formiert<br />
Zusätzlich wird Wissen aus der Domäne und Wissen über die Art<br />
und Lage der Zielzustände berücksichtigt.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 23/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Tiefensuche (DFS)<br />
Tiefensuche ist e<strong>in</strong>e un<strong>in</strong>formierte, systematische Strategie.<br />
Merkmale von Tiefensuche:<br />
Im Graph tiefer liegende Knoten werden bevorzugt behandelt.<br />
Der kle<strong>in</strong>ste unteilbare Schritt ist die Knotenexpansion:<br />
Wird e<strong>in</strong> Knoten untersucht, so werden unmittelbar alle direkten<br />
Nachfolger n1, . . . , nk generiert.<br />
Unter n1, . . . , nk wird wieder e<strong>in</strong> Knoten zur Expansion ausgesucht,<br />
usw.<br />
Die OPEN-Liste ist als Stack organisiert (LIFO-Order).<br />
Bemerkung: Wir färben ke<strong>in</strong>e Knoten (aus Effizienzgründen)!<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 24/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Tiefensuche<br />
Problematik von Tiefensuche: Die Suche kann zu tief ” abrutschen“.<br />
Ausweg: Berücksichtigung e<strong>in</strong>er Tiefenschranke.<br />
Tiefensuche ist angesagt, wenn:<br />
viele Lösungen existieren, die gleichwertig s<strong>in</strong>d.<br />
Sackgassen früh erkannt werden können.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 25/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Tiefensuche (DFS)<br />
1 push(s,OPEN);<br />
2 loop<br />
3 if (OPEN=∅) then Return(’Failure’);<br />
4 n=pop(OPEN);<br />
5 push(n,CLOSED);<br />
6 if (depth(n)=k) then<br />
7 cleanup closed();<br />
8 else<br />
9 forall the n ′ <strong>in</strong> successors(n) do<br />
10 push(n ′ ,OPEN);<br />
11 set backpo<strong>in</strong>ter(n ′ ,n);<br />
12 if (⋆(n ′ )) then Return(n ′ );<br />
13 if (⊥(n ′ )) then<br />
14 remove(n ′ ,OPEN);<br />
15 cleanup closed();<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 26/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Breitensuche<br />
Breitensuche ist e<strong>in</strong>e un<strong>in</strong>formierte, systematische Strategie.<br />
Merkmale von Breitensuche:<br />
Im Graph weiter oben liegende Knoten werden bevorzugt behandelt.<br />
Die untersuchten Knoten bilden Schichten gleicher Tiefe.<br />
Term<strong>in</strong>iert auf lokal endlichen Graphen mit e<strong>in</strong>er Lösung, falls e<strong>in</strong>e<br />
existiert.<br />
F<strong>in</strong>det die Lösung, die am nächsten vom Startpunkt entfernt ust,<br />
gemesser <strong>in</strong> der Anzahl der Kanten des Lösungspfades.<br />
Die OPEN-Liste ist als Queue organisiert (FIFO-Order).<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 27/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Breitensuche (BFS)<br />
1 enqueue(s,OPEN);<br />
2 loop<br />
3 if (OPEN=∅ OR memory exhausted()) then Return(’Failure’);<br />
4 n=dequeue(OPEN);<br />
5 push(n,CLOSED);<br />
6 forall the n ′ <strong>in</strong> successors(n) do<br />
7 enqueue(n ′ ,OPEN);<br />
8 set backpo<strong>in</strong>ter(n ′ ,n);<br />
9 if (⋆(n ′ )) then Return(n ′ );<br />
10 if (⊥(n ′ )) then<br />
11 remove(n ′ ,OPEN);<br />
12 cleanup closed();<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 28/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Inhalt<br />
1 <strong>E<strong>in</strong>führung</strong><br />
2 Graphensuche<br />
3 Un<strong>in</strong>formierte Suche<br />
4 Informierte Suche<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 29/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Best-First-Search<br />
Wissen über den Problembereich (Domäne) hilft, die Suche zu steuern.<br />
” To enhance the performance of AI’s programs, knowledge is<br />
the power.“ [Feigenbaum 1980]<br />
Frage: An welcher Stelle kann / sollte <strong>heuristische</strong> Information e<strong>in</strong>gesetzt<br />
werden?<br />
⇒ Hillclimb<strong>in</strong>g: Entscheidung für den erfolgversprechendsten Nachfolger<br />
⇒ Best-First-Search: Der erfolgversprechenste Nachfolger e<strong>in</strong>es Knoten<br />
n wird unter allen bisher betrachteten Knoten gesucht – egal, an<br />
welcher Stelle im Suchraum sich n bef<strong>in</strong>det.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 30/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Best-First-Search<br />
Die Erfolgsaussicht e<strong>in</strong>es Knotens n kann auf verschiedene Arten<br />
berechnet werden:<br />
1. Abschätzung der Schwierigkeit des Restproblems.<br />
2. Bewertung der Qualität der Teillösung.<br />
3. Erwartete Größe des Informationsgew<strong>in</strong>ns bei Expansion von n.<br />
⇒ Ziel ist es, das ” Potential“ von n durch e<strong>in</strong>e <strong>heuristische</strong><br />
Bewertungsfunktion f (n) zu quantifizieren.<br />
Die Berechnung der Bewertungsfunktion f kann abhängen von:<br />
der Beschreibung des Knotens n,<br />
bisher gesammelter Information, d.h. dem bisherigen Pfad p,<br />
der Beschreibung des Ziels γ,<br />
generellem Problemlösewissen aus der Domäne, K.<br />
f = f (n, p, γ, K)<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 31/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Best-First-Search (BF)<br />
1 <strong>in</strong>sert(s,OPEN);<br />
2 loop<br />
3 if (OPEN=∅) then Return(’Failure’);<br />
4 n=m<strong>in</strong>(OPEN,f );<br />
5 remove(n,OPEN);<br />
6 push(n,CLOSED);<br />
7 forall the n ′ <strong>in</strong> successors(n) do<br />
8 set backpo<strong>in</strong>ter(n ′ ,n);<br />
9 if (⋆(n ′ )) then Return(n ′ );<br />
10 n ′ old = node eq state(n′ ,OPEN,CLOSED);<br />
=NULL) then<br />
11 if (n ′ old<br />
12 <strong>in</strong>sert(n ′ ,OPEN)<br />
13 else<br />
)) then<br />
14 if (f (n ′ ) < f (n ′ old<br />
15 <strong>in</strong>sert(n ′ ,OPEN);<br />
,OPEN)) then<br />
16 if (member(n ′ old<br />
17 remove(n ′ old ,OPEN)<br />
18 else remove(n ′ old ,CLOSED)<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 32/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Verzögerter Abbruch<br />
Sobald BF e<strong>in</strong>e Lösung f<strong>in</strong>det, term<strong>in</strong>iert BF mit dieser Lösung.<br />
Diese muss nicht zwangsläufig optimal se<strong>in</strong>.<br />
Um Optimalität sicherzustellen benötigen wir:<br />
1 e<strong>in</strong>e optimistische Schätzung (Unterschätzung der Kosten bzw.<br />
Überschätzung des Nutzens)<br />
2 e<strong>in</strong>e andere Term<strong>in</strong>ierungsbed<strong>in</strong>gung: Anstatt sofort mit e<strong>in</strong>er Lösung<br />
zu term<strong>in</strong>ieren, muss dieser Lösungsknoten mit allen anderen Knoten<br />
auf der OPEN-Liste konkurieren. Erst wenn e<strong>in</strong> Lösungsknoten von<br />
OPEN genommen wird, wird mit dieser Lösung term<strong>in</strong>iert.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 33/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Rekursive Bewertungsfunktion<br />
Def<strong>in</strong>ition (rekursive Bewertungsfunktion)<br />
E<strong>in</strong>e Bewertungsfunktion WG(n) ist rekursiv, wenn für jeden Knoten n im<br />
Graphen gilt:<br />
WG(n) = F � E(n); WG(n1), . . . , WG(nb) �<br />
wobei<br />
n1, n2, . . . , nb die direkten Nachfolger von n s<strong>in</strong>d<br />
E(n) e<strong>in</strong>e Menge lokaler Eigenschaften des Knotens n repräsentiert<br />
F e<strong>in</strong>e beliebige Verrechnungsfunktion ist.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 34/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Taxonomie von BF-Strategien<br />
verzögerter<br />
Abbruch<br />
rekursive<br />
Bewertungsfunktion<br />
BF<br />
BF* Z<br />
Z*<br />
A*<br />
rekursive<br />
Bewertungsfunktion<br />
verzögerter<br />
Abbruch<br />
additives<br />
Kostenmaß:<br />
F = c(n,n') + h(n')<br />
⇒ f(n) = g(n) + h(n)<br />
mit g(n´) = g(n) + c(n, n´)<br />
und g(s) = 0<br />
[Lettmann / Ste<strong>in</strong>, Vorlesung ” Heuristische <strong>Suchverfahren</strong>“]<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 35/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Algorithmus A*<br />
1 <strong>in</strong>sert(s,OPEN);<br />
2 g(s)=0;<br />
3 loop<br />
4 if (OPEN=∅) then Return(’Failure’);<br />
5 n=m<strong>in</strong>(OPEN,g + h);<br />
6 remove(n,OPEN);<br />
7 push(n,CLOSED);<br />
8 if (⋆(n)) then Return(n);<br />
9 forall the n ′ <strong>in</strong> successors(n) do<br />
10 set backpo<strong>in</strong>ter(n ′ ,n);<br />
11 g(n ′ ) = g(n) + c(n, n ′ );<br />
12 n ′ old = node eq state(n′ ,OPEN,CLOSED);<br />
=NULL) then<br />
13 if (n ′ old<br />
14 <strong>in</strong>sert(n ′ ,OPEN)<br />
15 else<br />
16 if (g(n ′ ) < g(n ′ old<br />
17 <strong>in</strong>sert(n ′ ,OPEN);<br />
)) then<br />
,OPEN) then<br />
18 if member(n ′ old<br />
19 remove(n ′ old ,OPEN)<br />
20 else remove(n ′ old ,CLOSED)<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 36/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Vollständigkeit und Zulässigkeit von Algorithmen<br />
Def<strong>in</strong>ition (Vollständigkeit)<br />
E<strong>in</strong> Algorithmus heißt vollständig, wenn er mit e<strong>in</strong>er Lösung term<strong>in</strong>iert,<br />
wenn e<strong>in</strong>e existiert.<br />
Def<strong>in</strong>ition (Zulässigkeit)<br />
E<strong>in</strong> Algorithmus heißt zulässig, wenn garantiert werden kann, dass der<br />
Algorithmus mit e<strong>in</strong>er optimalen Lösung term<strong>in</strong>iert, wenn e<strong>in</strong>e existiert.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 37/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
F<strong>in</strong>det A* immer e<strong>in</strong>e Lösung, wenn e<strong>in</strong>e Lösung existiert?<br />
s 1<br />
s 2<br />
s 3<br />
s 4<br />
1<br />
2<br />
1<br />
4<br />
1<br />
8<br />
1<br />
s<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 38/44<br />
2<br />
γ
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Lässt sich immer e<strong>in</strong>e optimale Lösung bestimmen?<br />
γ<br />
1<br />
1<br />
γ<br />
2<br />
s<br />
1<br />
4<br />
1<br />
2<br />
γ<br />
3<br />
s<br />
1<br />
1<br />
16<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 39/44<br />
1<br />
8<br />
γ<br />
1<br />
64<br />
4<br />
s<br />
2<br />
1<br />
32<br />
s<br />
3<br />
1<br />
128
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
E<strong>in</strong>schränkung des Suchraums<br />
1 Der Suchraum ist e<strong>in</strong> (gerichteter) ODER-Graph.<br />
2 Der Graph ist lokal endlich.<br />
3 Der Graph besitzt nur e<strong>in</strong>en e<strong>in</strong>zigen Startknoten s.<br />
4 Der Graph enthält e<strong>in</strong>e Menge Γ von Zielknoten.<br />
5 Jede Kante (n, n ′ ) besitzt endliche, positive Kosten c(n, n ′ ) ≥ δ > 0.<br />
6 Die Kosten e<strong>in</strong>es Pfades entsprechen der Summe der Kosten der<br />
Kanten des Pfades.<br />
7 Für jeden Knoten n im Graph kann e<strong>in</strong>e <strong>heuristische</strong> Schätzug<br />
h(n) ≥ 0 der Restkosten zu e<strong>in</strong>em Ziel berechnet werden.<br />
8 Für jeden Knoten γ ∈ Γ gilt h(γ) = 0.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 40/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Eigenschaften von A*<br />
Mit e<strong>in</strong>geschränktem Suchraum<br />
A* ist vollständig auf unendlichen Graphen (Pearl Satz 1).<br />
A* ist zulässig bei Verwendung e<strong>in</strong>er zulässigen Schätzfunktion h<br />
(Nilsson Result 4 / Pearl Satz 2).<br />
Für e<strong>in</strong>e zulässige Schätzfunktion gilt, dass sie optimistisch ist. D.h.,<br />
wenn h(n) die Kosten schätzt und h ∗ (n) e<strong>in</strong>e perfekte<br />
Schätzfunktion ist, dann muss für alle Knoten n gelten:<br />
h(n) ≤ h ∗ (n).<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 41/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Relaxierung von A*<br />
Algorithmus A ∗ ɛ<br />
Verwendung e<strong>in</strong>er zusätzlichen Liste FOCAL ⊆ OPEN:<br />
FOCAL = {n | f (n) ≤ (1 + ɛ) · m<strong>in</strong><br />
n ′ ∈OPEN f (n′ )}<br />
Verwendung e<strong>in</strong>er Funktion hF (n) zur Abschätzung des<br />
Suchaufwands, um das Restproblem bei n zu lösen.<br />
Auswahl des Knotens n mit dem niedrigsten hF (n) aus FOCAL<br />
⇒ Anstatt die billigste Lösung zu suchen, wird das Ziel verfolgt,<br />
möglichst schnell die Suche zu beenden.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 42/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Relaxierung von A*<br />
Algorithmus R ∗ δ<br />
Für e<strong>in</strong>e gegebene Kostenhöhe C (e<strong>in</strong>es Zielknotens) bewertet das<br />
Risikomaß für jeden Knoten n <strong>in</strong> der OPEN-Liste, <strong>in</strong>wieweit C durch<br />
Expandieren von n noch verbessert werden kann.<br />
R = R(C). Das Risikomaß ist folglich e<strong>in</strong>e monoton steigende<br />
Funktion der Kosten C. Je größer der R(C)-Wert e<strong>in</strong>es Knotens n,<br />
desto größer ist das Risiko, e<strong>in</strong>e Verbesserung von C zu verpassen,<br />
falls mit C term<strong>in</strong>iert wird, ohne n zu expandieren.<br />
Beende Suche, wenn Risikowert R(C) jedes Knotens <strong>in</strong> der<br />
OPEN-Liste unter e<strong>in</strong>er vom Anwender akzeptierten Risikoschwelle δ<br />
ist.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 43/44
<strong>E<strong>in</strong>führung</strong> Graphensuche Un<strong>in</strong>formierte Suche Informierte Suche<br />
Weiterführende Informationen<br />
Theodor Lettmann & Benno Ste<strong>in</strong>.<br />
Unterlagen zur Vorlesung ” Heuristische <strong>Suchverfahren</strong>“, gehalten<br />
von Dr. Theodor Lettmann (wieder im SoSe 2011).<br />
http://www.cs.uni-paderborn.de/fachgebiete/<br />
fg-kle<strong>in</strong>e-buen<strong>in</strong>g/lehre/<strong>heuristische</strong>-suchverfahren.<br />
html.<br />
Nils J. Nilsson.<br />
Pr<strong>in</strong>ciples of Artificial Intelligence.<br />
Spr<strong>in</strong>ger, 1982.<br />
Judea Pearl.<br />
Heuristics.<br />
Addison-Wesley, 1984.<br />
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>heuristische</strong> <strong>Suchverfahren</strong> Markus Eberl<strong>in</strong>g 44/44