24.02.2013 Aufrufe

Einführung in heuristische Suchverfahren - Universität Paderborn

Einführung in heuristische Suchverfahren - Universität Paderborn

Einführung in heuristische Suchverfahren - Universität Paderborn

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!