• Keine Ergebnisse gefunden

Machine Learning „Spielen allgemeiner Spiele“

N/A
N/A
Protected

Academic year: 2021

Aktie "Machine Learning „Spielen allgemeiner Spiele“"

Copied!
64
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Machine Learning

„Spielen allgemeiner Spiele“

Stefan Edelkamp

(2)

Themen Allgemeines Spiel

 Einführung

 Game Desciption Language (GDL)

 Spielen allgemeiner Spiele

 Heuristiken im allgemeinen Spiel und Verbesserungen

 Lösen allgemeiner Spiele

 Instanziierung

 Ausblick: Unvollständige Information und Zufall

(3)

Spielen durch Suche

 Wie guten Zug finden?

Suchalgorithmen

recht einfach in Einpersonenspielen

auch in Zweipersonenspielen mit abwechselnden Zügen

sonst zunächst schwieriger

 Problem Suchalgorithmen:

Zustandsraumexplosion

(4)

Zustandsraumexplosion

 Solitär: 375 110 246

 Vier Gewinnt: 4,5 x 10

12

 (n

2

-1)-Puzzle: n

2

!/2

8-Puzzle: 181 440

15-Puzzle: 1013

24-Puzzle: 7,8 x 1024

35-Puzzle: 1,8 x 1041

(5)

Was tun?

 Vollständige Suche schwierig

mit speziellen Datenstrukturen evtl. möglich → spätere Vorlesung

 Alternativen:

Suchraum beschneiden

Klassiker: Alpha-Beta Pruning (Zweipersonenspiel)

Schwieriger im allgemeinen Spiel: Wie Evaluationsfunktion bestimmen?

Zufällige Pfade absuchen

dabei möglichst gut führen lassen

Vorteil gegenüber Handlungsplanung: jeder Pfad endlich

(6)

Ablauf

 Suche mit Prolog

 Minimax-basiert

Minimax

Alpha-Beta

(Soft-)Maxn

 Simulationsbasiert

Monte-Carlo

UCT

(7)

Suche mit Prolog

 GDL logik-basierte Eingabe

sehr nah an Prolog

Übersetzung recht einfach

 Nutzung von Prologs Inferenzmechanismus, um mit

Variablen klarzukommen

(8)

Grundlegende Funktionen

 findeLegals(role)

setof(does(role, X), legal(role, X), Y).

Menge aller gültigen Züge für Spieler role in Y gespeichert

aufsteigend sortiert

Duplikatsfrei

 simuliere(moves)

assert(move1), …, assert(moven).

setof(true(X), next(X), Y).

retract(move1), …, retract(moven).

Züge zur Wissensbasis hinzugefügt

Menge aller Fluents wahr im Nachfolgezustand in Y gespeichert

Zug aus Wissensbasis entfernt

(9)

Grundlegende Funktionen

 setzeZustand(fluents)

abolish(true/1).

assert(true(fluent1)), …, assert(true(fluentm)).

Fluents des alten Zustands werden entfernt

Übergebene Fluents in Wissensbasis eingefügt.

(10)

Grundlegende Funktionen

 prüfeTerminierung

terminal.

Resultat:

true, wenn erfüllbar, also Terminalzustand erreicht

false, sonst

 findeBewertung(role)

goal(role, X).

Bewertung für Spieler role in X

(11)

Aufbau Minimax-basierte Suche

 Zweipersonenspiele

Minimax

Negamax

Alpha-Beta Pruning

Probleme von Alpha-Beta Pruning

 Mehrpersonenspiele

Maxn

Alpha-Beta Pruning

Probleme von Alpha-Beta Pruning

(12)

Minimax

 Typisches Suchverfahren bei Zweipersonen-Nullsummenspielen

enspr. in GGP: Summe der Bewertungen beider Spieler immer 100

genügt, nur Bewertung eines Spielers zu betrachten

 Spieler 1 versucht, Bewertung von Spieler 1 zu maximieren

→ Max-Spieler

 Spieler 2 versucht, Bewertung von Spieler 1 zu minimieren

