Unit 2 Adversial Search
Unit 2 Adversial Search
Pacman
Axes:
Deterministic or stochastic?
One, two, or more players?
Zero sum?
Perfect information (can you see the state)?
2 0 … 2 6 … 4 6
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:
Adversarial Game Trees
-8 -5 -10 +8
Terminal States:
Tic-Tac-Toe Game Tree
Adversarial Search (Minimax)
Deterministic, zero-sum games: Minimax values:
computed recursively
Tic-tac-toe, chess, checkers
One player maximizes result 5 max
The other minimizes result
2 5 min
Minimax search:
A state-space search tree
Players alternate turns
Compute each node’s minimax value: 8 2 5 6
3 12 8 2 4 6 14 5 2
Minimax Properties
max
min
10 10 9 100
3 12 8 2 4 6 14 5 2
Minimax Pruning
3 12 8 2 14 5 2
Alpha-Beta Pruning
General configuration (MIN version)
We’re computing the MIN-VALUE at some node n MAX
We’re looping over n’s children
n’s estimate of the childrens’ min is dropping MIN a
Who cares about n’s value? MAX
Let a be the best value that MAX can get at any choice
point along the current path from the root
If n becomes worse than a, MAX will avoid it, so we can MAX
stop considering n’s other children (it’s already bad
enough that it won’t be played) MIN n
min
Good child ordering improves effectiveness of pruning
Example:
Suppose we have 100 seconds, can explore 10K nodes /
sec
So can check 1M nodes per move
- reaches about depth 8 – decent chess program
[Demo: thrashing d=2, thrashing d=2 (fixed evaluation function), smart ghosts coordinate (L6D6,7,8,10)]
Depth Matters
Evaluation functions are always
imperfect
The deeper in the tree the
evaluation function is buried, the
less the quality of the evaluation
function matters
An important example of the
tradeoff between complexity of
features and complexity of
computation