adversarial search
DESCRIPTION
Adversarial Search. Chapter 6 Section 1 – 4. Warm Up. Let’s play some games!. Outline. Optimal decisions Imperfect, real-time decisions α-β pruning. Games vs. search problems. "Unpredictable" opponent specifying a move for every possible opponent reply - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/1.jpg)
Adversarial Search
Chapter 6
Section 1 – 4
![Page 2: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/2.jpg)
Warm Up
• Let’s play some games!
![Page 3: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/3.jpg)
Outline
• Optimal decisions
• Imperfect, real-time decisions
• α-β pruning
![Page 4: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/4.jpg)
Games vs. search problems
• "Unpredictable" opponent specifying a move for every possible opponent reply
• Time limits unlikely to find goal, must approximate
![Page 5: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/5.jpg)
Minimax Search
• Core of many computer games
• Pertains primarily to:– Turn based games– Two players– Players with “perfect knowledge”
![Page 6: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/6.jpg)
Game tree (2-player, deterministic, turns)
![Page 7: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/7.jpg)
Game Tree
• Nodes are states
• Edges are decisions
• Levels are called “plys”
![Page 8: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/8.jpg)
Naïve Approach
• Given a game tree, what would be the most straightforward playing approach?
• Any potential problems?
![Page 9: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/9.jpg)
Minimax
• Minimizing the maximum possible loss
• Choose move which results in best state– Select highest expected score for you
• Assume opponent is playing optimally too– Will choose lowest expected score for you
![Page 10: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/10.jpg)
Minimax
• Perfect play for deterministic games• Idea: choose move to position with highest minimax
value = best achievable payoff against best play
• E.g., 2-ply game:
![Page 11: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/11.jpg)
Minimax algorithm
![Page 12: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/12.jpg)
Properties of minimax
• Complete? Yes (if tree is finite)• Optimal? Yes (against an optimal opponent)• Time complexity? O(bm)• Space complexity? O(bm) (depth-first exploration)
• For chess, b ≈ 35, m ≈100 for "reasonable" games exact solution completely infeasible
![Page 13: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/13.jpg)
Resource limits
Suppose we have 100 secs, explore 104 nodes/sec 106 nodes per move
Standard approach:• cutoff test:
e.g., depth limit (perhaps add quiescence search)
• evaluation function = estimated desirability of position
![Page 14: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/14.jpg)
Evaluation Functions
• Assign a utility score to a state– Different for players?
• Usually a range of integers– [-1000,+1000]
• +infinity for win
• -infinity for loss
![Page 15: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/15.jpg)
Cutting Off Search
• How to score a game before it ends?– You have to fudge it!
• Use a heuristic function to approximate state’s utility
![Page 16: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/16.jpg)
Cutting off search
MinimaxCutoff is identical to MinimaxValue except1. Terminal? is replaced by Cutoff?2. Utility is replaced by Eval
Does it work in practice?bm = 106, b=35 m=4
4-ply lookahead is a hopeless chess player!– 4-ply ≈ human novice– 8-ply ≈ typical PC, human master– 12-ply ≈ Deep Blue, Kasparov(A computer program which evaluates no further than its own legal moves plus the
legal responses to those moves is searching to a depth of two-ply. )
![Page 17: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/17.jpg)
Example Evaluation Function
• For chess, typically linear weighted sum of features
Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)
• e.g., w1 = 9 with
f1(s) = (number of white queens) – (number of black queens), etc.
![Page 18: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/18.jpg)
Evaluating States
• Assuming an ideal evaluation function, how would you make a move?
• Is this a good strategy with a bad function?
![Page 19: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/19.jpg)
Look Ahead
• Instead of only evaluating immediate future, look as far ahead as possible
![Page 20: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/20.jpg)
Look Ahead
![Page 21: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/21.jpg)
Bubbling Up
• Looking ahead allows utility values to “bubble up” to root of search tree
![Page 22: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/22.jpg)
Minimax Algorithm
• BESTMOVE function
• Inputs:– Board state– Depth bound
• Explores search tree to specified depth
• Output:– Best move
![Page 23: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/23.jpg)
Minimax Algorithm
![Page 24: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/24.jpg)
Minimax Algorithm
![Page 25: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/25.jpg)
Minimax Algorithm
![Page 26: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/26.jpg)
Minimax Algorithm
![Page 27: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/27.jpg)
Minimax Algorithm
• Did you notice anything missing?
![Page 28: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/28.jpg)
Minimax Algorithm
• Did you notice anything missing?
• Where were Max-Value and Min-Value?
![Page 29: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/29.jpg)
Minimax Algorithm
• Did you notice anything missing?
• Where were Max-Value and Min-Value?
• What is going on here?
![Page 30: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/30.jpg)
Minimax Algorithm
• Did you notice anything missing?
• Where were Max-Value and Min-Value?
• What is going on here?
![Page 31: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/31.jpg)
Be Careful!
• Things to worry about?
![Page 32: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/32.jpg)
Complexity
• What is the space complexity of depth-bounded Minimax?
![Page 33: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/33.jpg)
Complexity
• What is the space complexity of depth-bounded Minimax?– Board size s– Depth d– Possible moves m
![Page 34: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/34.jpg)
Complexity
• What is the space complexity of depth-bounded Minimax?– Board size s– Depth d– Possible moves m
• O(ds+m)
• Board positions can be released as bubble up
![Page 35: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/35.jpg)
Minimax Algorithm
• Did I just do your project for you?
![Page 36: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/36.jpg)
Minimax Algorithm
• Did I just do your project for you?
• No!
![Page 37: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/37.jpg)
Minimax Algorithm
• Did I just do your project for you?
• No!
• You need to create:– Evaluation function– Move generator– did_i_win? function
![Page 38: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/38.jpg)
Isolation Clarification
• Standalone game clients– Opponent moves entered manually– Output your move on stdout
• Assignment is out of 100
• Tournament is single elimination– But there will be food!
![Page 39: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/39.jpg)
Recap
• What is a zero sum game?
![Page 40: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/40.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
![Page 41: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/41.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?
![Page 42: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/42.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?– Why is it called that?
![Page 43: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/43.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?– Why is it called that?
• What is its space complexity?
![Page 44: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/44.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?– Why is it called that?
• What is its space complexity?
• How can the Minimax algorithm be simplified?
![Page 45: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/45.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?– Why is it called that?
• What is its space complexity?
• How can the Minimax algorithm be simplified?– Will this work for all games?
![Page 46: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/46.jpg)
Recap
• What is a zero sum game?
• What is a game tree?
• What is Minimax?– Why is it called that?
• What is its space complexity?
• How can the Minimax algorithm be simplified?– Will this work for all games?
![Page 47: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/47.jpg)
Next Up
• Recall that minimax will produce optimal play against an optimal opponent if entire tree is searched
• Is the same true if a cutoff is used?
![Page 48: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/48.jpg)
Horizon Effect
• Your algorithm searches to depth n
• What happens if:– Evaluation(s) at depth n is very positive– Evaluation(s) at depth n+1 is very negative
• Or:– Evaluation(s) at depth n is very negative– Evaluation(s) at depth n+1 is very positive
• Will this ever happen in practice?
![Page 49: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/49.jpg)
Local Maxima Problem
![Page 50: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/50.jpg)
Search Limitation Mitigation
• Sometimes it is useful to look deeper into game tree
• We could peak past the horizon…
• But how can you decide what nodes to explore?– Quiescence search
![Page 51: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/51.jpg)
Quiescence Search
• Human players have some intuition about move quality– “Interesting vs “boring”– “Promising” vs “dead end”– “Noisy” vs “quiet”
• Expand horizon for potential high impact moves
• Quiescence search adds this to Minimax
![Page 52: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/52.jpg)
Quiescence Search
• Additional search performed on leaf nodes
• if looks_interesting(leaf_node):
extend_search_depth(leaf_node)
else:
normal_evaluation(leaf_node)
![Page 53: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/53.jpg)
Quiescence Search
• What constitutes an “interesting” state?– Moves that substantially alter game state– Moves that cause large fluctuations in
evaluation function output
• Chess example: capture moves
• Must be careful to prevent indefinite extension of search depth– Chess: checks vs captures
![Page 54: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/54.jpg)
Search Limitation Mitigation
• Do you always need to search the entire tree?– No!
• Sometimes it is useful to look less deeply into tree
• But how can you decide what branches to ignore?– Tree pruning
![Page 55: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/55.jpg)
Tree Pruning
• Moves chosen under assumption of optimal adversary
• You know the best move so far
• If you find a branch with a worse move, is there any point in looking further?
• Thought experiment: bag game
![Page 56: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/56.jpg)
Pruning Example
![Page 57: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/57.jpg)
Alpha-Beta Pruning
• During Minimax, keep track of two additional values
• Alpha– Your best score via any path
• Beta– Opponent’s best score via any path
![Page 58: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/58.jpg)
Alpha-Beta Pruning
• Max player (you) will never make a move that could lead to a worse score for you
• Min player (opponent) will never make a move that could lead to a better score for you
• Stop evaluating a branch whenever:– A value greater than beta is found – A value less than alpha is found
![Page 59: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/59.jpg)
Why is it called α-β?
• α is the value of the best (i.e., highest-value) choice found so far at any choice point along the path for max
• If v is worse than α, max will avoid it prune that branch
• Define β similarly for min
![Page 60: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/60.jpg)
Alpha-Beta Pruning
• Based on observation that for all viable paths utility value n will be α <= n <= β
![Page 61: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/61.jpg)
Alpha-Beta Pruning
• Initially, α = -infinity, β=infinity
![Page 62: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/62.jpg)
Alpha-Beta Pruning
• As the search tree is traversed, the possible utility value window shrinks as– Alpha increases– Beta decreases
![Page 63: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/63.jpg)
Alpha-Beta Pruning
• Once there is no longer any overlap in the possible ranges of alpha and beta, it is safe to conclude that the current node is a dead end
![Page 64: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/64.jpg)
Minimax algorithm
![Page 65: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/65.jpg)
The α-β algorithm
![Page 66: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/66.jpg)
The α-β algorithm
![Page 67: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/67.jpg)
α-β pruning example
![Page 68: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/68.jpg)
α-β pruning example
![Page 69: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/69.jpg)
α-β pruning example
![Page 70: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/70.jpg)
α-β pruning example
![Page 71: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/71.jpg)
α-β pruning example
![Page 72: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/72.jpg)
Another α-β Pruning Example
![Page 73: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/73.jpg)
Minimax Psuedocode
![Page 74: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/74.jpg)
Alpha-Beta Psuedocode
![Page 75: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/75.jpg)
Minimax Psuedocode
![Page 76: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/76.jpg)
Alpha-Beta Psuedocode
![Page 77: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/77.jpg)
Minimax Psuedocode
![Page 78: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/78.jpg)
Alpha-Beta Psuedocode
![Page 79: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/79.jpg)
Minimax Algorithm
![Page 80: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/80.jpg)
Alpha-Beta Psuedocode
![Page 81: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/81.jpg)
Tree Pruning vs Heuristics
• Search depth cut off may affect outcome of algorithm
• How about pruning?
![Page 82: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/82.jpg)
Move Ordering
• Does the order in which moves are listed have any impact of alpha-beta?
![Page 83: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/83.jpg)
Move Ordering
• Techniques for improving move ordering
• Apply evaluation function to nodes prior to expanding children– Search in descending order– But sacrifices search depth
• Cache results of previous algorithm
![Page 84: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/84.jpg)
Properties of α-β
• Pruning does not affect final result
• Good move ordering improves effectiveness of pruning
• With "perfect ordering," time complexity = O(bm/2) doubles depth of search
• A simple example of the value of reasoning about which computations are relevant (a form of metareasoning)
![Page 85: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/85.jpg)
Deterministic games in practice• Checkers: Chinook ended 40-year-reign of human world champion
Marion Tinsley in 1994. Used a pre-computed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions.
![Page 86: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/86.jpg)
Deterministic games in practice• Checkers: Chinook ended 40-year-reign of human world champion
Marion Tinsley in 1994. Used a pre-computed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions.
• Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply.
![Page 87: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/87.jpg)
Deterministic games in practice• Checkers: Chinook ended 40-year-reign of human world champion
Marion Tinsley in 1994. Used a pre-computed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions.
• Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply.
• Othello: human champions refuse to compete against computers, who are too good.
![Page 88: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/88.jpg)
Deterministic games in practice• Checkers: Chinook ended 40-year-reign of human world champion
Marion Tinsley in 1994. Used a pre-computed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions.
• Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply.
• Othello: human champions refuse to compete against computers, who are too good.
• Go: human champions refuse to compete against computers, who are too bad. In go, b > 300, so most programs use pattern knowledge bases to suggest plausible moves.
![Page 89: Adversarial Search](https://reader037.vdocuments.us/reader037/viewer/2022110101/56812bce550346895d902858/html5/thumbnails/89.jpg)
Summary
• Games are fun to work on!
• They illustrate several important points about AI
• perfection is unattainable must approximate
• good idea to think about what to think about