→ Min-Spieler

(13)

falls (prüfeTerminierung(zustand))

gib findeBewertung(spieler1) zurück falls (aktiv(zustand) = spieler1)

bewertung(zustand) ← -∞

sonst

bewertung(zustand) ← ∞

züge ← findeLegals(aktiv(zustand)) für jeden zug ∈ züge

nachfolger ← simuliere(zug) falls aktiv(zustand) = spieler1

bewertung(zustand) ← max{bewertung(zustand), Minimax(nachfolger)}

sonst

bewertung(zustand) ← min{bewertung(zustand), Minimax(nachfolger)}

gib bewertung(zustand) zurück

Minimax [Minimax(zustand)]

(14)

-∞

-∞ -∞

-∞ -∞

Minimax

25

100

100

0 50

100

100 0 50 75 0 0 25 100 50

Max

Min

Max

75

75

75

75 25 100100

25 75

(15)

Minimax

 Probleme

gesamter Suchraum muss durchsucht werden

kann nicht abgebrochen werden

(16)

Negamax

 Äquivalent zu Minimax

 Unterschied: Spieler 2 wertet Spieler 1 Bewertung negativ

alternativ: Spieler 2 maximiert seine Bewertung

 Damit sind alle Knoten Max-Knoten

Maximierung der negierten Bewertung entspricht Minimierung der echten Bewertung

(17)

Negamax [Negamax(zustand)]

falls (prüfeTerminierung(zustand)) falls (aktiv(zustand) = spieler1)

gib findeBewertung(spieler1) zurück sonst

gib -findeBewertung(spieler1) zurück bewertung(zustand) ← -∞

züge ← findeLegals(aktiv(zustand)) für jeden zug ∈ züge

nachfolger ← simuliere(zug)

bewertung(zustand) ← max{bewertung(zustand), -Negamax(nachfolger)}

gib bewertung(zustand) zurück

(18)

Alpha-Beta Pruning

 Nutzt Minimax als Basis

Formulierung über Negamax auch möglich

 Kann Teile des Suchraumes abschneiden

bleibt aber korrekt

 Jeder Knoten hat (, )-Fenster:

: Mindestwert, den Spieler 1 erreichen kann

: Spieler 2 kann Bewertung hierauf begrenzen (= Maximalwert für Spieler 1)

 initial:

normalerweise: (-∞, ∞)

hier: (0, 100)

weniger als 0 und mehr als 100 Punkte bei GDL unmöglich

(19)

Alpha-Beta Pruning

 -Schnitte

Nachfolger von Min-Knoten mit Bewertung ≤ 

 -Schnitte

Nachfolger von Max-Knoten mit Bewertung ≥ 

(20)

Alpha-Beta Pruning [Max(zustand, , )]

falls (prüfeTerminierung(zustand))

gib findeBewertung(spieler1) zurück

züge ← findeLegals(spieler1) // spieler1 aktiv in Max-Knoten!

für jeden zug ∈ züge

nachfolger ← simuliere(zug)

bewertung ← Min(nachfolger, , )

falls (bewertung ≥ ) gib  zurück // -Schnitt

falls (bewertung > )  ← bewertung gib  zurück

(21)

Alpha-Beta Pruning [Min(zustand, , )]

falls (prüfeTerminierung(zustand))

gib findeBewertung(spieler1) zurück

züge ← findeLegals(spieler2) // spieler2 aktiv in Min-Knoten!

für jeden zug ∈ züge

nachfolger ← simuliere(zug)

bewertung ← Max(nachfolger, , )

falls (bewertung ≤ ) gib  zurück // -Schnitt

falls (bewertung < )  ← bewertung gib  zurück

(22)

Alpha-Beta Pruning

0/100

0/100

0/100 0/50

20 50 30 60 10 75

30 0 10

30 50 10

Max

Min

Max 20/10050/100

0/50

≥ 

50/100

50/100

50/100

≤ 

50 50

Ergebnis: 50 Ergebnis: 50

50

50

50 50

50/100 40

≤ 

50 Knotenmarkierung: /

