Download presentation
Presentation is loading. Please wait.
1
Based on slides by: Rob Powers Ian Gent
Min-Max Trees Yishay Mansour Based on slides by: Rob Powers Ian Gent
2
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.
3
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)
4
MinMax first Example
5
1 1 -2 -1
6
MinMax evaluation function
function MinMax-Decision(game) returns an operator for each op in Operator[game] do Value[op] := MinMax-Value(Apply(op,game),game) end return the op with the highest Value[op] function MinMax-Value(state,game) returns an utility value if Terminal-Test[game](state) then return Utility[game](state) else if MAX’s turn return the highest MinMax-Value of Successors(state) else (MIN’s turn) return the lowest MinMax-Value of Successors(state)
7
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.
8
Alpha Beta First Example
9
Alpha-Beta search cutoff rules
Keep track and update two values so far: alpha is the value of best choice in the MAX path beta is the value of best choice in the MIN path Rule: do not expand node n when beta <= alpha for MAX node return beta for MIN node return alpha
10
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
11
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)
12
Alpha and Beta values Max node has value Min node has value
the alpha value is lower bound on the exact minimax score with best play M x 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
13
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: It is a Max node and the alpha value is the beta of any Min ancestor this is beta cutoff Or it is a Min node and the beta value is the alpha of any Max ancestor this is alpha cutoff
14
Alpha-Beta prunning function Max-Value(state,game,alpha,beta) returns
minmax value of state if Cutoff-Test(state) then return Eval(state) for each s in Successor(state) do alpha := Max(alpha,Min-Value(s, game,alpha,beta)) if beta <= alpha then return beta end; return alpha function Min-Value(state,game,alpha,beta) returns beta := Min(beta,Max-Value(s, game,alpha,beta)) if beta <= alpha then return alpha end; return beta
15
#2b Left->Right = -, = +
16
#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
17
Beta Pruning 9 = 4, = + = -, = 4 = 4, = 8 = -, = +
= 8, = + = 4, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) 9 = 8, = + = 4, = 8
18
Beta Pruning 9 = 4, = + = -, = 4 = 4, = 8 = -, = +
= 8, = + = 9, = 8 (Beta pruning) (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 = 4, = 8 (Alpha pruning) 9 = 8, = + = 4, = 8
19
#2b Right->Left = -, = +
20
#2b Right->Left = 7, = + = 7, = 7 = 7, = 6 = -, = +
(Alpha pruning) (Alpha pruning) = 7, = + = 7, = + (Alpha pruning) = 7, = -1 = 7, = + = 7, = 6 (Alpha pruning) =7, =+ =7, =+ =7, =+
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.