Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning

Slides:



Advertisements
Similar presentations
Adversarial Search Chapter 6 Section 1 – 4. Types of Games.
Advertisements

Adversarial Search We have experience in search where we assume that we are the only intelligent being and we have explicit control over the “world”. Lets.
Games & Adversarial Search Chapter 5. Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent’s reply. Time.
Games & Adversarial Search
Artificial Intelligence Adversarial search Fall 2008 professor: Luigi Ceccaroni.
CS 484 – Artificial Intelligence
Lecture 12 Last time: CSPs, backtracking, forward checking Today: Game Playing.
Games CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Minimax and Alpha-Beta Reduction Borrows from Spring 2006 CS 440 Lecture Slides.
This time: Outline Game playing The minimax algorithm
Game Playing CSC361 AI CSC361: Game Playing.
Min-Max Trees Based on slides by: Rob Powers Ian Gent Yishay Mansour.
Games & Adversarial Search Chapter 6 Section 1 – 4.
Game Playing State-of-the-Art  Checkers: Chinook ended 40-year-reign of human world champion Marion Tinsley in Used an endgame database defining.
1 Adversary Search Ref: Chapter 5. 2 Games & A.I. Easy to measure success Easy to represent states Small number of operators Comparison against humans.
Game Trees: MiniMax strategy, Tree Evaluation, Pruning, Utility evaluation Adapted from slides of Yoonsuck Choe.
Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning CPSC 315 – Programming Studio Spring 2008 Project 2, Lecture 2 Adapted from slides of Yoonsuck.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Adversarial Search CS30 David Kauchak Spring 2015 Some material borrowed from : Sara Owsley Sood and others.
Game Playing.
AD FOR GAMES Lecture 4. M INIMAX AND A LPHA -B ETA R EDUCTION Borrows from Spring 2006 CS 440 Lecture Slides.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Minimax with Alpha Beta Pruning The minimax algorithm is a way of finding an optimal move in a two player game. Alpha-beta pruning is a way of finding.
Games. Adversaries Consider the process of reasoning when an adversary is trying to defeat our efforts In game playing situations one searches down the.
Quiz 4 : Minimax Minimax is a paranoid algorithm. True
CSCI 4310 Lecture 6: Adversarial Tree Search. Book Winston Chapter 6.
Adversarial Search Chapter Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent reply Time limits.
Today’s Topics Playing Deterministic (no Dice, etc) Games –Mini-max –  -  pruning –ML and games? 1997: Computer Chess Player (IBM’s Deep Blue) Beat Human.
Game tree search Chapter 6 (6.1 to 6.3 and 6.6) cover games. 6.6 covers state of the art game players in particular. 6.5 covers games that involve uncertainty.
ARTIFICIAL INTELLIGENCE (CS 461D) Princess Nora University Faculty of Computer & Information Systems.
Adversarial Search 2 (Game Playing)
Explorations in Artificial Intelligence Prof. Carla P. Gomes Module 5 Adversarial Search (Thanks Meinolf Sellman!)
Artificial Intelligence in Game Design Board Games and the MinMax Algorithm.
Game Playing Why do AI researchers study game playing?
Adversarial Search and Game-Playing
Announcements Homework 1 Full assignment posted..
Instructor: Vincent Conitzer
Last time: search strategies
Iterative Deepening A*
PENGANTAR INTELIJENSIA BUATAN (64A614)
CS Fall 2016 (Shavlik©), Lecture 11, Week 6
Adversarial Search and Game Playing (Where making good decisions requires respecting your opponent) R&N: Chap. 6.
Pengantar Kecerdasan Buatan
Adversarial Search.
David Kauchak CS52 – Spring 2016
Adversarial Search Chapter 5.
Games & Adversarial Search
Games with Chance Other Search Algorithms
Games & Adversarial Search
Adversarial Search.
Artificial Intelligence
Game playing.
Chapter 6 : Game Search 게임 탐색 (Adversarial Search)
Games & Adversarial Search
Games & Adversarial Search
NIM - a two person game n objects are in one pile
Artificial Intelligence
Instructor: Vincent Conitzer
Introduction to Artificial Intelligence Lecture 9: Two-Player Games I
Minimax strategies, alpha beta pruning
Game Playing Fifth Lecture 2019/4/11.
Based on slides by: Rob Powers Ian Gent
Games & Adversarial Search
Adversarial Search CMPT 420 / CMPG 720.
Adversarial Search CS 171/271 (Chapter 6)
Minimax strategies, alpha beta pruning
CS51A David Kauchak Spring 2019
CS51A David Kauchak Spring 2019
Games & Adversarial Search
Unit II Game Playing.
Presentation transcript:

Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning CSCE 315 – Programming Studio Spring 2019 Project 2, Lecture 2 Robert Lightfoot Adapted from slides of Yoonsuck Choe, John Keyser

