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