230 likes | 364 Views
Adversarial Search: Game Playing. Reading: Chess paper. Agenda. Review of game-playing approaches A how-to example: Checkers Your homework. Minimax Algorithm Alternate levels of tree represent MAX (computer) and MIN (opponent) Depth first search for optimal strategy for MAX
E N D
Adversarial Search: Game Playing Reading: Chess paper
Agenda • Review of game-playing approaches • A how-to example: Checkers • Your homework
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
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
MAX MIN -1
MAX MIN -1 -1
MAX MIN -1 -1 -1
MAX MIN -1 -1 -1 1
MAX MIN -1 1 1 -1 1 -1 1
MAX MIN -1 1 1 -1 1 -1 1
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
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
≥ 3 > β so no need to look further ≤ 3 ≤ 2
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
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
Building a program to play checkers • Play the game: http://www.darkfish.com/checkers/Checkers.html • What are good strategies? http://dqsoft.com/checkerstips.html
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