Two-Person Perfect Information Deterministic Game Two players take turns making moves Board state fully known, deterministic evaluation of moves One player wins by defeating the other (or else there is a tie) Want a strategy to win, assuming the other person plays as well as possible

General Strategy … … … Player 1 wants to maximize his chance of win Player 2 wants to maximize his (minimize Player 1’s) … (9 possibilities) … … (8 possibilities)

Minimax Tree Use Minimax tree to emulate human’s forward thinking process In Chess, players think a couple of steps (e.g., 3-4 steps) ahead in contingency of opponent moves Similar idea applies to other such games

Minimax tree Max Min Max Min Minimax tree Generate a new level for each move Levels alternate between “max” (player 1 moves) and “min” (player 2 moves)

Minimax Tree Evaluation Assign utility values to leaves Sometimes called “board evaluation function” If a state is a leaf state where Player 1 wins (looses), assign the maximum(minimum) possible utility value Otherwise, keep expanding (make the next move) Board State 1 Board State 2 Board State 3 Utility: +100 Utility: 0 Utility: -100

Minimax tree Max Min Max 100 Min -100 100 -100

Minimax Tree Algorithm function MAX-VALUE (state) if TERMINAL-TEST (state) return UTILITY (state) 𝑣=∞ foreach s in SUCCESSORS (state) v = MAX (v, MIN-VALUE (s)) return v function MIN-VALUE (state) if TERMINAL-TEST (state) return UTILITY (state) 𝑣=−∞ foreach s in SUCCESSORS (state) v = MIN (v, MAX-VALUE (s)) return v

Minimax Tree Evaluation At each min node, assign the minimum of all utility values at children Player 2 chooses the best available move At each max node, assign the maximum of all utility values at children Player 1 chooses best available move Push values from leaves to top of tree

Problem?? What if the node we are trying to judge is NOT a LEAF node For Chess, a LEAF node could be many levels down Could take years(!!!) to compute It would be best if there was a Oracle saying: “this is promising state, go for this move” The answer to this problem: Utility Function

Utility Function Create a utility function Evaluation of board/game state to determine how strong the position of player 1 is. Assume that “x” is Player 1 in the following Tic-Tac-Toe Example: You have all of Queen, Rooks, Knights, Bishops and some Pawns, while your opponent has only 1 Knight, you have a high chance of winning Utility function will assign a numeric value to this board state (say 90/100)

Minimax tree Max Min Max 28 -3 -8 12 70 -4 100 -73 -14 Min 23 28 21 -3 -12 -70 -5 -100 -73 -14 -8 -24

Minimax tree Max Min -4 -3 -73 Max 28 -3 -8 12 70 -4 100 -73 -14 Min 23 28 21 -3 12 4 70 -4 -12 -70 -5 -100 -73 -14 -8 -24

Minimax tree Max -3 Min -4 -3 -73 Max 28 -3 -8 12 70 -4 100 -73 -14 23 28 21 -3 12 4 70 -4 -12 -70 -5 -100 -73 -14 -8 -24

Minimax Evaluation Given average branching factor b, and depth m: A complete evaluation takes time bm A complete evaluation takes space bm Usually, we cannot evaluate the complete state, since it’s too big Instead, we limit the depth based on various factors, including time available.

Utility Evaluation Function Very game-specific Take into account knowledge about game “Stupid” utility 1 if player 1 wins -1 if player 0 wins 0 if tie (or unknown) Only works if we can evaluate complete tree But, should form a basis for other evaluations

Utility Evaluation Need to assign a numerical value to the state Could assign a more complex utility value, but then the min/max determination becomes trickier Typically assign numerical values to lots of individual factors a = # player 1’s pieces - # player 2’s pieces b = 1 if player 1 has queen and player 2 does not, -1 if the opposite, or 0 if the same c = 2 if player 1 has 2-rook advantage, 1 if a 1-rook advantage, etc.

