Vorlesung: „Künstliche Intelli Künstliche Intelligenz“
Transcription
Vorlesung: „Künstliche Intelli Künstliche Intelligenz“
Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Vorlesung: „Künstliche Künstliche Intelligenz“ Intelligenz - Suche und Spieltheorie - Künstliche Intelligenz P LS ES S Miao Wang ST 1 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Inhaltliche Planung für die Vorlesung 1) Definition und Geschichte der KI, PROLOG 2) Expertensysteme 3) Logisches Schließen, Resolution 4) Suche und Spieltheorie 5) Spieleprogrammierung 6) General Game Playing 7) Reinforcement Learning und Spieleprogrammierung 8) Mustererkennung 9) Neuronale Netze 10) Optimierungen (genetische und evolutionäre Algorithmen) 11) Bayes-Netze, Markovmodelle 12) Robotik, Pathfinding der rote Vorlesungsfaden... Künstliche Intelligenz Miao Wang 2 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Suche Künstliche Intelligenz Miao Wang 3 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Anwendungen der Suche Künstliche Intelligenz Miao Wang 4 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Heutiger Inhalt der Vorlesung • • • • • Allgemeines Suchproblem Uninformierte Suche • Tiefensuche • Breitensuche • Iterative Tiefensuche • Bidirektionale Suche Informierte Suche • Branch-and-Bound • Suche mit uniformen Kosten • Heuristiken • Bestensuche • A*-Suche • A*-Varianten Spieltheoretische Suche • Min-Max-Algorithmus (Zweispielersuche) • Alpha-Beta-Pruning (Zweispielersuche) • Unterscheidung von Spielen • maxN-Variante (Mehrspielersuche) • Paranoid-Variante (Mehrspielersuche) Zusammenfassung Künstliche Intelligenz Miao Wang 5 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das allgemeine Suchproblem Finde einen Weg von einem Startpunkt zu einem der Zielpunkte. Der Graph wird dabei nicht (wie üblich in der Graphentheorie) explizit gegeben, sondern wird implizit als Baum erstellt und repräsentiert. Gegeben: Startzustand: s0 Übergangsfunktion (Transition): T = S x S Zustände (implizit generiert aus s0 und T): S = {s0, s1, s2, …, sn} Gesucht: Zielzustand (Goal): ein Element aus G ⊆ S Optional: Weg von s0 zum Goal Hilfsvariablen: OPEN = Liste von aktiv zu untersuchenden Zuständen CLOSED = Liste von bereits besuchten Zuständen Künstliche Intelligenz Miao Wang 6 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Uninformierte Suche Eine uninformierter Suchalgorithmus benutzt intuitive Methoden für das Durchsuchen des Suchraumes. Es finden keine Optimierung statt, die den Suchraum reduzieren könnten, indem Informationen aus dem Datensatz gezogen werden. 1. 2. 3. 4. 5. Init: Fail: Select: Terminate: Expand: 6. Loop: OPEN als Stack OPEN als Queue Künstliche Intelligenz OPEN = {s0} , CLOSED = {} if OPEN = {} terminate with FAIL Extract a state n from OPEN and save n to CLOSED if n ∈ G terminate with SUCCESS Find successors m of n with T If m ∈ (OPEN ∪ CLOSED) CLOSED add m to OPEN Goto Step 2 Tiefensuche Breitensuche Miao Wang 7 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Tiefensuche OPEN 1 - 2, 5, 9, 12 1 3, 4, 5, 9, 12 1, 2 4, 5, 9, 12 1, 2, 3 5, 9, 12 1, 2, 3, 4 6, 7, 8, 9, 12 1, 2, 3, 4, 5 7, 8, 9, 12 1, 2, 3, 4, 5, 6 8, 9, 12 1, 2, 3, 4, 5, 6, 7 9, 12 1, 2, 3, 4, 5, 6, 7, 8 10, 11, 12 1, 2, 3, 4, 5, 6, 7, 8, 9 11, 12 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 12 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 , 13 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 13, 14, 15 14, 15 15 Künstliche Intelligenz Miao Wang CLOSED 8 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Breitensuche OPEN CLOSED 1 - 2, 3, 4, 5 1 3, 4, 5, 6, 7 1, 2 4, 5, 6, 7, 8, 9, 10 1, 2, 3 5, 6, 7, 8, 9, 10, 11, 12 1, 2, 3, 4 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5 7, 8, 9, 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6 8, 9, 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7 9, 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7, 8 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7, 8, 9 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 13, 14, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 14, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 , 13 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 Künstliche Intelligenz Miao Wang 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 9 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Analyse: Tiefensuche Sei b der maximale Verzweigungsfaktor, d die Tiefe von G und t die Tiefe des Suchbaums (d < t) Laufzeit: Wie viele Knoten müssen angefasst werden (worst case)? G befindet sich auf Tiefe d, im worst case ist er im „rechtesten“ Ast Wir müssen aber evtl. vorher mehrmals bis Tiefe t runter, d.h. O(bt) Speicherverbrauch: Wie viele Knoten werden im Stack maximal gespeichert (worst case)? Bis Tiefe t haben wir (t-1) * (b-1) 1) * (b (b-1) + b = O(t*b) In Tiefe d kommen noch b hinzu, d.h. insgesamt (t-1) Künstliche Intelligenz Miao Wang 10 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Analyse: Breitensuche Sei b der maximale Verzweigungsfaktor, d die Tiefe von G und t die Tiefe des Suchbaums (d < t) Laufzeit: Wie viele Knoten müssen angefasst werden (worst case)? Es müssen alle Knoten bis Tiefe d angefasst werden, d.h. bd+1 = O(bd) Speicherverbrauch: Wie viele Knoten werden in der Queue maximal gespeichert (worst case)? In der Tiefe d müssen maximal bd Knoten abgespeichert werden, d.h. O (bd) Künstliche Intelligenz Miao Wang 11 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Tiefensuche in Prolog %Graph definiert als %con(X,Y). % depth(Goals, Open, Closed) depth(Goals, [X|_], _) :member (X, Goals), !, write(X). depth(Goals, [X|RestOpen], Closed) :member(X, Closed), !, depth(Goals, RestOpen, RestOpen Closed). depth(Goals, [X|RestOpen], Closed) :write(X), kinder(X, L), append(L, RestOpen, RestOpen Open), depth(Goals, Open, [X|Closed]). % kinder (X, L) findet alle Kinder von X und legt sie in L ab kinder(X, L) :- setof(Y, con(X,Y), L). kinder(_, []). Künstliche Intelligenz Miao Wang 12 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Breitensuche in Prolog %Graph definiert als %con(X,Y). % depth(Goals, Open, Closed) depth(Goals, [X|_], _) :member (X, Goals), !, write(X). depth(Goals, [X|RestOpen], Closed) :member(X, Closed), !, depth(Goals, RestOpen, RestOpen Closed). depth(Goals, [X|RestOpen], Closed) :write(X), kinder(X, L), append(RestOpen RestOpen, L, Open), depth(Goals, Open, [X|Closed]). % kinder (X, L) findet alle Kinder von X und legt sie in L ab kinder(X, L) :- setof(Y, con(X,Y), L). kinder(_, []). Künstliche Intelligenz Miao Wang 13 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Iterative Tiefensuche (Iterative Deepening) Mischung zwischen Tiefen- und Breitensuche Tradeoff zwischen Laufzeit und Speicher Tiefensuche für Tiefe 1 Tiefensuche für Tiefe 2 Bsp.: Schach Tiefensuche für Tiefe 3 Tiefensuche für Tiefe 4 Laufzeit: O(bd) Speicher: O(b*d) Künstliche Intelligenz Miao Wang 14 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Bidirektionale Suche Gleichzeitig vom Start und Ziel suchen verringert die Laufzeit (nicht immer möglich) siehe auch: Daten- vs. Zielorientierte Suche Bsp.: Navigationssysteme Laufzeit: O(bd/2) Speicher: O(bd/2) Künstliche Intelligenz Miao Wang 15 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das 8-Puzzle-Problem (aka 3x3-Schieberätsel) Künstliche Intelligenz Miao Wang 16 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das 8-Puzzle-Problem (aka 3x3-Schieberätsel) Modell: Verschieben des Blanks, Suchbaum wird implizit aufgebaut Optimierung: Speichern der Rotation Definieren eines festen Ablaufs, z.B: zuerst hoch dann links dann runter dann rechts Künstliche Intelligenz Miao Wang 17 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das 8-Puzzle-Problem (aka 3x3-Schieberätsel) Künstliche Intelligenz Miao Wang 18 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Informierte Suche Bisher wurde der Knoten in Schritt 3 immer beliebig ausgewählt (entspr. der Datenstruktur von OPEN). Die Suche kann hier jedoch beschleunigt werden, wenn Informationen des Datensatzes mit in die Entscheidung einfließen, welcher Knoten als nächster aus OPEN entnommen wird. Für größere Suchbäume sind Breiten- und Tiefensuche nicht effizient genug. Vielversprechender sind Ansätze, bei denen Domänenwissen zur Steuerung des Suchprozesses eingesetzt wird. wird Dies kann dadurch geschehen, dass die Zustände (Knoten) danach bewertet werden, wie erfolgversprechend sie sind. Solch eine Bewertung nennt man heuristische Funktion. Ein Suchverfahren, das eine heuristische Funktion zur Auswahl der zu expandierenden Zustände einsetzt, heißt informiertes Suchverfahren oder auch heuristisches Suchverfahren. Suchverfahren Einfache Heuristik: Einführung eines Kostenmaßes für den bisher eingeschlagenen Weg: c(s) = bisher berechneten Kosten von s0 bis s c(n,m)) = Kosten für den Übergang von n nach m gemäß T Künstliche Intelligenz Miao Wang 19 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Branch-and-Bound Branch-and-Bound Bound ist ein einfacher Algorithmus, um in einem Optimierungsverfahren unnötige Äste im Suchbaum abzuschneiden („Pruning“). Es wird häufig in der Kostenanalyse verwendet. Einführung einer Kostenschranke: c* = minimale Kosten bis zum jetzigen Zeitpunkt in der Suche Idee: Starte mit c* = ∞ und reduziere c* immer dann, wenn ein neues, besseres Ziel aus G gefunden wird 1. 2. 3. 4. Init: Fail: Select: Loop1: 5. Expand: 6. Loop2: OPEN = {s0} , CLOSED = {} , c(s c( 0) = 0 , c* = ∞ if OPEN = {} terminate with c* Extract a state n from OPEN and save n to CLOSED if n ∈ G and c(n) < c* c* = c(n) and goto Step 2 if c(n) < c* generate successors m of n with T For each successor m: if m ∉ (OPEN ∪ CLOSED) CLOSED c(m) = c(n) ) + c(n, c( m) insert m to OPEN else if m ∈ (OPEN ∪ CLOSED) c(m) ) = min { c(m) c( , c(n) + c(n, m) } if c(m) ) has decreased and m ∈ CLOSED move m from CLOSED to OPEN Goto Step 2 Nicht geeignet für negative Kosten! Künstliche Intelligenz Miao Wang 20 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Branch-and-Bound Bound (kombiniert mit Tiefensuche) Angenommen wir planen eine Skireise und wollen die günstigste Variante wählen: Skireise planen Flug A 250 € Hotel A1 120 € Flug B 280 € Hotel A2 160 € Hotel B1 80 € Flug C 390 € Hotel B2 110 € Hotel B3 20 € Hotel C1 40 € Hotel C2 30 € Skier 40 € Skier 20 € Skier 30 € Skier 10 € Skier 20 € Skier 40 € Skier 20 € Skier 10 € Skier 0€ Skier 10 € Skier 0€ Skier 10 € Skier 20 € Skier 10 € 410 € 390 € 400 € 420 € 430 € 400 € 380 € 400 € 390 € 420 € 430 € 440 € 440 € 430 € Künstliche Intelligenz Miao Wang 21 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Branch-and-Bound Bound (kombiniert mit Tiefensuche) Angenommen wir planen eine Skireise und wollen die günstigste Variante wählen: Skireise planen Flug A 250 € Hotel A1 120 € Hotel A2 160 € Skier 40 € Skier 20 € Skier 30 € 410 € 390 € 400 € Künstliche Intelligenz Flug B 280 € 410 € Hotel B1 80 € Skier 40 € Skier 20 € 400 € 380 € Miao Wang Flug C 390 € Hotel B2 110 € 390 € 390 € 22 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Suche mit uniformen Kosten Modifizierung der Breitensuche mit Kostenfunktion: Wähle immer den Knoten mit den niedrigsten Kosten, die von Start bis zu diesem Punkt angefallen sind. 1. Init: 2. Fail: 3. Select: 4. Terminate: 5. Expand: 6. Loop: Positive Kosten: Negative Kosten: Negative Zyklen: OPEN = {s0} , CLOSED = {} , c(s0) = 0 if OPEN = {} terminate with FAIL Extract state n with minimum costs c(n) c( from OPEN and save n to CLOSED if n ∈ G terminate with SUCCESS Find successors m of n with T For each successor m: if m ∉ (OPEN ∪ CLOSED) CLOSED c(m) = c(n) ) + c(n, c( m) insert m to OPEN else if m ∈ (OPEN OPEN ∪ CLOSED) c(m) ) = min { c(m), c( c(n) + c(n, m) } if c(m) ) has decreased and m ∈ CLOSED move m from CLOSED to OPEN Goto Step 2 Dijkstra können m von CLOSED zurück zu OPEN bringen führen zur Nichtterminierung E. W. Dijkstra: A note on two problems in connexion with graphs. In: Numerische Mathematik. 1 (1959), S. 269–271 http://www-m3.ma.tum.de/foswiki/pub/MN0506/WebHome/dijkstra.pdf Künstliche Intelligenz Miao Wang 23 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel 1: Uniforme Kostensuche 2 1 1 3 5 1 3 1 4 8 2 1 5 10 3 15 1 OPEN CLOSED 1 (0) - 2 (2), 5 (1) 1 (0) 2 (2), 9 (2) 1 (0), 5 (1) 9 (2), 3 (3), 6 (5) 1 (0), 5 (1), 2 (2) 3 (3), 6 (5), 10 (10) 1 (0), 5 (1), 2 (2), 9 (2) 6 (5), 10 (10), 4 (5) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3) 10 (10), 4 (5), 7 (6), 10 (9) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5) 7 (6), 10 (9), 8 (6) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6) 10 (9), 8 (6), 3 (9), 11 (16) 10 (9), 3 (9), 11 (16), 12 (21) 3 (9), 11 (16), 12 (21), 11 (12) 12 (21), 11 (12) 12 (21), 12 (13) Künstliche Intelligenz Miao Wang 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9), 11 (12) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9), 11 (12), 12 (13) 24 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel 2: Uniforme Kostensuche 10 OPEN 20 2 -15 15 Künstliche Intelligenz Miao Wang CLOSED 1 (0) - 2 (10), 3 (20) 1 (0) 3 (20), 4 (12) 1 (0), 2 (10) 3 (20), 5 (27) 1 (0), 2 (10), 4 (12) 5 (27), 4 (5) 1 (0), 2 (10), 4 (12), 3 (20) 5 (27), 5 (20) 1 (0), 2 (10), 4 (12), 3 (20), 4 (5) - 1 (0), 2 (10), 3 (20), 4 (5), 5 (20) 25 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Heuristiken Domänenspezifisches Wissen um die Qualität von potentiellen oder partiellen Lösungen zu schätzen z.B. Kostenüberschlagsrechnung für eine Reise, Luftlinie als Distanz zwischen zwei Orten Eine Suche kann mit Hilfe von Heuristiken erheblich beschleunigt werden. Eine geeignete Heuristik sollte zielgerichtet sein, d.h. nicht nur die bisherige Vergangenheit betrachten, sondern auch eine Abschätzung zum Ziel geben. h(n) = heuristische (geschätzte) Kosten von n zum Ziel Eine heuristische Funktion ist um so brauchbarer, je mehr Zustände sie unterschiedlich bewertet. bewertet Eine heuristische Funktion, die alle Zustände gleich bewertet, ist unbrauchbar. Künstliche Intelligenz Miao Wang 26 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Bestensuche (Best-First-Search) Eine Bestensuche priorisiert nach einer Heuristik. Es wird in jeder Iteration stets der Knoten ausgewählt mit minimalen heuristischen Kosten. Die optimale Lösung ist jedoch nicht garantiert. Greedy-Bestensuche: Luftlinie nach Ulm: Basel Bayreuth Bern Frankfurt Innsbruck Karlsruhe Landeck Linz München Mannheim Memmingen Nürnberg Passau Rosenheim Stuttgart Salzburg Würzburg Zürich Künstliche Intelligenz Miao Wang 204 207 247 215 163 137 143 318 120 164 47 132 257 168 75 236 153 157 27 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Greedy-Bestensuche Luftlinie nach Ulm: Basel Bayreuth Bern Frankfurt Innsbruck Karlsruhe Landeck Linz München Mannheim 204 207 247 215 163 137 143 318 120 164 Memmingen Nürnberg Passau Rosenheim Stuttgart Salzburg Würzburg Zürich 47 132 257 168 75 236 153 157 Von Mannheim nach Ulm mit Greedy-Bestensuche: Mannheim h = 164 Karlsruhe h = 137 Würzburg h = 153 Künstliche Intelligenz Frankfurt h = 215 Nürnberg h = 132 Mannheim h = 164 Ulm h=0 München h = 120 Passau h = 257 Miao Wang Greedy findet den Weg Mannheim-Nürnberg-Ulm mit 401 km. Aber Mannheim-KarlsruheStuttgart-Ulm mit 238 km wäre deutlich kürzer. Bayreuth h = 207 28 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Heuristiken (2) Um die Probleme der Greedy-Bestensuche zu umgehen, wird nicht nur die heuristische Wert zum Ziel gewählt sondern zusätzlich noch die bisher verbrauchten Kosten vom Start. g(n) = minimale Kosten von s0 nach n h(n) = heuristische (geschätzte) Kosten von n zum Ziel f(n) = g(n) + h(n) mit g(s0) = 0 Eine Heuristik h ist zulässig, wenn sie optimistisch ist (Unterschätzung): h(n) ≤ h*(n) mit h*(n) = echte minimale Kosten von n zum Ziel Eine Heuristik h ist monoton, wenn jede Kante unterschätzt wird: ∀ Kinder m von n : h(n) – h(m) ≤ c(n,m) Konvertiere eine zulässige Heuristik in eine monotone mit h‘(m) = max { h(m), h(n) – c(n,m) } Eine Heuristik h1 ist mehr informiert als h2, wenn ∀n : h*(n) ≥ h1(n) > h2(n) Künstliche Intelligenz Miao Wang 29 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz A*-Algorithmus A* ist eine Bestensuche, die nur optimistische Heuristiken benutzt: 1. Init: 2. Fail: 3. Select: OPEN = {s0} , CLOSED = {} , f(s0) = g(s0) + h(s0) = h(s0) if OPEN = {} terminate with FAIL Extract a state n with minimum heuristic cost f(n) from OPEN and save n to CLOSED 4. Terminate: if n ∈ G terminate with SUCCESS and return f(n) 5. Expand: For each successor m of n with T: if m ∉ (OPEN ∪ CLOSED) CLOSED g(m) = g(n) ) + c(n, c( m) f(m) = g(m) ) + h(m) h( insert m to OPEN else if m ∈ (OPEN ∪ CLOSED) g(m) ) = min { g(m) g( , g(n) + c(n, m) } f(m) = g(m) ) + h(m) h( if f(m) ) has decreased and m ∈ CLOSED move m from CLOSED to OPEN 6. Loop2: Goto Step 2 Existieren bei Schritt 3 mehrere Zustände n mit gleichem f(n), so wähle jenes mit zusätzlich minimalsten g(n) Unzulässige Heuristiken können den Suchraum beschneiden, aber wenn zu viel beschnitten wird, kann das optimale Ziel ebenfalls weggeschnitten werden (siehe Greedy-Bestensuche) Greedy Künstliche Intelligenz Miao Wang 30 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: A* Von Mannheim nach Ulm mit A*: Mannheim g = 0, h = 164, f = 164 Karlsruhe g = 67, h = 137, f = 204 Nürnberg g = 230, h = 132, f = 362 Frankfurt g = 85, h = 215, g = 300 Luftlinie nach Ulm: Stuttgart g = 131, h = 75, f = 206 Basel g = 258, h = 204, f = 462 Würzburg g = 271, h = 153, f = 424 Ulm g = 238, h = 0, f = 238 Künstliche Intelligenz Basel Bayreuth Bern Frankfurt Innsbruck Karlsruhe Landeck Linz München Mannheim Memmingen Nürnberg Passau Rosenheim Stuttgart Salzburg Würzburg Zürich Miao Wang 204 207 247 215 163 137 143 318 120 164 47 132 257 168 75 236 153 157 31 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel 2: A* Von Linz nach Ulm mit A*: Linz g = 0, h = 318, f = 318 Salzburg g = 126, h = 236, g = 362 Passau g = 102, h = 257, f = 359 Nürnberg g = 322, h = 132, f = 454 München g = 291, h = 120, f = 411 Innsbruck g = 300, h = 163, f = 463 Memmingen g = 381, h = 47, f = 428 Künstliche Intelligenz Ulm g = 389, h = 0, f = 389 Luftlinie nach Ulm: Rosenheim g = 207, h = 168, f = 375 München g = 266, h = 120, f = 386 Nürnberg g = 436, h = 132, f = 568 Miao Wang Passau g = 455, h = 257, f = 712 Basel Bayreuth Bern Frankfurt Innsbruck Karlsruhe Landeck Linz München Mannheim Memmingen Nürnberg Passau Rosenheim Stuttgart Salzburg Würzburg Zürich 204 207 247 215 163 137 143 318 120 164 47 132 257 168 75 236 153 157 32 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz A*-Algorithmus Der A*-Algorithmus ist optimal.. Das heißt, er findet immer die Lösung mit den niedrigsten Gesamtkosten, wenn die Heuristik h zulässig ist. Wie bei Dijkstra hängt die Laufzeit von A* vom Datentyp von OPEN ab. Der A*-Algorithmus Algorithmus ist laufzeittechnisch recht effizient hat aber einen hohen Speicherbedarf in dichten Netzen, da alle Knoten in Open im Speicher liegen müssen. Der A*-Algorithmus enthält die folgenden Algorithmen als Spezialfälle: • Für c ≥ 0 und h = 0 erhält man den Dijkstra-Algorithmus. Dijkstra • Für c = 0 erhält man die Bestensuche. • Für c = 1 und h = 0 erhält man die Breitensuche. • Für c = -1 und h = 0 erhält man die Tiefensuche, wenn man Knoten verbietet wieder von CLOSED nach OPEN zu gelangen Künstliche Intelligenz Miao Wang 33 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz A* in Prolog %Graph definiert als %con(X,Y). % besta(Goals, Open, Closed) besta(Goals, [[X,_] | _], _) :member(X, Goals), !, write(X). besta(Goals, [[X,T] | RestOpen], Closed) :member([X,T1], Closed), T >= T1, !, besta(Goals, besta RestOpen, Closed). besta(Goals, [[X,T] | RestOpen], Closed) :member([X,T1], Closed), T < T1, !, kinderbest(X,T,L), kinderbest append(L, RestOpen, NewOpen), qsort(NewOpen, Open), besta(Goals, (Goals, Open, Closed). besta(Goals, [[X,T] | RestOpen], Closed) :write(X), heuristik(X,T,FX), write(FX), (FX), nl, kinderbest(X,T,L), append(L, RestOpen, NewOpen), qsort(NewOpen NewOpen, Open), besta(Goals,Open,[[X|T],Closed]). % kinderbest(X,T,L) (X,T,L) holt alle Kinder von X und fügt sie in L hinzu mit dem % heuristischen Wert basierend auf T und der Heuristik % qsort(X,Y) sortiert Liste X in Liste Y Künstliche Intelligenz Miao Wang 34 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz A*-Varianten Um die Speicherproblematik von A* zu umgehen, gibt es viele Variationen von A*: • IDA* (Iterative Deepening A*) • RBFS (Recursive Best-First Search) • MA* (Memory-Bounded A*) • SMA* (Simplified MA*) • D* (A* für dynamische Graphen) • SSS* (A* mit Alpha-Beta-Pruning bei Schach) Schach Künstliche Intelligenz Miao Wang 35 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Implementierung der Wegfindung ist nicht immer perfekt Künstliche Intelligenz Miao Wang 36 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Spieltheorie Künstliche Intelligenz Miao Wang 37 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Grundlagen der Spieltheorie Die Suche wird in der Spieltheorie benutzt um optimale Aktionen zu gegebenen Stellungen zu ermitteln. Dabei entstammt die Spieltheorie nicht Spielen, sondern ist ein mathematisches Feld, welches aus den Wirtschaftswissenschaften entstammt. Sie findet aber auch Anwendung in Politikwissenschaften, der Biologie, der Soziologie, der Psychologie oder der Künstlichen Intelligenz. Für spieltheoretische Probleme müssen wir das allgemeine Suchproblem etwas modifizieren: • Ein Zustand entspricht nun einer bestimmten Stellung / Zustand im Spiel • Die Übergangsfunktion beschreibt mögliche Aktionen des Computers oder des menschlichen Spielers um von einem Zustand zu einem Folgezustand zu gelangen • Meist existiert ein Zuggenerator,, der gegeben einen Zustand eine Menge an zulässigen Aktionen generiert • Ein Blattknoten repräsentiert ein Spielende und wird als terminale Stellung bezeichnet • In der Regel können wir die Suche nicht bis zu den Blattknoten ausführen. Wir brechen in einer Tiefe t vorzeitig ab. Die Stellungen auf Tiefe t sind nun ebenfalls terminale Stellungen • Alle terminalen Stellungen werden von einer Bewertungsfunktion bewertet, die angibt, ob das eine gute oder schlechte Stellung für den jeweiligen suchenden Spieler ist Künstliche Intelligenz Miao Wang 38 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Grundlagen der Spieltheorie Ein allgemeiner Suchbaum der Spieltheorie: Die Bewertungsfunktion ist in der Regel eine gewichtete Summe aus vielen kleinen Heuristiken: Künstliche Intelligenz Miao Wang 39 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Warum können wir nicht bis zu den Blättern suchen? Angenommen unser Spiel hat einen konstanten Verzweigungsfaktor von 30, d.h. 30 unterschiedliche Aktionsmöglichkeiten pro Stellung. Sei unsere erste Lösung in Tiefe 50. Der entsprechende Suchbaum hätte Knoten. Angenommen wir hätten 10.000 Computer, die jeweils eine Milliarde Suchschritte pro Sekunde schaffen, und man könne die Arbeit ohne Verluste auf alle Rechner verteilen, dann beläuft sich die Rechenzeit auf Dies ist zum Glück nur 1043 mal so lange wie unser Universum alt ist. Wie kann es dann sein, dass ein Schachcomputer gegen den Weltmeister gewinnt? Künstliche Intelligenz Miao Wang 40 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Tic-Tac-Toe Ein einfaches Spiel zur Überschaubarkeit ist Tic-Tac Tac-Toe. Der Zustandsraum von TTT ist so klein, dass man theoretisch auch bis zu den Blättern suchen könnte. Wenn wir suchen, müssen wir auch das mögliche Verhalten des Gegner in Betracht ziehen und entsprechend agieren. Das Verhalten des Gegners ist jedoch ungewiss und meistens kontraproduktiv. Idee: Gegner ist unfehlbar, spielt immer den bestmöglichen Zug (optimale Spielstrategie) Bewertung für terminale Stellungen: Halbzug -1 Zug Künstliche Intelligenz Miao Wang o gewinnt 0 1 remis x gewinnt 41 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Min-Max-Algorithmus Ein Nullsummenspiel ist definiert als ein Spiel, wo eine gewinnbringende Aktion eines Spielers den Gegenspieler stets schadet und andersrum. Die Gesamtsumme der Gewinne/Verluste aller Spieler ist gleich 0. Für einen optimalen Gegenspieler findet der Min-Max--Algorithmus für Nullsummenspiele für zwei Spieler die optimale Lösung: Ein Spieler versucht seine Bewertung stets zu maximieren, während der Gegenspieler versucht ihn zu minimieren. 0 -1 -1 0 J. von Neumann, “Zur Theorie der Gesellschaftsspiele,” Mathematische Annalen, vol. 100, no. 1, pp. 295–320, 1928. J.. von Neumann and O. Morgenstern, Theory of Games and Economic Behavior. Princeton University Press, 2007. ISBN-13: 978-0-69113-061-3. Künstliche Intelligenz Miao Wang 42 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Min-Max-Algorithmus Sei n die aktuelle Spielstellung Pseudocode: maxKnoten(n) if n is terminal state return eval(n) else w = -∞ ∞ for each successor m of n v = minKnoten(m) if v > w then w = v return w minKnoten(n) if n is terminal state return eval(n) else w = ∞ for each successor m of n v = maxKnoten(m) if v < w then w = v return w Sei b der Verzweigungsgrad (branching-factor)) und t die Tiefe des Suchbaums: Laufzeit: O(bt) Variante: Der NegaMax-Algorithmus Künstliche Intelligenz Miao Wang 43 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Min-Max-Algorithmus Künstliche Intelligenz Miao Wang 44 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Min-Max-Algorithmus in Prolog minmax(Pos, BestSucc, Val) :(moves(Pos, PosList), !, best(PosList PosList, BestSucc, Val)); eval(Pos, Val). best([Pos], Pos, Val) :- minmax(Pos, (Pos, _, Val), !. best([Pos1 | PosList], BestPos, BestVal) ) :: minmax(Pos1, _, Val1), best(PosList, , Pos2, Val2), betterof(Pos1, Val1, Pos2, Val2, BestPos, BestPos BestVal). betterof(Pos1, (Pos1, Val1, (mintomove(Pos1), (maxtomove(Pos1), betterof(Pos1, (Pos1, Val1, Pos2, Val2, Pos1, Val1) :: Val1 > Val2, !); Val1 < Val2, !). Pos2, Val2, Pos2, Val2). % max-Knoten % min-Knoten % moves(P,L) (P,L) ist der Zuggenerator und fügt alle gültigen Folgezustände von P in L % wenn P terminale Stellung, dann liefert moves(P,L) false Künstliche Intelligenz Miao Wang 45 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das Nash-Equilibrium Der Min-Max-Algorithmus findet als Hauptvariante stets ein Nash-Gleichgewicht. Nash Weicht der Spieler oder Gegenspieler von dieser Variante ab, kann der jeweilige Spieler seine Bewertung aus seiner Sicht nur verschlechtern. Beispiel von vorhin: J. Nash, “Equilibrium Points in N-Person Person Games,” Proceedings of the National Academy of Sciences, vol. 36, pp. 48–49, 1950. J. Nash, “Non-Cooperative Cooperative Games,” The Annals of Mathematics, vol. 54, no. 2, pp. 286–295, 1951. Künstliche Intelligenz Miao Wang 46 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Alpha-Beta-Pruning Min-Max Max hat exponentielles Wachstum, da alle Situationen betrachtet werden. Es gibt jedoch Situationen im Spielbaum, bei denen einzelne Zweige nicht mehr betrachtet werden müssen, da sie ein Maximum/Minimum am Elternknoten nicht mehr verändern. Das Alpha-Beta-Pruning nutzt dies aus um unnötige Äste im Baum abzuschneiden. Künstliche Intelligenz Miao Wang 47 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Alpha-Beta-Pruning Pseudocode: alpha-beta(n, α, β): eval if n is terminal state return eval(n) if n is max-Node for each successor m of n α = max{α α, alpha-beta(m, (m, α, β)} if α ≥ β return β else continue return α else if n is min-Node for each successor m of n (m, α, β)} β = max{β β, alpha-beta(m, if α ≥ β return α else continue return β Künstliche Intelligenz Miao Wang 48 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz 1 Beispiel: Alpha-Beta-Pruning [α α, β] 0 [-∞ ∞, ∞] hat blau sicher hat rot sicher Blau will maximieren Rot will minimieren 0 1 [-∞ ∞, ∞] 1 5 [0, ∞] [0,, ∞] 1 [-∞ ∞, ∞] 1 [0, 1] [0, ∞] 0 5 -2 < α -2 (= 0) α-Cutoff 1 -1 -5 1 2 2>β Künstliche Intelligenz Miao Wang (= 1) β-Cutoff 49 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Alpha-Beta-Pruning Exemplarisch illustrierte Laufzeiten für 4-gewinnt gewinnt in einem 7x6 Feld Tiefe Min-Max Alpha-Beta 7 0:05 min <= 1 sec 8 0:39 min 0:01 min 9 4:39 min 0:03 min 10 35:13 min 0:08 min 11 - 0:55 min 12 - 2:09 min 13 - 19:42 min Alpha-Beta Beta kann weiter optimiert werden, indem die Zugsortierung optimiert wird! Laufzeit: Im worst case genauso wie Min-Max: O(bt) Im best case (perfekte Zugsortierung): O(bd/2) Bei zufälliger Zugsortierung: Künstliche Intelligenz O(b3d/4) Miao Wang 50 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Unterscheidung von Spielen Spiele können unterschiedliche Eigenschaften haben, sodass sie nicht immer mit den vorgestellten Methoden so einfach zu lösen sind: Spieleranzahl: Ein-Spieler, Zwei-Spieler, Spieler, Mehrspieler Zugfolge: Partisan Informationsstand: perfekt, vollständig, unvollständig, … Wahrscheinlichkeiten: keine, diskret oder stetig Allianzen: kooperativ, nicht-kooperativ Gleichgewichte: kein, ein oder mehrere Wiederholungen: einmalig, mehrmalig eigenständig, mehrmalig aufbauend, … Entscheidungszeitraum: dynamisch / Echtzeit, statisch / rundenbasiert, … Künstliche Intelligenz Miao Wang 51 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Unvollständige Information: Das Ziegenproblem 1. Hinter einem Tor versteckt sich ein Auto, hinter den anderen beiden eine Ziege. 2. Der Kandidat wählt ein Tor aus. 3. Hat der Kandidat das Tor mit dem Auto gewählt, dann öffnet der Moderator zufällig eines der beiden anderen Tore, hinter dem sich immer eine Ziege befindet. 4. Hat der Kandidat ein Tor mit einer Ziege gewählt, dann öffnet der Moderator dasjenige der beiden anderen Tore, hinter dem die zweite Ziege steht. 5. Der Moderator bietet dem Kandidaten an, seine Entscheidung zu überdenken und das andere ungeöffnete Tor zu wählen. Was sollte der Kandidat tun? Lösung: Der Kandidat sollte das Tor wechseln. Seine Gewinnchance beträgt dann 2/3 anstatt 1/3. Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele Künstliche Intelligenz Miao Wang 52 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Allianzen: Das Gefangenendilemma • Zwei Gefangene werden verdächtigt, gemeinsam eine Straftat begangen zu haben. Die Höchststrafe für das Verbrechen beträgt fünf Jahre. • Beiden Gefangenen wird ein Handel vorgeschlagen: Wenn einer gesteht und somit seinen Partner mitbelastet, kommt er mit einer milden Strafe davon (1 Jahr) – der andere muss die vollen 5 Jahre absitzen. • Entscheiden sich beide weiter zu schweigen, führen die Indizienbeweise beide für 2 Jahre hinter Gitter. • Gestehen beide die Tat, erwartet jeden weiterhin eine Gefängnisstrafe von 3 Jahren. • Beide Gefangenen werden unabhängig voneinander befragt. Weder vor noch während der Befragung haben die beiden die Möglichkeit, sich untereinander abzusprechen. Was wäre eine rationale Entscheidung? Kollektiv wäre es sinnvoll zu schweigen Doch individuell wäre es vorteilhafter auszusagen Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele Künstliche Intelligenz Miao Wang 53 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Kooperationen: Eisverkäufer am Strand Hotellings Gesetz ist ein Theorem in der Mikroökonomie, welches demonstriert das einzeln, rational entscheidende Produzenten im Gesamten weniger Gewinn erwirtschaften als kooperativ handelnde. • Zwei Eisverkäufer platzieren ihre Stände an einem Strand von 100 m Länge. • Der Strand ist gleichmäßig mit Badegästen gefüllt und jeder Badegast wählt den Eisverkäufer, der näher dran ist, es sei denn der Weg ist zu weit. • Gesucht ist die optimale Position beider Eisverkäufer für den maximalen Umsatz Wenn beide Eisverkäufer rational und zielgerichtet handeln werden sie aus Konkurrenzgedanken immer näher Richtung Mitte wandern und letztlich weniger Umsatz machen! Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele Künstliche Intelligenz Miao Wang 54 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Mehrere Gleichgewichte: Der Kampf der Geschlechter Der Kampf der Geschlechter ist ein verwandtes Problem zum Gefangendilemma und weist zwei Nash-Gleichgewichte auf: Ein Mann und eine Frau wollen den Abend verbringen, haben sich aber noch nicht auf einen Ort geeinigt. Beide müssen sich unabhängig voneinander entscheiden. Das Fußballspiel wird von dem Mann, das Konzert von der Frau präferiert. Folgende Tabelle zeigt die mögliche „Auszahlung“: Fußball Konzert Fußball (3,1) (0,0) Konzert (0,0) (3,1) Es gibt zwei Nash-Gleichgewichte oben links und unten rechts. Das Problem ist, dass es keine dominanten Strategien Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele Künstliche Intelligenz Miao Wang 55 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Mehrspielerproblem Um Min-Max Max für mehrere Spieler anwenden zu können, müssen einige Anpassungen vorgenommen werden: • Für jede Ebene muss gespeichert werden, welcher Spieler an der Reihe ist • Die Bewertungsfunktion darf nicht mehr einen Wert zurückliefern, sondern muss einen Nutzenvektor erstellen, welche die Bewertungen für alle Spieler aus ihrer Sicht enthalten Es existieren nun jedoch mehrere Möglichkeiten die beste Alternative zu wählen. Künstliche Intelligenz Miao Wang 56 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz maxN-Variante Eine Variante wäre, wenn sich alle Spieler optimistisch verhalten und jeweils versuchen ihren eigenen Nutzen im Nutzenvektor stets zu maximieren: N. R. Sturtevant, A Comparison of Algorithms for Multi-player player Games, vol. 0302/2003. Springer Berlin / Heidelberg, 2003. ISBN-13: 978-3-540-20545-6. C. Luckhardt and K. Irani, “An algorithmic solution of N-person person games,” Fifth National Conference of the American Association for Artificial Intelligence (AAAI-86), vol. 1986, pp. 158–162, 1986. Künstliche Intelligenz Miao Wang 57 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Paranoid-Variante Im Gegensatz zu maxN können sich die Spieler aber auch pessimistisch verhalten und die Annahme treffen, dass sich alle Gegenspieler zu einer Allianz gegen sich selbst geschlossen haben. Die Annahme ist, dass sich die Gegner verbünden und vorhaben den eigenen Nutzen stets zu minimieren: Selber Suchbaum wie vorhin. Eingetragen ist nur der Nutzenwert vom suchenden Spieler A N. R. Sturtevant, A Comparison of Algorithms for Multi-player player Games, vol. 0302/2003. Springer Berlin / Heidelberg, 2003. ISBN-13: 978-3-540-20545-6. N. R. Sturtevant and R. E. Korf, “On Pruning Techniques for Multi-Player Player Games,” Sixteenth National Conference of the American Association for Artificial Intelligence (AAAI-00), pp. 201–207, 2000. Künstliche Intelligenz Miao Wang 58 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Zusammenfassung • Das allgemeines Suchproblem beschreibt das Problem einen Weg von einem Startzustand zu einem Zielzustand zu finden. Der Graph wird dabei implizit aufgebaut. • Uninformierte Suchverfahren wie Tiefensuche oder Breitensuche suchen „blind“, und sind für große Graphen ineffizient. • Funktion mit der sie die Kosten zum Ziel Informierte Suchverfahren bedienen sich einer heuristischen Funktion, abschätzen. • Die Bestensuche priorisiert nach einer Heuristik und ist sehr schnell, findet aber die „erstbeste“ Lösung und somit nicht immer die allgemein beste Lösung • Der A*-Algorithmus ist ein optimaler Wegfindungsalgorithmus und findet immer die Lösung mit den niedrigsten Gesamtkosten, wenn die Heuristik h zulässig ist. • Methoden wie Iterative Tiefensuche, Bidirektionale Suche und Branch-and-Bound können die Suche beschleunigen. • Für die Suche in der Spieltheorie wird das allgemeine Suchproblem leicht modifiziert. • Der Min-Max-Algorithmus findet in einem Nullsummenspiel für zwei Spieler stets die optimale Hauptvariante gemäß dem Nash-Gleichgewicht. Gleichgewicht. • Der Suchbaum kann mit Hilfe von Alpha-Beta-Pruning Pruning stark beschnitten werden. • Für Mehrspielerspiele müssen zusätzliche Faktoren berücksichtigt werden. Künstliche Intelligenz Miao Wang 59 Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Übungsaufgaben Aufgabe 1 – Mehrere Anfangszustände (2P) Die Algorithmen in der Vorlesung sind immer von genau einem Anfangszustand ausgegangen. Wie kann man die Ansätze generalisieren, generalisier um mit mehreren möglichen Anfangszuständen umzugehen? Aufgabe 2 – 6 Steine (5 P) Gegeben sind drei weiße und drei schwarze Steine auf sieben nebeneinanderliegenden Feldern in der unten abgebildeten Verteilung. Verteilu Ziel ist es, dass alle weißen Steine links von den schwarzen liegen. Die Position des leeren Feldes ist dabei unerheblich. Bei jedem Zug wird ein Stein auf das leere Feld bewegt. Erlaubte Züge sind einen Stein auf ein benachbartes leeres Feld zu ziehen zi (mit Kosten von 1), einen Stein zu überspringen (Kosten 1) oder zwei Steine zu überspringen (Kosten 2). • Analysieren Sie den Zustandsraum im Hinblick auf Komplexität und Schleifen. (1P) • Beschreiben Sie eine geeignete heuristische Funktion h, um dieses Problem zu lösen. Analysieren Sie h im Hinblick auf Zulässigkeit, Zuläs Monotonie und Informiertheit. (3P) • Angenommen es existieren mehrere zulässige Heuristiken h1 … hk, die unterschiedlich informiert sind. D.h. keine Heuristik ist für alle Knoten informierter als eine andere, aber für einige Knoten schon. Welche Heuristik sollte man bei einem Knoten wählen? (1P) Aufgabe 3 – 8-Puzzle einfach und leicht (Advanced KI-Skills) Puzzle für eine beliebige Startkonfiguration mittels Breitensuche oder A* löst. Schreiben Sie ein Prologprogramm, welches das 8-Puzzle Aufgabe 4 - Minimax und Alpha-Beta-Pruning (10P) • Führen Sie die Auswertung des abgebildeten Baumes per Minimax aus (auf Papier). (3P) • Werten Sie den Baum mit Alpha-Beta-Pruning von links nach rechts aus. (3P) • Werten Sie den Baum mit Alpha-Beta-Pruning von rechts nach links aus. (3P) • Erörtern Sie, warum bei den beiden Durchgängen für die Alpha-Beta-Pruning unterschiedlich beschnitten wurde. (1P) Künstliche Intelligenz Miao Wang 60