Künstliche Intelligenz" - Informatik der FU
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Vorlesung: „Künstliche Künstliche Intelligenz“ Intelligenz - Suche und Spieltheorie - P LS ES S ST Künstliche Intelligenz Miao Wang 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. Init: OPEN = {s0} , CLOSED = {} 2. Fail: if OPEN = {} terminate with FAIL 3. Select: Extract a state n from OPEN and save n to CLOSED 4. Terminate: if n ∈ G terminate with SUCCESS 5. Expand: Find successors m of n with T If m ∈ (OPEN ∪ CLOSED) CLOSED add m to OPEN 6. Loop: Goto Step 2 OPEN als Stack Tiefensuche OPEN als Queue Breitensuche Künstliche Intelligenz Miao Wang 7
Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Tiefensuche OPEN CLOSED 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 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 - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Künstliche Intelligenz Miao Wang 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, 1, 2, 3, 4, 5 14, 15 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6 14, 15 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 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15 Künstliche Intelligenz Miao Wang 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 In Tiefe d kommen noch b hinzu, d.h. insgesamt (t-1) (b-1) + b = O(t*b) 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. Init: c( 0) = 0 , c* = ∞ OPEN = {s0} , CLOSED = {} , c(s 2. Fail: if OPEN = {} terminate with c* 3. Select: Extract a state n from OPEN and save n to CLOSED 4. Loop1: if n ∈ G and c(n) < c* c* = c(n) and goto Step 2 5. Expand: 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 6. Loop2: 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 Flug B Flug C 250 € 280 € 390 € Hotel A1 Hotel A2 Hotel B1 Hotel B2 Hotel B3 Hotel C1 Hotel C2 120 € 160 € 80 € 110 € 20 € 40 € 30 € Skier Skier Skier Skier Skier Skier Skier Skier Skier Skier Skier Skier Skier Skier 40 € 20 € 30 € 10 € 20 € 40 € 20 € 10 € 0€ 10 € 0€ 10 € 20 € 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 Flug B Flug C 250 € 280 € 390 € Hotel A1 Hotel A2 Hotel B1 Hotel B2 120 € 160 € 80 € 110 € 390 € Skier Skier Skier Skier Skier 40 € 20 € 30 € 410 € 40 € 20 € 390 € 410 € 390 € 400 € 400 € 380 € Künstliche Intelligenz Miao Wang 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: OPEN = {s0} , CLOSED = {} , c(s0) = 0 2. Fail: if OPEN = {} terminate with FAIL 3. Select: Extract state n with minimum costs c(n) c( from OPEN and save n to CLOSED 4. Terminate: if n ∈ G terminate with SUCCESS 5. Expand: 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 6. Loop: Goto Step 2 Positive Kosten: Dijkstra Negative Kosten: können m von CLOSED zurück zu OPEN bringen Negative Zyklen: 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 OPEN CLOSED 1 (0) - 2 1 2 1 (0) 2 (2), 5 (1) 1 3 3 1 2 (2), 9 (2) 1 (0), 5 (1) 5 1 5 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) 1 4 10 15 8 3 1 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) 10 (9), 8 (6), 3 (9), 11 (16) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6) 10 (9), 3 (9), 11 (16), 12 (21) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6) 3 (9), 11 (16), 12 (21), 11 (12) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9) 12 (21), 11 (12) 1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5), 4 (5), 7 (6), 8 (6), 10 (9) 12 (21), 12 (13) 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) Künstliche Intelligenz Miao Wang 24
Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel 2: Uniforme Kostensuche OPEN CLOSED 1 (0) - 10 20 2 (10), 3 (20) 1 (0) 3 (20), 4 (12) 1 (0), 2 (10) 2 -15 1 (0), 2 (10), 4 (12) 3 (20), 5 (27) 15 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) Künstliche Intelligenz Miao Wang 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 204 Bayreuth 207 Bern 247 Frankfurt 215 Innsbruck 163 Karlsruhe 137 Landeck 143 Linz 318 München 120 Mannheim 164 Memmingen 47 Nürnberg 132 Passau 257 Rosenheim 168 Stuttgart 75 Salzburg 236 Würzburg 153 Zürich 157 Künstliche Intelligenz Miao Wang 27
Vorlesung Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Beispiel: Greedy-Bestensuche Luftlinie nach Ulm: Basel 204 Memmingen 47 Bayreuth 207 Nürnberg 132 Bern 247 Passau 257 Frankfurt 215 Rosenheim 168 Innsbruck 163 Stuttgart 75 Karlsruhe 137 Salzburg 236 Landeck 143 Würzburg 153 Linz 318 Zürich 157 München 120 Mannheim 164 Von Mannheim nach Ulm mit Greedy-Bestensuche: Mannheim h = 164 Greedy findet den Weg Mannheim-Nürnberg-Ulm mit Frankfurt 401 km. Karlsruhe Nürnberg h = 137 h = 132 h = 215 Aber Mannheim-Karlsruhe- Stuttgart-Ulm mit 238 km wäre deutlich kürzer. Würzburg Mannheim Ulm München Passau Bayreuth h = 153 h = 164 h=0 h = 120 h = 257 h = 207 Künstliche Intelligenz Miao Wang 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: OPEN = {s0} , CLOSED = {} , f(s0) = g(s0) + h(s0) = h(s0) 2. Fail: if OPEN = {} terminate with FAIL 3. Select: 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 Nürnberg Frankfurt g = 67, h = 137, f = 204 g = 230, h = 132, f = 362 g = 85, h = 215, g = 300 Luftlinie nach Ulm: Stuttgart Basel g = 131, h = 75, f = 206 g = 258, h = 204, f = 462 Basel 204 Bayreuth 207 Bern 247 Frankfurt 215 Innsbruck 163 Karlsruhe 137 Landeck 143 Würzburg Ulm g = 271, h = 153, f = 424 g = 238, h = 0, f = 238 Linz 318 München 120 Mannheim 164 Memmingen 47 Nürnberg 132 Passau 257 Rosenheim 168 Stuttgart 75 Salzburg 236 Würzburg 153 Zürich 157 Künstliche Intelligenz Miao Wang 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 Passau Salzburg g = 102, h = 257, f = 359 g = 126, h = 236, g = 362 Nürnberg München Rosenheim Luftlinie nach Ulm: g = 322, h = 132, f = 454 g = 291, h = 120, f = 411 g = 207, h = 168, f = 375 Basel 204 Bayreuth 207 Bern 247 Innsbruck München Frankfurt 215 g = 300, h = 163, f = 463 g = 266, h = 120, f = 386 Innsbruck 163 Karlsruhe 137 Landeck 143 Linz 318 München 120 Memmingen Ulm Nürnberg Passau g = 381, h = 47, f = 428 g = 389, h = 0, f = 389 g = 436, h = 132, f = 568 g = 455, h = 257, f = 712 Mannheim 164 Memmingen 47 Nürnberg 132 Passau 257 Rosenheim 168 Stuttgart 75 Salzburg 236 Würzburg 153 Zürich 157 Künstliche Intelligenz Miao Wang 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 0 1 o gewinnt remis x gewinnt Zug Künstliche Intelligenz Miao Wang 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) minKnoten(n) if n is terminal state if n is terminal state return eval(n) return eval(n) else else ∞ w = -∞ w = ∞ for each successor m of n for each successor m of n v = minKnoten(m) v = maxKnoten(m) if v > w then w = v if v < w then w = v return w 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, Pos2, Val2, Pos1, Val1) :- : (mintomove(Pos1), Val1 > Val2, !); % max-Knoten (maxtomove(Pos1), Val1 < Val2, !). % min-Knoten betterof(Pos1, (Pos1, Val1, Pos2, Val2, Pos2, Val2). % 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, α, β): if n is terminal state return eval(n) eval 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 β = max{β (m, α, β)} β, 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 0 Rot will minimieren 1 [-∞ ∞, ∞] 5 1 [0,, ∞] [0, ∞] 1 [-∞ ∞, ∞] 1 [0, ∞] [0, 1] 0 5 -2 -2 < α (= 0) α-Cutoff 1 -1 -5 1 2 2>β (= 1) Künstliche Intelligenz Miao Wang β-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
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 Es gibt zwei Nash-Gleichgewichte oben links und unten rechts. Fußball (3,1) (0,0) Das Problem ist, dass es keine Konzert (0,0) (3,1) 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. • Informierte Suchverfahren bedienen sich einer heuristischen Funktion, Funktion mit der sie die Kosten zum Ziel 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
Sie können auch lesen