Utility Evaluation The individual factors are combined by some function Usually a linear weighted combination is used u = aa + bb + cc Different ways to combine are also possible Notice: quality of utility function is based on: What features are evaluated How those features are scored How the scores are weighted/combined Absolute utility value doesn’t matter – relative value does.

Evaluation functions If you had a perfect utility evaluation function, what would it mean about the minimax tree?

Evaluation functions If you had a perfect utility evaluation function, what would it mean about the minimax tree? You would never have to evaluate more than one level deep! Typically, you can’t create such perfect utility evaluations, though.

Pruning the Minimax Tree Since we have limited time available, we want to avoid unnecessary computation in the minimax tree. Pruning: ways of determining that certain branches will not be useful

a Cuts If the current max value is greater than the successor’s min value, don’t explore that min subtree any more

a Cut example Max -3 Min -3 -4 -73 Max 21 -3 12 70 -4 100 -73 -14

a Cut example Depth first search along path 1 Max Min Max 21 -3 12 -70 -4 100 -73 -14 Depth first search along path 1

a Cut example 21 is minimum so far (second level) Max Min 21 Max 21 -3 12 -70 -4 100 -73 -14 21 is minimum so far (second level) Can’t evaluate yet at top level

a Cut example -3 is minimum so far (second level) Max -3 Min -3 Max 21 -3 12 -70 -4 100 -73 -14 -3 is minimum so far (second level) -3 is maximum so far (top level)

a Cut example 12 is minimum so far (second level) Max -3 Min 12 -3 Max 21 -3 12 -70 -4 100 -73 -14 12 is minimum so far (second level) -3 is still maximum (can’t use second node yet)

a Cut example -70 is now minimum so far (second level) Max -3 Min -70 -3 Max 21 -3 12 -70 -4 100 -73 -14 -70 is now minimum so far (second level) -3 is still maximum (can’t use second node yet)

a Cut example Max -3 Min -70 -3 Max 21 -3 12 -70 -4 100 -73 -14 Since second level node will never be > -70, it will never be chosen by the previous level We can stop exploring that node

a Cut example Evaluation at second level is -73 Max -3 Min -70 -3 -73 21 -3 12 -70 -4 100 -73 -14 Evaluation at second level is -73

a Cut example Max -3 Min -70 -3 -73 Max 21 -3 12 -70 -4 100 -73 -14 Again, can apply a cut since the second level node will never be > -73, and thus will never be chosen by the previous level

a Cut example Max -3 Min -70 -3 -73 Max 21 -3 12 -70 -4 100 -73 -14 As a result, we evaluated the Max node without evaluating several of the possible paths

b cuts Similar idea to a cuts, but the other way around If the current minimum is less than the successor’s max value, don’t look down that max tree any more

b Cut example Min 21 Max 21 70 73 Min 21 -3 12 70 -4 100 73 -14 Some subtrees at second level already have values > min from previous, so we can stop evaluating them.

a-b Pruning Pruning by these cuts does not affect final result May allow you to go much deeper in tree “Good” ordering of moves can make this pruning much more efficient Evaluating “best” branch first yields better likelihood of pruning later branches Perfect ordering reduces time to bm/2 i.e. doubles the depth you can search to!

a-b Pruning Can store information along an entire path, not just at most recent levels! Keep along the path: a: best MAX value found on this path (initialize to most negative utility value) b: best MIN value found on this path (initialize to most positive utility value)

Pruning at MAX node a is possibly updated by the MAX of successors evaluated so far If the value that would be returned is ever > b, then stop work on this branch If all children are evaluated without pruning, return the MAX of their values

Pruning at MIN node b is possibly updated by the MIN of successors evaluated so far If the value that would be returned is ever < a, then stop work on this branch If all children are evaluated without pruning, return the MIN of their values

Idea of a-b Pruning We know b on this path is 21 -3 70 We know b on this path is 21 So, when we get max=70, we know this will never be used, so we can stop here 12 70 -4 100

Idea of a-b Pruning Pruning gives the exact same result that you would have gotten without pruning It just allows you to go deeper Pruning and searching the minimax tree are independent of the particular game being studied The game influences: The utility function The branching ratio/options at any one level

Evaluation Functions for Ordering As mentioned earlier, order of branch evaluation can make a big difference in how well you can prune A good evaluation function might help you order your available moves Perform one move only Evaluate board at that level Recursively evaluate branches in order from best first move to worst first move (or vice-versa if at a MIN node)