1 / 47

AD for GAMES

AD for GAMES. Lecture 4. Minimax and Alpha-Beta Reduction. Borrows from Spring 2006 CS 440 Lecture Slides. Motivation. Want to create programs to play games Want to play optimally Want to be able to do this in a reasonable amount of time. Types of Games. Nondeterministic (Chance).

nani
Télécharger la présentation

AD for GAMES

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. AD for GAMES Lecture 4

  2. Minimax and Alpha-Beta Reduction Borrows from Spring 2006 CS 440 Lecture Slides

  3. Motivation • Want to create programs to play games • Want to play optimally • Want to be able to do this in a reasonable amount of time

  4. Types of Games Nondeterministic (Chance) Deterministic Chess Checkers Go Othello Backgammon Monopoly Fully Observable Battleship Card Games Partially Observable Minimax is for deterministic, fully observable games

  5. How to play a game by searching • General Scheme • Consider all legal moves, each of which will lead to some new state of the environment (‘board position’) • Evaluate each possible resulting board position • Pick the move which leads to the best board position. • Wait for your opponent’s move, then repeat. • Key problems • Representing the ‘board’ • Representing legal next boards • Evaluating positions • Looking ahead

  6. Game Trees • Represent the problem space for a game by a tree • Nodes represent ‘board positions’; edges represent legal moves. • Root node is the position in which a decision must be made. • Evaluation function f assigns real-number scores to `board positions.’ • Terminal nodes represent ways the game could end, labeled with the desirability of that ending (e.g. win/lose/draw or a numerical score)

  7. Basic Idea (searching) • Search problem • Searching a tree of the possible moves in order to find the move that produces the best result • Depth First Search algorithm • Assume the opponent is also playing optimally • Try to guarantee a win anyway!

  8. Required Pieces for Minimax • An initial state • The positions of all the pieces • Whose turn it is • Operators • Legal moves the player can make • Terminal Test • Determines if a state is a final state • Utility Function • Other name: static evaluation function

  9. Utility Function • Gives the utility of a game state • utility(State) • Examples • -1, 0, and +1, for Player 1 loses, draw, Player 1 wins, respectively • Difference between the point totals for the two players • Weighted sum of factors (e.g. Chess) • utility(S) = w1f1(S) + w2f2(S) + ... + wnfn(S) • f1(S) = (Number of white queens) – (Number of black queens), w1 = 9 • f2(S) = (Number of white rooks) – (Number of black rooks), w2 = 5 • ...

  10. Two Agents • MAX • Wants to maximize the result of the utility function • Winning strategy if, on MIN's turn, a win is obtainable for MAX for all moves that MIN can make • MIN • Wants to minimize the result of the evaluation function • Winning strategy if, on MAX's turn, a win is obtainable for MIN for all moves that MAX can make

  11. Example • Coins game • There is a stack of N coins • In turn, players take 1, 2, or 3 coins from the stack • The player who takes the last coin loses

  12. Coins Game: Formal Definition • Initial State: The number of coins in the stack • Operators: 1. Remove one coin 2. Remove two coins 3. Remove three coins • Terminal Test: There are no coins left on the stack • Utility Function: F(S) • F(S) = 1 if MAX wins, 0 if MIN wins

  13. MAX MIN N = 4 K = 1 3 2 N = 3 K = N = 2 K = N = 1 K = 1 3 2 2 1 1 N = 0 K = N = 1 K = N = 2 K = N = 0 K = N = 1 K = N = 0 K = F(S)=1 1 1 2 F(S)=1 1 F(S)=1 N = 0 K = N = 1 K = N = 0 K = N = 0 K = F(S)=0 1 F(S)=0 F(S)=0 N = 0 K = F(S)=1

  14. Solution MAX MIN N = 4 K = 1 1 3 2 N = 3 K = 0 N = 2 K = 0 N = 1 K = 1 1 3 2 2 1 1 N = 0 K = 1 N = 1 K = 0 N = 2 K = 1 N = 0 K = 1 N = 1 K = 0 N = 0 K = 1 F(S)=1 1 1 2 F(S)=1 1 F(S)=1 N = 0 K = 0 N = 1 K = 1 N = 0 K = 0 N = 0 K = 0 F(S)=0 1 F(S)=0 F(S)=0 N = 0 K = 1 F(S)=1

  15. Basic Algorithm

  16. Demo Time • See: WinMinimaxCSproject demo

  17. Exercise Time • See board ….

  18. Analysis • Max Depth: 5 • Branch factor: 3 • Number of nodes: 15 • Even with this trivial example, you can see that these trees can get very big • Generally, there are O(bd) nodes to search for • Branch factor b: maximum number of moves from each node • Depth d: maximum depth of the tree • Exponential time to run the algorithm! • How can we make it faster??????

  19. Alpha-Beta Pruning • Main idea: Avoid processing subtrees that have no effect on the result • Two new parameters • α: The best value for MAX seen so far • β: The best value for MIN seen so far • α is used in MIN nodes, and is assigned in MAX nodes • β is used in MAX nodes, and is assigned in MIN nodes

  20. Alpha-Beta Pruning • MAX (Not at level 0) • If a subtree is found with a value k greater than the value of β, then we do not need to continue searching subtrees • MAX can do at least as good as k in this node, so MIN would never choose to go here! • MIN • If a subtree is found with a value k less than the value of α, then we do not need to continue searching subtrees • MIN can do at least as good as k in this node, so MAX would never choose to go here!

  21. Algorithm

  22. Alpha-Beta Pruning • A way to improve the performance of the Minimax Procedure • Basic idea: “If you have an idea which is surely bad, don’t take the time to see how truly awful it is” ~ Pat Winston >=2

  23. Alpha-Beta Pruning • Traverse the search tree in depth-first order • For each MAX node n, α(n)=maximum child value found so far • Starts with – • Increases if a child returns a value greater than the current α(n) • Lower-bound on the final value • For each MIN node n, β(n)=minimum child value found so far • Starts with + • Decreases if a child returns a value less than the current β(n) • Upper-bound on the final value • MAX cutoff rule: At a MAX node n, cut off search if α(n)>=β(n) • MIN cutoff rule: At a MIN node n, cut off search if β(n)<=α(n) • Carry α and β values down in search

  24. function Max-Value(s,α,β) inputs: s: current state in game, A about to play α: best score (highest) for A along path to s β: best score (lowest) for B along path to s output: min(β, best-score (for A) available from s) if ( s is a terminal state ) then return ( terminal value of s ) else for each s’ in Succ(s) α:= max( α, Min-value(s’,α,β)) if ( α≥β) then return β return α function Min-Value(s’,α,β) output: max(α, best-score (for B) available from s ) if ( s is a terminal state ) then return ( terminal value of s) else for each s’ in Succs(s) β:= min( β, Max-value(s’,α,β)) if (β≤α) then return α return β

  25. Effectiveness of Alpha-Beta Pruning • Guaranteed to compute same root value as Minimax • Worst case: no pruning, same as Minimax (O(bd)) • Best case: when each player’s best move is the first option examined, you examine only O(bd/2) nodes, allowing you to search twice as deep!

  26. Conclusion • Minimax finds optimal play for deterministic, fully observable, two-player games • Alpha-Beta reduction makes it faster • Interesting Link(s): http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html

  27. Your KBS 2 Project • We will focus on deterministic, two-player, fully observable games • You will use minimax, alpha beta pruning and transposition tables (next college)

  28. Homework • Study chapter 10.5.2 Games form your study book • Study this presentation

  29. Homework and Practice • Implement “Tic Tac Toe with a Twist” with two human players. • See DEMO now • During practice you are asked to implement an AI player using minimaxfor this game.

More Related