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 1Vorlesung 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 2Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Suche
Künstliche Intelligenz Miao Wang 3Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Anwendungen der Suche
Künstliche Intelligenz Miao Wang 4Vorlesung 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 5Vorlesung 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 6Vorlesung 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 7Vorlesung 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 8Vorlesung 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 9Vorlesung 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 10Vorlesung 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 11Vorlesung 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 12Vorlesung 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 13Vorlesung 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 14Vorlesung 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 15Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Das 8-Puzzle-Problem
(aka 3x3-Schieberätsel)
Künstliche Intelligenz Miao Wang 16Vorlesung 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 17Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Das 8-Puzzle-Problem
(aka 3x3-Schieberätsel)
Künstliche Intelligenz Miao Wang 18Vorlesung 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 19Vorlesung 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 20Vorlesung 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 21Vorlesung 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 22Vorlesung 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 23Vorlesung 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 24Vorlesung 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 25Vorlesung 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 26Vorlesung 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 27Vorlesung 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 28Vorlesung 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 29Vorlesung 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 30Vorlesung 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 31Vorlesung 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 32Vorlesung 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 33Vorlesung 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 34Vorlesung 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 35Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Implementierung der Wegfindung ist nicht immer perfekt
Künstliche Intelligenz Miao Wang 36Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Spieltheorie
Künstliche Intelligenz Miao Wang 37Vorlesung 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 38Vorlesung 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 39Vorlesung 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 40Vorlesung 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 41Vorlesung 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 42Vorlesung 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 43Vorlesung Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Beispiel: Min-Max-Algorithmus
Künstliche Intelligenz Miao Wang 44Vorlesung 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 45Vorlesung 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 46Vorlesung 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 47Vorlesung 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 48Vorlesung 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 49Vorlesung 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 minVorlesung 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 51Vorlesung 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 52Vorlesung 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 53Vorlesung 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 54Vorlesung 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 55Vorlesung 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 56Vorlesung 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 57Vorlesung 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 58Vorlesung 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 59Vorlesung 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 60Sie können auch lesen