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