Upload
melanie-stafford
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
Games with Chance
2012/04/25
1
Nondeterministic Games: Backgammon
White moves clockwise toward 25.
Black moves counterclockwise toward 0.
A piece can move to any position unless there are multiple opponent pieces there; if there is one opponent, it is captured and must start over.
White has rolled 6-5 and must choose among four legal moves: (5-10, 5-11), (5-11, 19-24), (5-10, 10-16), (5-11, 11-16)
2
Nondeterministic Games: Backgammon (cont.-1)
• Backgammon– White can decide what his legal moves are, but cannot
determine black’s because that depends on what black rolls
• Game must include chance nodes
• How to pick best move?– Cannot apply minimax directly
3
Nondeterministic Games: Backgammon (cont.-1)
Chance nodes are included in the game tree
4
Nondeterministic Games in General
In nondeterministic games, chance introduced by dice, card-shuffling, face-down shuffling
5
Algorithm for Nondeterministic Games
• Expectiminimax gives perfect play
• Expectiminimax(n) =
Utility(n) if nTerminal
maxsSuccessors(n) Expectiminimax(s) if nMAX
minsSuccessors(n) Expectiminimax(s) if nMIN
sSuccessors(n) P(s)•Expectiminimax(s) if nChance
• Successor function for a chance node n augments the state of n with each possible dice roll to produce successor s and P(s)
6
Pruning in Nondeterministic Game Trees
• A version of - pruning is possible
[-∞,+∞] [-∞,+∞] [-∞,+∞] [-∞,+∞]
[-∞,+∞] [-∞,+∞]
[-∞,2] [-∞,+∞] [-∞,+∞] [-∞,+∞]
[-∞,+∞] [-∞,+∞]
2
[2,2] [-∞,+∞] [-∞,+∞] [-∞,+∞]
[-∞,+∞] [-∞,+∞]
2 2
[2,2] [-∞,2] [-∞,+∞] [-∞,+∞]
[-∞,2] [-∞,+∞]
2 2 2
[2,2] [1,1] [-∞,+∞] [-∞,+∞]
[1.5,1.5] [-∞,+∞]
2 2 2 1
[2,2] [1,1] [-∞,0] [-∞,+∞]
[1.5,1.5] [-∞,+∞]
2 2 2 1 0
[2,2] [1,1] [0,0] [-∞,+∞]
[1.5,1.5] [-∞,+∞]
2 2 2 1 0 1
[2,2] [1,1] [0,0] [-∞,1]
[1.5,1.5] [-∞,0.5]
2 2 2 1 0 1 1
7
Pruning Contd.• More pruning occurs if we can bound the leaf values
[-2,2] [-2,2] [-2,2] [-2,2]
[-2,2] [-2,2]
[-2,2] [-2,2] [-2,2] [-2,2]
[-2,2] [-2,2]
2
[2,2] [-2,2] [-2,2] [-2,2]
[0,2] [-2,2]
2 2
[2,2] [-2,2] [-2,2] [-2,2]
[0,2] [-2,2]
2 2 2
[2,2] [1,1] [-2,2] [-2,2]
[1.5,1.5] [-2,2]
2 2 2 1
[2,2] [1,1] [-2,0] [-2,2]
[1.5,1.5] [-2,1]
2 2 2 1 0
8
Digression: Exact Value DO Matter
• Behavior is preserved only by positive linear transformation of EvalHence Eval should be proportional to the expected payoff
Move to A1 is best Move to A2 is best
9
10
Nondeterministic games in practice
Games of Imperfect Information• e.g., card game, where opponent’s initial cards are unknown• Typically we can calculate a probability for each possible deal• Seems just like having a big dice roll at the beginning of games• Idea: averaging over clairvoyancy
– compute the minimax value of each action for each possible deal of the cards
– choose the action with the highest expected value over all deals• Special case: if an action is optimal for all deals, it is optimal• GIB (Ginsberg, 1999), current best bridge program, approximate this
idea by modifying averaging over clairvoyancy– generating 100 deals consistent with bidding information– picking the action that wins most tricks on average
11
Example
• Four-card bridge/whist/hearts hand, Max to play first
12
13
Proper analysis
- Algorithmfunction ALPHA-BETA-SEARCH ( state ) returns an action inputs: state, current state in game
v MAX-VALUE ( state, – , ) return the action in SUCCESSORS ( state ) with value v
function MAX-VALUE ( state, , ) returns a utility value inputs: state, current state in game
, the value of the best alternative for MAX along the path to state, the value of the best alternative for MIN along the path to state
if TERMINAL-TEST ( state ) then return UTILITY ( state ) v – for a, s in SUCCESSORS ( state ) do v MAX ( v, MIN-VALUE ( s, , )) if v then return v // fail-high MAX ( , v ) return v
14
- Algorithm (cont.)
function MIN-VALUE ( state, , ) returns a utility value inputs: state, current state in game
, the value of the best alternative for MAX along the path to state, the value of the best alternative for MIN along the path to state
if TERMINAL-TEST ( state ) then return UTILITY ( state ) v for a, s in SUCCESSORS ( state ) do v MIN ( v, MAX-VALUE ( s, , )) if v then return v // fail low MIN ( , v ) return v
15
Negamax(B. Chen, 2010)
16