1 / 74

Min-Max Trees

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.

Télécharger la présentation

Min-Max Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 factorb and depth search d the complexity is O(bd)

  4. MinMax first Example

  5. -1

  6. 1 -1

  7. 1 -2 -1

  8. 1 1 -2 -1

  9. 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.

  10. Alpha Beta First Example

  11. 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

  12. 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)

  13. 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

  14. 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

  15. #2b Left->Right = -, = +

  16. #2b Left->Right = -, = + = -, = +

  17. #2b Left->Right = -, = + = -, = + = -, = +

  18. #2b Left->Right = -, = + = -, = 4 = -, = +

  19. #2b Left->Right = -, = + = -, = 4 = -, = + = -, = 4

  20. #2b Left->Right = 4, = + = -, = 4 = -, = + = -, = 4

  21. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4

  22. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 4, = +

  23. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 4, = + = 4, = +

  24. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 8, = + = 4, = +

  25. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 8, = + = 4, = + = 8, = +

  26. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 8, = + = 4, = + = 8, = + = 8, = +

  27. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 8, = + = 4, = + = 8, = 6 = 8, = +

  28. #2b Left->Right = 4, = + = -, = 4 = 4, = + = -, = + = -, = 4 = 8, = + = 4, = + = 8, = 6 (Alpha pruning) = 8, = +

  29. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = + = 8, = 6 (Alpha pruning) = 8, = +

  30. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 (Alpha pruning) = 8, = +

  31. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 8 (Alpha pruning) = 8, = +

  32. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 8 (Alpha pruning) = 8, = + = 4, = 8

  33. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 = 4, = + = 8, = 6 = 4, = 3 (Alpha pruning) = 8, = + = 4, = 8

  34. #2b Left->Right = 4, = + = -, = 4 = 4, = 8 = -, = + = -, = 4 = 8, = + = 4, = 8 (Alpha pruning) = 4, = + = 8, = 6 = 4, = 3 (Alpha pruning) = 8, = + = 4, = 8

  35. #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

  36. #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

  37. #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

  38. #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

  39. #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

  40. #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

  41. #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

  42. #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

  43. #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

  44. #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

  45. #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

  46. #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

  47. 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

  48. 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

  49. 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

More Related