Professional Documents
Culture Documents
Computation intelligence
Computation Intelligence
Adversarial Games
AI for games
Adimen Artifiziala
3
Game Playing State-of-the-Art
• Checkers:
– 1950: First computer player.
– 1994: First computer champion: Chinook
(IA) ended 40-year-reign of human
champion Marion Tinsley
– 2007: Checkers solved!
• Chess:
– 1997: Deep Blue defeats human
champion Gary Kasparov in a six-game
match. used very sophisticated
evaluation functions.
– Current programs are even better, if less
historic
• Go:
– 2010: champions start having interest in
an AI b>300
– 2016 Alpha GO defeats human champion.
Uses Monte Carlo Tree Search, learned
evaluation function.
Adimen Artifiziala
4
PACMAN!
Adimen Artifiziala
5
Types of games
• Goal:
– We need algorithms for calculating a Strategy (policy) which recommends a
move from each state
Adimen Artifiziala
6
Deterministic games
Adimen Artifiziala
7
Zero-sum jokuak
2 0 … 2 6 … 4 6
Adimen Artifiziala
10
Value of a state
Value of a state:
Non-Terminal States:
The best
achievable
outcome (utility)
from that state
2 0 … 2 6 … 4 6
Terminal States
Adimen Artifiziala
11
Adversarial Game Trees
-8 -5 -10 +8
Terminal States:
Adimen Artifiziala
13
Tic-Tac-Toe
Adimen Artifiziala
14
Adversarial Search (Minimax)
Adimen Artifiziala
15
Minimax Implementation
Adimen Artifiziala
16
Minimax Implementation
def value(state):
if the state is a terminal state: return the state’s utility
if the next agent is MAX: return max-value(state)
if the next agent is MIN: return min-value(state)
3
MAX
3 2 2
5
14
MIN
3 12 8 2 4 6 14 5 2
Adimen Artifiziala
18
Minimax Properties
Optimal against a perfect player.
Otherwise?
max
min
10 10 9 100
Adimen Artifiziala
19
Minimax-en efizientzia
Example, Chess:
• b≈35, m≈100
• It is not possible to check the exact solution
• but… do we really need it?
Adimen Artifiziala
20
Game Tree Pruning
Adimen Artifiziala
21
Minimax Example
3
MAX
3 2 2
5
14
MIN
3 12 8 2 4 6 14 5 2
Adimen Artifiziala
22
Pruning Minimax Example
3 ≤2 2 2
5
14
3 12 8 2 14 5 2
Adimen Artifiziala
23
Alpha-Beta Implementation
Adimen Artifiziala
24
Alpha-Beta Prunning properties
Adimen Artifiziala
25
Quiz1
Minimax Value?
Which branches will alpha beta prune?
Adimen Artifiziala
26
Quiz2
Minimax Value?
Which branches will alpha beta prune?
Adimen Artifiziala
27
Resource Limits
• We loss optimality
• the deeper we look into, the better solution
• This is a replanification agent
? ? ? ?
Adimen Artifiziala
28
Replaning problems
Adimen Artifiziala
29
Replaning problems
+8 +8
+8 -2 +8
Adimen Artifiziala
30
Replaning problems
+8 +8
+8 +1 -2 +8
Adimen Artifiziala
31
Replaning problems
Adimen Artifiziala
32
Evaluation Functions
Adimen Artifiziala 33
Evaluation Functions
• Evaluation Functions will give a score to the non terminal states.
• Ideal function: real minimax value
• Reallity: a weighted sum of different features
Adimen Artifiziala
34
Evaluation for Pacman
Adimen Artifiziala
35
depth is critical
Depth=2 Depth=10
Adimen Artifiziala
36
Importance of depth
Adimen Artifiziala
38
Uncertainty
Worst-Case vs. Average Case
max
min
chance
10 10 9 100
Adimen Artifiziala
40
Expectimax Bilaketak
Adimen Artifiziala
42
Expectimax pseudokodea
def value(state):
if the state is a terminal state: return the
state’s utility
if the next agent is MAX: return
max-value(state)
if the next agent is EXP: return
exp-value(state)
def exp-value(state): 10
initialize v = 0
for each successor of state: 1/2 1/6
p = probability(successor) 1/3
v += p * value(successor)
return v 5
8 24
7 -12
Adimen Artifiziala
44
Quiz
3 12 9 2 4 6 15 6 0
Adimen Artifiziala
45
Expectimax pruning?
3 12 9 2
400 300 …
492 362 …
Adimen Artifiziala
47
Expected value
Adimen Artifiziala
48
The Dangers of Optimism and Pessimism
Adimen Artifiziala
49
The Dangers of Optimism and Pessimism
Adimen Artifiziala
50
Assumptions vs. Reality
Pacman used depth 4 search with an eval function that avoids trouble
Ghost used depth 2 search with an eval function that seeks Pacman
Adimen Artifiziala
51
Multi-Agent Utilities
Adimen Artifiziala
52
Evaluation for Pacman
Adimen Artifiziala
53
Problems with search
•
• In any search, we have seen that exploring the tree is very consuming
(time, memory)
• Example: GO: branching factor= 300
– step 1: 300
– step 2: 300²=90000
– step 3: 300³=27 M
– step 4: 300⁴=8100 M
– step 5: 300⁵=2.43 B
• Even in step 5 this is unfeasible. (even with pruning)
• Depth limited search needs an evaluation function
– Mainly engineered by humans
– unique for each problem
• Can we do it better? a more generic AI?
Adimen Artifiziala
54
Monte Carlo Tree Search
Adimen Artifiziala
55
Monte Carlo Tree Search
Adimen Artifiziala
56
MCTS Version 0
Adimen Artifiziala
57
MCTS Version 0
Adimen Artifiziala
58
MCTS Version 0.9
Adimen Artifiziala
59
MCTS Version 0.9
Adimen Artifiziala
60
MCTS Version 1.0
Adimen Artifiziala
61
UCB Heuristics
Adimen Artifiziala
62
MCTS properties
Adimen Artifiziala
63
Eskerrik asko
Muchas gracias
Thank you
Ekhi Zugasti
ezugasti@mondragon.edu
Loramendi, 4. Apartado 23
20500 Arrasate – Mondragon
T. 943 71 21 85
info@mondragon.edu