M+K-Aufgabe: Suchbaum

Werbung
M+K-Aufgabe: Suchbaum
(3, 3, <,
0, 0)
Tj T lZZZZZ
O
¬(1, 3, >, 2, 0)
ddd
ddddddd iiiiii
d
d
d
d
d
d
ii
ddd
ddddddd
iiii
d
d
i
d
d
i
d
d
i
ti
d
r ddd
¬(2, 3, >, 1, 0)
ZZ
TTTT
TTTT ZZZZZZZZZZZZ
ZZZZZZ
TTTT
ZZZZZZ
TT*
ZZ,
(3, 2, >, 0, 1)
(2, 2, >, 1, Ti 1)
T
jjjj
jjjj
j
j
j
j
jt jjj
¬(2, 3, <, 1, 0)
(3, 2, <,
0, 1)
O
·
KI, SS 11, Folien 2(1) , Seite 1 28. April 2011
(3, 1, >,
0, 2)
O
TTTT
TTTT
TTTT
T)
iii4
iiii
i
i
i
ii
iiii
i
t iii
·
M+K-Aufgabe: Lösung
(3, 3, <,
0, 0)
O
Vk V
hhh3
hhhh
hs hhh
(3, 2, >, 0, 1)
VVVV
VVVV
V+
(2, 2, >,
1, 1)
O
(3, 2, <,
0, 1)
O
(3, 0, >,
0, 3)
O
(3, 1, <,
0, 2)
O
(1, 1, >,
2, 2)
O
(2, 2, <,
1, 1)
O
(0, 2, >,
3, 1)
O
(0, 3, <,
3, 1)
O
(0, 1, >,
3, 2)
O
(0, 2, <,
3, 1)
O
(0, 0, >, 3, 3)
KI, SS 11, Folien 2(1) , Seite 2 28. April 2011
(3, 1, >, 0, 2)
hhh3
hhhh
hs hhh
Beobachtungen: Varianten der Repräsentation
•
Das Problem ist nicht ganz eindeutig formuliert
•
Modellierung des Ein-und Aussteigens aus dem Boot.
1M, 1K am Ufer und 1 K im Boot kommt an?
Die Repräsentation bestimmt die Struktur des Suchraumes:
nummerierte M und K:
Anfangssituation: {M1, M2, M3, K1, K2, K3, B}
15 Folgesituationen:
12 erlaubte Folgesituationen.
•
•
Repräsentation beeinflusst Knoten und Nachfolgerfunktion
Festlegung der Repräsentation ist wichiger Teil der Optimierung der
Suche.
KI, SS 11, Folien 2(1) , Seite 3 28. April 2011
Suchraum, Suchgraph
Knoten
Kanten
Anfangssituation
Zielsituationen
(mit innerer Struktur) Situation, Zustände
zeigen auf Nachfolgesituationen (algorithmisch erzeugt)
Gegeben über Eigenschaft eines Knotens
Suchraum = gerichteter Graph mit Erzeugungsalgorithmus
•
•
•
Suchraum ist i.a. nicht explizit gegeben ( Erzeugungsregeln )
Suchraum kann unendlich groß sein
Suche und partielle Erzeugung des Graphen sind verflochten.
KI, SS 11, Folien 2(1) , Seite 4 28. April 2011
Wichtige Begriffe
Verzweigungrate des Suchraumes bei Knoten K (branching factor)
= Anzahl der direkten Nachfolger von K.
Größe des Suchraumes ab K in Tiefe d = Anzahl der Knoten, die
von K aus in d Schritten erreichbar sind.
mittlere Verzweigungrate des Suchraumes
Suchstrategie: zur Durchmusterung des Suchraumes
vollständige Strategie findet in endlicher Zeit ein Ziel, falls eines existiert.
KI, SS 11, Folien 2(1) , Seite 5 28. April 2011
Verzweigunsrate und Komplexität
• I.a. mittlere Verzweigungsrate c > 1.
Somit Aufwand : exponentiell ck in der Tiefe k des Suchraumes.
kombinatorische Explosion.
• Die meisten Suchprobleme sind NP-vollständig bzw. NP-hart.
(auf endlichen Graphen)
⇒ Worst-case-exponentieller Zeitaufwand in der Größe des Problems.
KI, SS 11, Folien 2(1) , Seite 6 28. April 2011
Nicht-informierte Suche
Nicht-informierte Suche (Blind search)
Nur Graphstruktur wird verwendet, kein Wissen über Güte der Knoten
Verfahren:
•
Nichtdeterministische Suche
•
Tiefensuche
•
Breitensuche
•
Tiefensuche (Variante: iteratives Vertiefen)
•
Suche mit Speicherung von Knoten
KI, SS 11, Folien 2(1) , Seite 7 28. April 2011
Nicht-informierte Suche
Algorithmus nicht-informierte (nichtdeterministische) Suche
L Liste der offenen Knoten, markiert mit Weg
Eingabe: Multimenge der initialen Knoten
1. Wenn L leer, dann breche ab
2. Wähle Knoten K aus L
3. Wenn K Zielknoten, dann gebe aus: Zielknoten und Weg
4. Wenn K kein Zielknoten, dann: N (K) direkten Nachfolger von K
L0 := (L ∪ N (K)) \ {K}
Gehe zu 1 mit L := L0
KI, SS 11, Folien 2(1) , Seite 8 28. April 2011
Tiefensuche
Nehme bei Auswahl den ersten Knoten in L:
L ist Liste von Knoten, markiert mit dem Pfad.
1. Wenn L leer, breche ab.
2. Sei L = K : R
3. Wenn K Zielknoten, dann gebe aus Zielknoten und Weg.
4. Wenn K kein Zielknoten, dann
L := N (K) ++ R.
Mache weiter mit 1.
Backtracking.
KI, SS 11, Folien 2(1) , Seite 9 28. April 2011
Breitensuche
L Menge von Knoten, markiert mit dem Weg
1. Wenn L leer, dann breche ab.
2. Wenn K ∈ L Zielknoten, dann gebe aus: K und Weg
3. Sonst,
Mache weiter mit L := N (L) und gehe zu 1.
KI, SS 11, Folien 2(1) , Seite 10 28. April 2011
Tiefensuche und Varianten
Iteratives Vertiefen
Iteratives Vertiefen mit Knotenspeicherung
Rückwärtssuche
Bidirektionale Suche = Vorwärtssuche und Rückwärtssuche:
KI, SS 11, Folien 2(1) , Seite 11 28. April 2011
Informierte Suche:
Bergsteiger-Prozedur
Prozedur: Bergsteigen
Eingabe: L Liste der initialen Knoten:
jeder Knoten markiert mit Weg
1
2
3
4
Wenn L leer ist, abbrechen
sei L = K : R
Wenn K ein Zielknoten: gebe K und Weg aus.
Sei N (K) die sortierten Nachfolger von K.
Entferne aus N (K) die bereits im Weg bis K besuchten Knoten
mit Ergebnis N 0
Setze L := N 0 ++ R und gehe zu Schritt 1.
Knoten werden nicht doppelt besucht!!
KI, SS 11, Folien 2(1) , Seite 12 28. April 2011
Der Beste-zuerst (Best-First) Suche
Eingabe: sortierte L Liste der initialen Knoten
Jeder Knoten markiert mit Weg
1
2
3
4
Wenn L leer ist, abbrechen
sei L = K : R
Wenn K Zielknoten, dann gebe K und Weg aus.
Sei N (K) die Liste der Nachfolger von K. Entferne aus N (K)
die bereits im Weg besuchten Knoten mit Ergebnis N 0
Sortiere N 0 ++ R mit Ergebnis L0 nach den Bewertungen.
Weiter mit Schritt 1, wobei L := L0.
KI, SS 11, Folien 2(1) , Seite 13 28. April 2011
A∗-Algorithmus
Gegeben:
•
•
•
•
•
gerichteter Graph mittels NF(.).
additive Kostenfunktion gW (.) auf Wegen:
gW (N1 . . . Nk ) = gW (N1N2) + gW (N2N3) + . . . + gW (Nk−1Nk ).
ein Startknoten S
eine Schätzfunktion h(·),
schätzt die Kosten von N bis zum nächsten Ziel.
Test auf Zielknoten Z.
Aufgabe: Auffinden eines optimalen (d.h. mit minimalen Kosten)
Weges von S zu einem der Zielknoten,
KI, SS 11, Folien 2(1) , Seite 14 28. April 2011
Beispiele: A∗-Algorithmus
• Suche nach minimalen Wegen
• Suche nach einem kürzesten Weg von A nach B in einem Stadtplan.
die Knoten sind die Kreuzungen
die Kanten sind Straßenabschnitte zwischen den Kreuzungen;
die Kosten entsprechen der Weglänge.
KI, SS 11, Folien 2(1) , Seite 15 28. April 2011
A∗-Algorithmus
Heuristische Funktion f
f (N ) = g(N ) + h(N ).
Kombination
der bereits verbrauchten Kosten g(N ) vom Start bis zu
einem aktuellen Knoten N
und der noch geschätzten Kosten bis zu einem Zielknoten Z .
KI, SS 11, Folien 2(1) , Seite 16 28. April 2011
Varianten des A∗-Algorithmus
• Baum-Such-Verfahren: Kein Update des minimalen Weges bis zu
einem Knoten während des Ablaufs.
• Graph-Such-Verfahren: Update des minimalen Weges bis zu einem
Knoten während des Ablaufs
KI, SS 11, Folien 2(1) , Seite 17 28. April 2011
A∗-Algorithmus
Listen OP EN , CLOSED von Knoten
Jeder Knoten N ist markiert
mit dem besten bisherigen Weg: g(N )
KI, SS 11, Folien 2(1) , Seite 18 28. April 2011
Start mit N = S, OPEN = {S}, CLOSED = ∅
WHILE OPEN 6= ∅ AND N kein Zielknoten
Berechne Liste der Nachfolger NF = NF(N )
Schiebe N von OPEN nach CLOSED.
FOR N 0 ∈ NF DO
berechne g(N ) + gw (N, N 0).
Wenn N 0 bereits in OPEN oder CLOSED und
g(N ) + gw (N, N 0) < g(N 0), d.g neues Minimimum, dann
Update g(N 0) mit neuem Minimum und schiebe N 0 nach OPEN.
Wenn N 0 6∈ OPEN ∪ CLOSED, dann N 0 einfügen in OPEN
END-FOR
Wähle N aus OPEN mit minimalem f (N ) = g(N ) + h(N )
END-WHILE
Wenn OPEN = ∅, dann Fehler,
Sonst ist N der Zielknoten, mit dem optimalen gefundenen Weg markiert.
Beispiel
Fortschritt des A∗-Algorithmus
Jede Kante hat Gewicht 1
h: Rechteck-Norm-Abstand |y2 − y1| + |x2 − x1| Knoten bis Ziel
Z
S
KI, SS 11, Folien 2(1) , Seite 20 28. April 2011
Beispiel: nicht-optimaler Weg
Wenn h die Weglänge zum Ziel nicht unterschätzt
A
h(S) = 4
h(A) = 3
1
5
4
S
1
h(B) = 6
B
KI, SS 11, Folien 2(1) , Seite 21 28. April 2011
Z
A∗o-Algorithmus
Start mit N = S, OPEN = {S}, CLOSED = ∅, d = ∞
WHILE OPEN 6= ∅
Berechne Liste der Nachfolger NF(N )
Schiebe N von OPEN nach CLOSED.
FOR N 0 ∈ NF(N ) DO
berechne g(N ) + gw (N, N 0).
Wenn N 0 bereits in OPEN oder CLOSED und
g(N ) + gw (N, N 0) < g(N 0) neues Minimimum, dann
Update N 0 mit neuem Minimum und N 0 nach OPEN.
Wenn N 0 6∈ OPEN ∪ CLOSED, dann N 0 einfügen in OPEN
END-FOR
Für alle Zielknoten N aus OPEN: d = min(d, g(N )).
N nach CLOSED.
Alle N ∈ OPEN mit d ≤ g(N ) + h(N ) nach CLOSED.
Wähle N aus OPEN mit minimalem f (N ) = g(N ) + h(N )
END-WHILE
Ausgabe: d (und Weg.)
KI, SS 11, Folien 2(1) , Seite 22 28. April 2011
Beispiel
1
h(A) = 7
A
4
1
S
1
2
B
h(B) = 8
5
Z
C
D
h(C) =3 h(D)=4
KI, SS 11, Folien 2(1) , Seite 23 28. April 2011
Minimax-Methode bei Spielbäumen
• Der Spielbaum wird bis zur Tiefe d expandiert
• die Blätter werden direkt bewertet
• über eigene Zugmöglichkeit wird maximiert
• über Zugmöglichkeiten des Gegners wird minimiert.
KI, SS 11, Folien 2(1) , Seite 24 28. April 2011
Minimax-Methode bei Spielbäumen
Prozedur Minimax (Zustand, Spieler)
Erzeuge NF = alle Nachfolgezustände zu (Zustand, Spieler)
Wenn N F = ∅, return: Wert(Zustand).
Sonst: Wenn Spieler == Maximierer,
return: max{Minimax(Z, Spieler) | Z ∈ N F }
Sonst: Wenn Spieler == Minimierer,
return: min{Minimax(Z, Spieler) | Z ∈ N F }
Wobei Spieler den jeweils anderen Spieler bedeuten soll.
KI, SS 11, Folien 2(1) , Seite 25 28. April 2011
Tictactoe
Die einfachste Bewertung ist:
1
0
-1
Gewinn:
Remis:
Verlust:
XXX in Reihe, Spalte oder Diagonale
X und O in jeder Zeile, Spalte oder Diagonale
OOO in Reihe, Spalte oder Diagonale
kompliziertere Bewertung:
+
+
-
(#einfach x-besetzte Zeilen/Spalten/Diag) * 1
(# doppelt x-besetzte Zeilen/Spalten/Diag) * 5
(20, falls Gewinnsituation)
(#einfach o-besetzte Zeilen/Spalten/Diag) * 1
(# doppelt o-besetzte Zeilen/Spalten/Diag) * 5
(20, falls Verlustsituation)
KI, SS 11, Folien 2(1) , Seite 26 28. April 2011
Spielbaum (Auszug)
X--OO-X
X-Spieler zieht
XX-OO-X
0
KI, SS 11, Folien 2(1) , Seite 27 28. April 2011
X-X
-OO-X
8
X-XOO-X
−3
X--OX
O-X
1
X--OOXX
−3
Beispiel
X--OOXX
Fortsetzung der ersten Situation nach möglichen Zügen von O-Spieler:
XXO
-OO-X
−20
Hier ist zu minimieren
KI, SS 11, Folien 2(1) , Seite 28 28. April 2011
XXOOO-X
0
XX-OO
O-X
0
XX-OOOX
1
Alpha-Beta Suche
Suchfenster [α, β]
•
•
•
Starte mit alpha = −∞,beta = ∞
Wenn Tiefenschranke erreicht, alles bewerten
Wenn minimiert werden soll:
UNTIL: alle Söhne abgearbeitet oder alpha ≥ beta.
Alpha-Beta(Sohn): maximieren; aktuelle alpha, beta
ergibt einen Wert w.
beta := min(beta, w)
RETURN beta
Wenn maximiert werden soll:
UNTIL: alle Söhne abgearbeitet oder alpha ≥ beta
Alpha-Beta(Sohn): minimieren; aktuelle alpha, beta
ergibt einen Wert w.
alpha := max(alpha, w)
RETURN alpha
KI, SS 11, Folien 2(1) , Seite 29 28. April 2011
Spielbaum Beispiel
Spielbaum, der an der Wurzel zu maximieren ist.
a
Max
Min
b
c
Max
2
4
-1
KI, SS 11, Folien 2(1) , Seite 30 28. April 2011
6
1
0
Beispiel Minimax-Baum
O
p=
B
A
0,7
A1
1
1
0,3
A2
20
20
0,1
B1
2
3
0,9
B2
8
6
relative Ordnung ist erhalten, die Erwartungswerte verschieben sich:
A
B
0.7 ∗ 1 + 0.3 ∗ 20 < 0.1 ∗ 2 + 0.9 ∗ 8
0.7 ∗ 1 + 0.3 ∗ 20 > 0.1 ∗ 3 + 0.9 ∗ 6
KI, SS 11, Folien 2(1) , Seite 31 28. April 2011
Spielbaum mit Zufall: Skizze
Maximum
A zieht
E
B würfelt
Minimum
B zieht
E
A würfelt
p1
p2
p3
Maximum
A zieht
Bewertungen
KI, SS 11, Folien 2(1) , Seite 32 28. April 2011
Herunterladen