(23)

Alpha-Beta Pruning [Negamax(zustand, , )]

falls (prüfeTerminierung(zustand)) falls (aktiv(zustand) = spieler1)

gib findeBewertung(spieler1) zurück sonst

gib -findeBewertung(spieler1) zurück züge ← findeLegals(aktiv(zustand))

für jeden zug ∈ züge

nachfolger ← simuliere(zug)

bewertung ← -Negamax(nachfolger, -, -) falls (bewertung ≥ ) gib  zurück

falls (bewertung > )  ← bewertung gib  zurück

(24)

Alpha-Beta Pruning

 Probleme:

oft immer noch zu viele Zustände betrachtet

 Lösung:

früher abbrechen (Tiefenschranke o.ä.)

Evaluationsfunktion zur Bewertung von nicht-terminalen Blättern

 Aber:

Wie Evaluationsfunktion bestimmen?

→ in nächster Vorlesung

(25)

Alpha-Beta Pruning

 Problem:

Nicht unterbrechbar

 Lösung:

Iterative Deepening

schnell erste Bewertungen

schrittweise tiefer suchen und Bewertungen präzisieren

uniform: Tiefenschranke iterativ erhöhen

nicht-uniform [Schiffel & Thielscher, 2007]:

maximale Tiefenschranke für besten Zug aus letzter Iteration

andere Züge (nach Bewertung) früher abschneiden

minimale Tiefenschranke für schlechteste Züge

(26)

Alpha-Beta Pruning

 Problem:

bei Nicht-Nullsummenspielen kein Pruning möglich, wenn beide Spieler eigenen Gewinn maximieren wollen

 Lösung:

pessimistische Sichtweise [Korf, 1989]:

Gegenspieler versucht, unseren Gewinn zu minimieren, unabhängig vom eigenen

 Aber:

kann zu suboptimalem Spiel führen

50/100

50/100 25/75

25/75 60/40 15/85 50/100

Sp. 1 Sp. 2 Sp. 1

(27)

Alpha-Beta Pruning

 Problem:

Behandlung von simultanen Zügen

 1. Lösung:

pessimistische Sichtweise [Schiffel & Thielscher, 2007]:

Wir führen unseren Zug aus, dann der Gegenspieler seinen

 Aber:

kann zu beliebig schlechtem Spiel führen

Beispiel: Schere-Stein-Papier

wenn Gegenspieler unseren Zug kennt, gewinnt er immer

 2. Lösung:

randomisierte Gegenspieler [Kuhlmann, Dresner & Stone, 2006]:

Annahme: Gegenspieler wählt zufällig

basierend darauf: Unser Zug so, dass erwarteter Gewinn maximal

(28)

Max n [Luckhardt & Irani, 1986]

 ähnlich Minimax / Negamax für n Spieler

jeder Spieler versucht, eigenen Gewinn zu maximieren

funktioniert nur bei nicht-simultanen Zügen

Bewertungen von Blättern zur Wurzel hochpropagiert

Verwendung von Iterative Deepening und Evaluationsfunktionen möglich

(29)

Max n [Max-n(zustand)]

falls (prüfeTerminierung(zustand))

gib [findeBewertung(spieler1), …, findeBewertung(spielern)] zurück bewertung(zustand) ← [-∞, …, -∞]

züge ← findeLegals(aktiv(zustand)) für jeden zug ∈ züge

nachfolger ← simuliere(zug)

tmpBewertung ← Max-n(nachfolger)

