View
220
Download
0
Embed Size (px)
Citation preview
Min-Max Trees
Based on slides by:
Rob Powers
Ian Gent
Yishay Mansour
Two Players Games
• One Search Tree for both Players– Even layers – Max Player move– Odd Layers – Min Player move
• The state evaluated according to heuristic function.
MinMax search strategy
• Generate the whole game tree. (Or up to a constant depth)
• Evaluate Terminal states (Leafs)• propagate Min-Max values up from leafs • Search for MAX best next move, so that no matter
what MIN does MAX will be better off
• For branching factor b and depth search d the complexity is O(bd)
MinMax first Example
-1
-1 1
-1 1 -2
-1 1 -2
1
Cuting Off Search
• We want to prune the tree: stop exploring subtrees with values that will not influence the final MinMax root decision
• In the worst case, no pruning. – The complexity is O(bd).– In practice, O(bd/2), with branching factor of b1/2
instead of b.
Alpha Beta First Example
Alpha and Beta values
• At a Max node we will store an alpha value– the alpha value is lower bound on the exact minimax
score
– the true value might be – if we know Min can choose moves with score <
• then Min will never choose to let Max go to a node where the score will be or more
• At a Min node, value is similar but opposite• Alpha-Beta search uses these values to cut search
Alpha Beta in Action
• Why can we cut off search?
• Beta = 1 < alpha = 2 where the alpha value is at an ancestor node
• At the ancestor node, Max had a choice to get a score of at least 2 (maybe more)
• Max is not going to move right to let Min guarantee a score of 1 (maybe less)
M axscore = 3
M axscore = 2
M inscore = 2
B es t m ove = R ig h tb e ta = 2
M axscore = 1
M axscore = ?
M axscore = ?
M inscore = ? < 2
B es t m ove = ?b e ta = 1
M axscore = 2
B es t m ove = L e fta lp h a = 2
Alpha and Beta values• Max node has value
– the alpha value is lower bound on the exact minimax score– with best play Max can guarantee scoring at least
• Min node has value– the beta value is upper bound on the exact minimax score– with best play Min can guarantee scoring no more than
• At Max node, if an ancestor Min node has < – Min’s best play must never let Max move to this node
• therefore this node is irrelevant
– if = , Min can do as well without letting Max get here• so again we need not continue
Alpha-Beta Pruning Rule
• Two key points:– alpha values can never decrease– beta values can never increase
• Search can be discontinued at a node if:
– Max node:• the alpha value is the beta of any Min ancestor• this is beta cutoff
– Min node:• the beta value is the alpha of any Max ancestor• this is alpha cutoff
#2b Left->Right = -, = +
#2b Left->Right = -, = +
= -, = +
#2b Left->Right = -, = +
= -, = +
= -, = +
#2b Left->Right = -, = +
= -, = 4
= -, = +
#2b Left->Right = -, = +
= -, = 4
= -, = + = -, = 4
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 4, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 4, = +
= 4, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 8, = +
= 4, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 8, = +
= 4, = + = 8, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 8, = +
= 4, = + = 8, = +
= 8, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 8, = +
= 4, = + = 8, = 6
= 8, = +
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = +
= 8, = +
= 4, = + = 8, = 6
= 8, = +
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 8
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 8
= 4, = 8
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 8
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 8
=5, =8
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 5, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 6, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
#2b Left->Right = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 6
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 6, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
#2b Left->Right = 6, = +
= -, = 4
= -, = + = -, = 4
= 4, = 6
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 6, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
#2b Left->Right = 6, = +
= -, = 4
= -, = + = -, = 4
= 4, = 6
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 6, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
= 6, = +
#2b Left->Right = 7, = +
= -, = 4
= -, = + = -, = 4
= 4, = 6
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 6, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8 = 5, = 6
=5, =8 =5, =6
= 6, = +
Beta Pruning = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 4, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8
9
Beta Pruning = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 9, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8
9
Beta Pruning = 4, = +
= -, = 4
= -, = + = -, = 4
= 4, = 8
= 8, = +
= 4, = + = 8, = 6
= 8, = +
= 9, = 8
= 4, = 3
= 4, = 8
(Alpha pruning)
(Alpha pruning)
= 4, = 8
9
(Beta pruning)
#2b Right->Left = -, = +
#2b Right->Left = -, = +
= -, = +
#2b Right->Left = 7, = +
= -, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = +
=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 12
=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 12
=7, =+=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = +
=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
#2b Right->Left = 7, = +
= -, = += 7, = +
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
= 7, = +
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
= 7, = 7
= 7, = +
#2b Right->Left = 7, = +
= -, = += 7, = 6
= 7, = +
= 7, = 6
=7, =+=7, =+
(Alpha pruning)
= 7, = += 7, = -1
=7, =+
(Alpha pruning)
(Alpha pruning)
= 7, = 7
= 7, = +
(Alpha pruning)