740 likes | 795 Vues
Min-Max Trees. Yishay Mansour. Based on slides by: Rob Powers Ian Gent. 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.
E N D
Min-Max Trees Yishay Mansour Based on slides by: Rob Powers Ian Gent
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 factorb and depth search d the complexity is O(bd)
1 -1
1 -2 -1
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 isO(bd). • In practice,O(bd/2), with branching factor of b1/2 instead of b.
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)
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 (Alpha pruning) = 8, = +
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = + = 8, = 6 (Alpha pruning) = 8, = +
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 (Alpha pruning) = 8, = +
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 8 (Alpha pruning) = 8, = +
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 8 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 3 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 8 (Alpha pruning) = 8, = + = 4, = 8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 8 (Alpha pruning) = 8, = + = 4, = 8 =5, =8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 5, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 6, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 4, = + = -, = 4 = 4, = 6 = -, = + = -, = 4 = 8, = + = 6, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 6, = + = -, = 4 = 4, = 6 = -, = + = -, = 4 = 8, = + = 6, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 6, = + = -, = 4 = 6, = + = 4, = 6 = -, = + = -, = 4 = 8, = + = 6, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
#2b Left->Right = 7, = + = -, = 4 = 6, = + = 4, = 6 = -, = + = -, = 4 = 8, = + = 6, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 = 5, = 6 (Alpha pruning) = 8, = + = 4, = 8 =5, =8 =5, =6
Beta Pruning = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) 9 = 8, = + = 4, = 8
Beta Pruning = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 9, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) 9 = 8, = + = 4, = 8
Beta Pruning = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 9, = 8 (Beta pruning) (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) 9 = 8, = + = 4, = 8