Lecture 6 - Adversarial Search
Lecture 6 - Adversarial Search
P2: Multi-Agent
Out tomorrow 29 March 2023
Deadline: Monday, 17 April 2023 @ 17h00
Lecture 7: Adversarial Search II
Friday 31 March 2023 @ 17h00
Recording
Self Study
Required for Question 4
Forms the basis for MDP
Mini-Test 5: Adversarial Search
Tuesday, 11 April
Lecture 6 & 7
2
ARI711S: Artificial Intelligence
Adversarial Search I
Game Playing State-of-the-Art
Checkers: 1950: First computer player. 1994: First
computer champion: Chinook ended 40-year-reign
of human champion Marion Tinsley using complete
8-piece endgame. 2007: Checkers solved!
Pacman
Behavior from Computation
Video of Demo Mystery Pacman
Adversarial Games
Types of Games
Many different kinds of games!
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
the best achievable utility against a
rational (optimal) adversary Terminal values:
part of the game
Minimax Implementation
3 12 8 2 4 6 14 5 2
Minimax Efficiency
How efficient is minimax?
Just like (exhaustive) DFS
Time: O(bm)
Space: O(bm)
max
min
10 10 9 100
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
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