game playing chapter 5. game playing §search applied to a problem against an adversary l some...

24
Game Playing Chapter 5

Upload: louisa-norton

Post on 28-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Game Playing

Chapter 5

Page 2: 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

Game playingSearch applied to a problem against an adversary

some actions are not under the control of the problem-solver

there is an opponent (hostile agent)

Since it is a search problem, we must specify states & operations/actions initial state = current board; operators = legal moves;

goal state = game over; utility function = value for the outcome of the game

usually, (board) games have well-defined rules & the entire state is accessible

Page 3: 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

Basic ideaConsider all possible moves for yourselfConsider all possible moves for your opponentContinue this process until a point is reached

where we know the outcome of the gameFrom this point, propagate the best move back

choose best move for yourself at every turn assume your opponent will make the optimal move

on their turn

Page 4: 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

Example

Tic-tac-toe (Nilsson’s book)

Page 5: 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

Problem

For interesting games, it is simply not computationally possible to look at all possible moves in chess, there are on average 35 choices per

turn on average, there are about 50 moves per player thus, the number of possibilities to consider is

35100

Page 6: 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

SolutionGiven that we can only look ahead k number of

moves and that we can’t see all the way to the end of the game, we need a heuristic function that substitutes for looking to the end of the game this is usually called a static board evaluator (SBE) a perfect static board evaluator would tell us for

what moves we could win, lose or draw possible for tic-tac-toe, but not for chess

Page 7: 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

Creating a SBE approximationTypically, made up of rules of thumb

for example, in most chess books each piece is given a value

• pawn = 1; rook = 5; queen = 9; etc. further, there are other important characteristics of a

position• e.g., center control

we put all of these factors into one function, weighting each aspect differently potentially, to determine the value of a position

• board_value = * material_balance + * center_control + … [the coefficients might change as the game goes on]

Page 8: 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

Compromise

If we could search to the end of the game, then choosing a move would be relatively easy

just use minimax

Or, if we had a perfect scoring function (SBE), we wouldn’t have to do any search (just choose best move from current state -- one step look ahead)

Since neither is feasible for interesting games, we combine the two ideas

Page 9: 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

Basic idea

Build the game tree as deep as possible given the time constraints

apply an approximate SBE to the leavespropagate scores back up to the root & use

this information to choose a moveexample

Page 10: 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

Score percolation: MINIMAX

When it is my turn, I will choose the move that maximizes the (approximate) SBE score

When it is my opponent’s turn, they will choose the move that minimizes the SBE because we are dealing with competitive games,

what is good for me is bad for my opponent & what is bad for me is good for my opponent

assume the opponent plays optimally [worst-case assumption]

Page 11: 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 algorithm

Start at the the leaves of the trees and apply the SBE

If it is my turn, choose the maximum SBE score for each sub-tree

If it is my opponent’s turn, choose the minimum score for each sub-tree

The scores on the leaves are how good the board appears from that point

Example

Page 12: 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

Example

Page 13: 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

Alpha-beta pruningWhile minimax is an effective algorithm, it can

be inefficient one reason for this is that it does unnecessary work it evaluates sub-trees where the value of the sub-

tree is irrelevant alpha-beta pruning gets the same answer as

minimax but it eliminates some useless work

Page 14: 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

Example

Page 15: 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

Alpha-Beta Algorithm

•Traverse the search tree in depth-first order

•Assuming we stop the search at ply d, then at each of these nodes we generate, we apply the static evaluation function and return this value to the node's parent

•At each non-leaf node, store a value indicating the best backed-up value found so far. At MAX nodes we'll call this alpha, at MIN nodes we'll call the value beta.

Page 16: 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

•alpha = best (maximum) value found so far at a MAX node (based on its descendant's values).

•beta = best (i.e., minimum)value found so far at a MIN node (based on its descendant's values).

•The alpha value (of a MAX node) is monotonically non-decreasing •The beta value (of a MIN node) is monotonically non-increasing •Given a node n, cutoff the search below n

(i.e., don't generate any more of n's children) if :•beta cutoff

n is a MAX node andalpha(n) >= beta(i) for some MIN node ancestor i of n.

•alpha cutoffn is a MIN node and beta(n) <= alpha(i) for some MAX node ancestor i of n.

Page 17: 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

In the example shown above an alpha cutoff

An example of a beta cutoff at node B is shown below: (because alpha(B) = 25 > beta(S) = 20)

MIN . S beta = 20 . | . | MAX A B alpha = 25 20 /|\ / \ / | \ / \ D E 20 -10 -20 25

Page 18: 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

•To avoid searching for the ancestor nodes in order to make the above tests, we can carry down the tree the best values found so far at the ancestors.

•at a MAX node n: beta = min of all the beta values at MIN node

ancestors of n. at a MIN node n:

alpha = max of all the alpha values at MAX node ancestors of n.

•at each non-leaf node we'll store both an alpha and a beta value.

Initially, root values of alpha = -inf and beta = +infSee the text for Alpha-Beta algorithm

Page 19: 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

UseWe project ahead k moves, but we only do

one (the best) move thenAfter our opponent moves, we project

ahead k moves so we are possibly repeating some work

However, since most of the work is at the leaves anyway, the amount of work we redo isn’t significant (think of iterative deepening)

Page 20: 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

Alpha-beta performanceBest-case: can search to twice the depth

during a fixed amount of time [O(bd/2) v. O(bd)]

Worst-case: no savings alpha-beta pruning & minimax always return

the same answer the difference is the amount of work they do effectiveness depends on the order in which

successors are examined• want to examine the best first

Page 21: 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

Refinements

Waiting for quiescence avoids the horizon effect

• disaster is lurking just beyond our search depth

• on the nth move (the maximum depth I can see) I take your rook, but on the (n+1)th move (a depth to which I don’t look) you checkmate me

solution• when predicted values are changing frequently,

search deeper in that part of the tree (quiescence search)

Page 22: 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

Secondary search

Find the best move by looking to depth dLook k steps beyond this best move to see if

it still looks goodNo? Look further at second best move, etc.

in general, do a deeper search at parts of the tree that look “interesting”

Picture

Page 23: 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

Book moves

Build a database of opening moves, end games, tough examples, etc.

If the current state is in the database, use the knowledge in the database to determine the quality of a state

If it’s not in the database, just do alpha-beta pruning

Page 24: 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

AI & games

Initially felt to be great AI testbedIt turned out, however, that brute-force

search is better than a lot of knowledge engineering scaling up by dumbing down

• perhaps then intelligence doesn’t have to be human-like

more high-speed hardware issues than AI issues however, still good test-beds for learning