Adversarial Search: Game Playing Reading: Chess paper

advertisement
Adversarial Search: Game
Playing
Reading: Chess paper
Agenda

Review of game-playing approaches

A how-to example: Checkers

Your homework
2
Minimax Algorithm
• Alternate levels of tree represent MAX (computer) and MIN (opponent)
• Depth first search for optimal strategy for MAX
• Assume both players make optimal move at each point
• Back minimax values up the tree
MAX
MIN
3
Search Formulation




States: board configurations
Operators (Successor function): legal moves
Goal test: (for max) a terminal state with
high utility
Utility function: numeric values for final
states. E.g., win, loss, draw with values 1, 1, 0
4
5
MAX
MIN
-1
6
MAX
MIN
-1
-1
7
MAX
-1
MIN
-1
-1
8
MAX
-1
MIN
-1
-1
1
9
MAX
-1
MIN
1
1
-1
-1
1
1
10
MAX
-1
MIN
1
1
-1
-1
1
1
11
Move: A turn by P1 and response by P2
Ply: A level in the tree corresponding to a single turn
Ply is used to specify how deep a program searches
12
Which values are necessary?
X X
13
•
value is a lower-bound on the actual value of a MAX
node
•  value is an upper-bound on actual value of a MIN
node
≥3
≤3
14
≥3
≤3
≤2
 > β so no need to
look further
15
Pruning Methods

Alpha-Beta pruning

Heuristic evaluation functions


Evaluate a board state to produce an
estimate of the utility at end game
Order nodes by evaluation function
results
16
Heuristics: evaluation functions

Bound the depth of search, and use an
evaluation function to estimate value of current
board configurations



E.g., Othello: #white pieces - #black pieces
E.g., Chess: Value of all white pieces – Value of all
black pieces
Typical values from –infinity (lost) to +infinity (won)
or [-1,+1]
 turn non-terminal nodes into terminal leaves
And, - pruning continues to apply
-> Use expert knowledge and/or machine
learning
17
18
19
Building a program to play checkers


Play the game:
http://www.darkfish.com/checkers/Checkers.ht
ml
What are good strategies?
http://dqsoft.com/checkerstips.html
20
21
The α-β algorithm
22
Suppose

We want to add in heuristic evaluation
function

We want to specify how many ply the
program will search

We want to make it specific to checkers

We want to order expansion of nodes by
evaluation function
23
Download