falls (tmpBewertung[aktiv(zustand)] > bewertung(zustand)[aktiv(zustand)]

bewertung(zustand) ← tmpBewertung gib bewertung(zustand) zurück

(30)

Max n

20/30/10 10/50/30

0/0/25 0/100/50 70/25/10

80/15/40 25/30/50

20/25/10 35/60/50

0/10/75 30/70/50 Sp. 1

Sp. 2

Sp. 3 10/50/30 0/100/50 25/30/50 35/60/50 0/10/75

0/100/50 35/60/50

35/60/50

(31)

Max n Tie-Breaking

20/30/10 10/50/30

0/0/25 0/100/50 70/25/10

80/15/40 25/30/50

20/25/10 35/60/50

0/10/75 30/70/50 Sp. 1

Sp. 2

Sp. 3 10/50/30 35/100/50 25/30/50 35/60/50 0/10/75

35/100/50 35/60/50

35/100/50? 35/60/50?

(32)

Max n

 Problem:

Tie-Breaking

 Lösung:

festgelegt auf ersten Nachfolger

damit bei Alpha-Beta besseres Pruning

 Aber:

warum sollte Spieler diesen Zug wählen?

suggeriert Sicherheit, die es gar nicht gibt

(33)

Soft-Max n [Sturtevant & Bowling, 2006]

 statt Tie-Breaking:

propagiere alle möglichen Lösungen nach oben

Maxn-Mengen (Mengen von n-Tupeln)

möglich = nicht dominiert

evtl. immer noch eindeutig

keine Irreführung möglich

 Aber:

viel langsamer

was tun, wenn Bewertung nicht eindeutig?

(34)

Soft-Max n : Dominanz

 Max

n

-Menge s

1

dominiert s

2

stark bzgl. Spieler i gdw.

 Max

n

-Menge s

1

dominiert s

2

schwach bzgl. Spieler i gdw.

und

 

i v

 

i

v s v

s

v1122. 12

 

i v

 

i

v s v

s

v1122. 12

v1s1v2s2.v1

 

iv2

 

i

(35)

Soft-Max n : Dominanz

 Vier Max

n

-Mengen:

1. {(3, 4, 3)}

2. {(2, 1, 7), (4, 2, 4)}

3. {(4, 1, 5), (3, 2, 5)}

4. {(10, 0, 0), (0, 10, 0), (0, 0, 10)}

 Spieler1: 3. dominiert 1. schwach

 Spieler 2: 1. dominiert 2. und 3. stark

 Spieler 3: 2. und 3. dominieren 1. stark

 falls Gewinne in [0, 10]:

 4. kann keine Menge stark dominieren

 4. kann von keiner Menge stark dominiert werden

(36)

Soft-Max n

 An Blatt, Max

n

-Menge echte Bewertung (oder Evaluationsfunktion)

 An innerem Knoten (Spieler j am Zug), Max

n

-Menge ist

Vereinigung aller Mengen der Kinder

die nicht stark dominiert bzgl. Spieler j sind

 An Wurzel, aktiver Spieler kann beliebige

Entscheidungsregel anwenden, um beste Menge aus nicht-

dominierten Züge zu wählen

(37)

Soft-Max n

4/6/3 5/1/2 0/4/2 2/3/1 5/1/3 3/1/5

1/2/3 0/3/1 2/5/3

Sp. 1

Sp. 2

Sp. 3

Sp. 1 {1/2/3} {2/5/3}

{4/6/3}

{4/6/3}

{5/1/2, 0/4/2}

{5/1/2, 0/4/2}

{2/3/1} {3/1/5}

{2/3/1}

{4/6/3, 5/1/2, 0/4/2}

{1/2/3, 2/5/3}

(38)

Mehrpersonen Alpha-Beta Pruning

 nutzt Max

n

als Basis

 Pruning nur möglich, wenn

Obere Schranke für Summe der Gewinne aller Spieler

Untere Schranke für Gewinn jedes Spielers

 ähnliche Bedingung wie bei Zweipersonenspielen (konstante Summe)

 [Korf, 1989]

(39)

Mehrpersonen Alpha-Beta Pruning

 sofortiger Schnitt

Spieler i am Zug

i-te Komponente eines der Kinder = oberer Schranke für Summe

Rest kann nicht besser sein → kann abgeschnitten werden

(40)

Mehrpersonen Alpha-Beta Pruning

Sp. 1

Sp. 2 3/3/3 ≤2/≥7/≤2 ≤3/≥6/≤3

3/3/3

Obere Schranke (Summe): 9 (hier sogar exakt 9)

Untere Schranke (Einzelwert): 0

≥3/≤6/≤6

≤ 1. Komp.

Elternknoten

≤ 1. Komp.

Elternknoten

 flacher Schnitt

4/2/3 2/1/5 1/7/1

3/3/3 1/6/2

(41)

Mehrpersonen Alpha-Beta Pruning

 tiefer Schnitt

Sp. 1

Sp. 2 5/2/2

2/2/5

6/1/2

≤4/≤4/≥5

Obere Schranke (Summe): 9 (hier sogar exakt 9)

Untere Schranke (Einzelwert): 0

≥5/≤4/≤4

Sp. 3

≤ 1. Komp.

Wurzel

aber kein Schnitt möglich!

damit keines der Kinder möglicher

Wurzelwert

(42)

Mehrpersonen Alpha-Beta Pruning

 tiefer Schnitt

5/2/2 Sp. 1

Sp. 2 5/2/2

2/2/5 2/3/4

6/1/2 2/2/5

≤4/≤4/≥5

≥5/≤4/≤4

Sp. 3

≤ 1. Komp.

Wurzel

Obere Schranke (Summe): 9 (hier sogar exakt 9)

Untere Schranke (Einzelwert): 0

2/2/5

aber kein Schnitt möglich!

damit keines der Kinder möglicher

Wurzelwert

(43)

Mehrpersonen Alpha-Beta Pruning

 tiefer Schnitt

6/1/2 Sp. 1

Sp. 2 5/2/2

2/2/5 3/0/6

6/1/2 3/0/6

≤4/≤4/≥5

≥5/≤4/≤4

Sp. 3

≤ 1. Komp.

Wurzel

Obere Schranke (Summe): 9 (hier sogar exakt 9)

Untere Schranke (Einzelwert): 0

6/1/2

aber kein Schnitt möglich!

damit keines der Kinder möglicher

Wurzelwert

(44)

Mehrpersonen Alpha-Beta Pruning

 Problem:

keine tiefen Beschneidungen bei Mehrpersonenspielen

damit Alpha-Beta nur bedingt geeignet

 Lösung:

pessimistische Sichtweise [Kuhlmann, Dresner & Stone, 2006]:

alle nicht mit uns kooperierenden Spieler gegen uns

versuchen, unseren Gewinn zu minimieren, unabhängig vom eigenen

entspricht also Zweipersonenspiel (Alpha-Beta leichter möglich)

 Aber:

kann zu suboptimalem Spiel führen

(45)

Aufbau Simulationsbasierte Suche

 Monte-Carlo

 Monte-Carlo + Erinnerung

 UCT

 Besonderheiten bei Einpersonenspielen

 Erweiterungen für Mehrpersonenspiele

(46)

Monte-Carlo Suche

 Betrachtet Menge von zufälligen Pfaden vom Initialzustand zu einem Terminalzustand

 Setzt mittlere Bewertung für die Spieler für jeden gültigen Zug

 Keine weitere Steuerung, kein zusätzliches Wissen erarbeitet

 Am Ende: Wählt Zug mit bester Bewertung

(47)

Monte-Carlo Suche

 Endzeit = Jetzt + Playclock - 0,5 (etwas Sicherheit, um Zug rechtzeitig zu übertragen)

 speichere Initialzustand init

 solange (Jetzt != Endzeit)

solange (!prüfeTerminierung)

züge ← [findeLegals(spieler1), …, findeLegals(spielern)]

für (i = 1 … n) wähle zugi zufällig aus züge[i]

nachfolger ← simuliere(zug1, …, zugn)

setzeZustand(nachfolger)

aktualisiere mittlere Bewertung für eigenen Spieler bei erstem Zug entsprechend findeBewertung(selbst)

setzeZustand(init)

 gib Zug mit bestem mittleren Gewinn für eigenen Spieler aus

(48)

Monte-Carlo Suche

70 50 0

100 10

40

70

100 30

30

#Expansionen: 0, 0, 0 mittl. Bewertung: 0, 0, 0

#Expansionen: 0, 1, 0 mittl. Bewertung: 0, 10, 0

#Expansionen: 1, 1, 0 mittl. Bewertung: 70, 10, 0

#Expansionen: 1, 1, 1 mittl. Bewertung: 70, 10,

40

#Expansionen: 1, 1, 2 mittl. Bewertung: 70, 10,

35

#Expansionen: 2, 1, 2 mittl. Bewertung: 60, 10,

35

#Expansionen: 2, 2, 2 mittl. Bewertung: 60, 55,

35

#Expansionen: 2, 2, 2 mittl. Bewertung: 60, 55,

35

(49)

Monte-Carlo Suche

 Vorteile:

sehr einfach zu implementieren

besser als Random

sehr geringer Speicherbedarf

 Nachteile:

ständige Expansion der selben Zustände

verhältnismäßig langsam

ungesteuerte Suche

Ergebnisse potenziell schlecht

Informationen verloren bei Schritt zu nächstem Zustand

(50)

Monte-Carlo Suche mit Erinnerung

 erstes + letztes Problem behebbar durch Nutzung von Baum

dient Kapselung der Erinnerung

statt nach jedem Monte-Carlo Lauf alles zu vergessen, wird erster Knoten an Baum angehängt

nur ein Knoten wegen Speicherbedarf

 Suche innerhalb des Baumes wie bisher rein zufällig

Knotenexpansion schneller, wenn Nachfolger schon im Baum gespeichert

Aktualisierungsschritt für alle Knoten des Baumes

beim Fortschreiten des Spieles ist bestehende Information nutzbar

(51)

Monte-Carlo Suche mit Erinnerung

70 50 0

100 10

40

70

100 30

30

#Expansionen: 0, 0, 0 mittl. Bewertung: 0, 0, 0

#Expansionen: 0, 1, 0 mittl. Bewertung: 0, 10, 0

#Expansionen: 1, 1, 0 mittl. Bewertung: 70, 10, 0

#Expansionen: 1, 1, 1 mittl. Bewertung: 70, 10,

40

#Expansionen: 1, 1, 2 mittl. Bewertung: 70, 10,

35

#Expansionen: 2, 1, 2 mittl. Bewertung: 60, 10,

35

#Expansionen: 2, 2, 2 mittl. Bewertung: 60, 55,

35

#Expansionen: 2, 2, 2 mittl. Bewertung: 60, 55,

35

#Expansionen: 1, 0 mittl. Bewertung: 40, 0

#Expansionen: 1 mittl. Bewertung: 10

#Expansionen: 1, 0 mittl. Bewertung: 70, 0

#Expansionen: 0, 1 mittl. Bewertung: 0, 30

#Expansionen: 1 mittl. Bewertung: 100

#Expansionen: 0, 1 mittl. Bewertung: 0, 50

#Expansionen: 2 mittl. Bewertung: 55

#Expansionen: 2, 0 mittl. Bewertung: 60, 0

#Expansionen: 2, 0 mittl. Bewertung: 35, 0

(52)

Monte-Carlo Suche mit Erinnerung

 Vorteile:

Speichern zugehöriger Nachfolger → weniger (Prolog-)Expansionen

Informationen der Nachfolger für nächsten Schritt brauchbar

 Nachteile:

höherer Speicherbedarf

ungesteuerte Suche

Ergebnisse potenziell schlecht

(53)

UCT [Kocsis & Szepesvári, 2006]

 “Upper Confidence Bounds applied to Trees”

 Mit Zusatzinformationen, Suche in Baum einfach steuerbar

In Baum

Wenn ≥ 1 unexpandierter Zug, wähle einen davon zufällig

Wähle Nachfolger, der UCT-Wert maximiert

Q(s, m): mittlere Bewertung von Zug m in Zustand s

C: Konstante zur Steuerung der Suche

N(s): Anzahl Besuche von Zustand s

N(s, m): Anzahl Besuche von Zug m in Zustand s

Wenn Blatt erreicht

Führe normale Monte-Carlo Suche durch

Propagiere Terminalbewertung durch Baum zur Wurzel hoch

     

 

s m

N s C N

m s

Q ,

, ln

(54)

Q: 20 N: 1 Q: ? N: 0

UCT

N: 0

N: 0

Q: ? N: 0

Q: ? N: 0

N: 0

N: 0

Q: ? Q: ? N: 0

N: 0

Reward: 20

Q: 20 N: 1

N: 1 N: 1 N: 1

Reward: 25

Q: 25 N: 1

N: 2

Reward: 0

N: 2

Q: 0 N: 1

N: 3 N: 3

Q: 25 N: 2

N: 4 N: 4

     

  s m

N

s C N

m s

Q ,

,  ln

für C = 10:

Zug 1: 10 Zug 2: 30 Zug 3: 35

für C = 1,000:

Zug 1: 1048 Zug 2: 1068 Zug 3: 1073 für C = 1,000:

Zug 1: 1177 Zug 2: 1197 Zug 3: 858 für C = 10:

Zug 1: 12 Zug 2: 32 Zug 3: 33

für C = 100:

Zug 1: 105 Zug 2: 125 Zug 3: 130 für C = 100:

Zug 1: 118 Zug 2: 138 Zug 3: 108 für C = 10:

Zug 1: 10 Zug 2: 30 Zug 3: 35

für C = 1,000:

Zug 1: 1048 Zug 2: 1068 Zug 3: 1073 für C = 100:

Zug 1: 105 Zug 2: 125 Zug 3: 130

für C = 1,000:

Zug 1: 1177 Zug 2: 1197 Zug 3: 858 für C = 10:

Zug 1: 12 Zug 2: 32 Zug 3: 33

für C = 100:

Zug 1: 118 Zug 2: 138 Zug 3: 108

(55)

UCT

 Vorteile:

Speichern zugehöriger Nachfolger → weniger (Prolog-)Expansionen

Suche im Baum gesteuert durch bestehende Information

Informationen der Nachfolger für nächsten Schritt brauchbar

Ergebnisse tendenziell brauchbar

Bei internationaler Meisterschaft:

2005 und 2006: Sieger mit Minimax-Suche

seit 2007: Sieger mit UCT

 Nachteile:

höherer Speicherbedarf

ungesteuert in Monte-Carlo Suchen

(56)

UCT für Einpersonenspiele

 speichere aktuellen (Gesamt-)Pfad temporär

 wenn Bewertung bisher beste

speichere Pfad global

 Speichern bester statt durchschnittlicher Bewertung

 wenn Bewertung maximal (= 100)

speichere Pfad global

stoppe UCT

gib ersten Zug zurück

 da kein Gegenspieler, Verfolgen maximalen Pfades sicherer Gewinn

 z.B. [Finnsson & Björnsson, 2010]

(57)

UCT für Mehrpersonenspiele

 einfach bei abwechselnden Zügen

Ein UCT Baum

Knoten-Information:

Anzahl Besuche

mittlere Bewertungen für alle Spieler

Knoten entspricht Zustand

in jedem Zustand ≤ 1 Spieler aktiv

Wähle Nachfolger, der für aktiven Spieler UCT-Wert maximiert

(58)

UCT für Mehrpersonenspiele

15 75 / 40

7 100 / 25

3 20 / 60

5 73 / 49

2 100 / 0

4 100 / 40

1 100 / 15

a/- b/- c/-

aktiver Spieler passiver Spieler

-/a -/b -/c

(59)

UCT für Mehrpersonenspiele

 schwieriger bei simultanen Zügen

aktiven Spieler zufällig bestimmen

Rest wie im Fall abwechselnder Züge

schlecht, wenn alle Spieler unabhängig voneinander spielen, etwa Runners oder Racer

hier Faktorisieren von Spielen relevant (kommt später!)

oder für jeden Spieler

alle Nachfolger bei Wahl eines Zuges bestimmen

mittlere Bewertung und Anzahl Besuche bestimmen

UCT-Wert ermitteln

Zug mit maximalem UCT-Wert wählen

Problem: Laufzeit

(60)

UCT für Mehrpersonenspiele

15 75 / 50

2 100 / 25

3 85 / 60

1 0 / 50

2 95 / 100

4 75 / 0

3 60 / 90

a/b b/c a/a b/a a/c b/b

Spieler 1:

Zug a: 7 Besuche, 71 mittl. Bewertung Zug b: 8 Besuche, 78 mittl. Bewertung

Spieler 2:

Zug a: 3 Besuche, 83 mittl. Bewertung Zug b: 5 Besuche, 64 mittl. Bewertung Zug c: 7 Besuche, 26 mittl. Bewertung

(61)

UCT für Mehrpersonenspiele

 Alternative: mehrere UCT Bäume [Finnsson & Björnsson, 2008]

ein Baum pro Spieler

Knoteninformation:

mittlere Bewertung entsprechenden Spielers

Anzahl Besuche

zusammengeführte Information direkt gespeichert (schneller)

Aber:

n Bäume speichern → speicheraufwändiger

tatsächlicher Nachfolger auf Basis des Gegnerzugs berechnet (Prolog)

(62)

UCT für Mehrpersonenspiele

15 75

7 71

8 78

3 83

5 64

7 26

a b a b c

15 50

(63)

Quellen (Minimax-basiert)

 S. Schiffel & M. Thielscher: Fluxplayer: A Successful General Game Player, AAAI, pp. 1191-1196, 2007

 G. Kuhlmann, K. Dresner & P. Stone: Automatic Heuristic Construction in a Complete General Game Player, AAAI, pp. 1457-1462, 2006

 C.A. Luckhardt & K.B. Irani: An Algorithmic Solution of N-Person Games, AAAI, pp. 158-162, 1986

 N. Sturtevant & M. Bowling: Robust Game Play Against Unknown Opponents, AAMAS, pp. 713-719, 2006

 R.E. Korf: Generalized Game Trees, IJCAI, pp. 328-333,

1989

(64)

Quellen (Simulations-basiert)

 L. Kocsis & C. Szepesvári: Bandit Based Monte-Carlo Planning, ECML, pp. 282-293, 2006

 H. Finnsson & Y. Björnsson: Learning Simulation Control in General Game-Playing Agents, AAAI, pp. 954-959, 2010

 H. Finnsson & Y. Björnsson: Simulation-Based Approach to

General Game Playing, AAAI, pp. 259-264, 2008

Referenzen

ÄHNLICHE DOKUMENTE

Geben Sie eine untere Schranke für die Anzahl der Zustände an, die jeder Richter für Büchi- Spiele haben muss, und beweisen Sie

Vergleichsbasierte Sortierverfahren benötigen im schlechtesten Fall und im Mittel mindestens Ω(n log n) Schlüsselvergleiche..

Auf einem ganz anderen Weg kommt Desroches-Noblecourt ebenfalls zu dem Ergebnis, daß es sich bei den Schächten um einen Ort der ersten Etappe nach dem Tod handeln müsse9/*, so

Weil diese Veränderungen nur an Modellen mit temporärer und nicht an Modellen mit permanenter Okklusion nachgewiesen wurden, ist die Annahme erlaubt, dass dieser oxydative

Zornsches Lemma : Jede partielle Ordnung (Halbordnung), in der jede linear geordnete Teilmenge eine obere Schranke besitzt, hat maximale Elemente3. Wohlordnungssatz : Jede Menge l¨

Beweise, daß die Menge aller Begriffe eines endlichen Kontextes (ein Kon- text mit endlicher Merkmal- und Gegenstandsmenge) geordnet bez¨uglich der Begriffsordnung einen

Zum Sortieren einer Folge von n Keys mit einem allgemeinen Sortierverfahren sind im Worst-Case, ebenso wie im Average- Case, mindestens Ω(n log n) Vergleichsoperationen zwischen

Zum Sortieren einer Folge von n Keys mit einem allgemeinen Sortierverfahren sind im Worst-Case ebenso wie im Average-Case mindestens Ω(n log n) Vergleichsoperationen zwischen zwei