• No results found

Game Playing

N/A
N/A
Protected

Academic year: 2021

Share "Game Playing"

Copied!
59
0
0

Loading.... (view fulltext now)

Full text

(1)

Game Playing

Xiaojin Zhu

[email protected]

Computer Sciences Department

University of Wisconsin, Madison

(2)

Sadly, not these games…

(3)

Overview

• two-player zero-sum discrete finite deterministic game of perfect information

• Minimax search

• Alpha-beta pruning

• Large games

• two-player zero-sum discrete finite NON-deterministic

game of perfect information

(4)

Two-player zero-sum discrete finite deterministic games of perfect information

Definitions:

• Zero-sum: one player’s gain is the other player’s loss.

Does not mean fair.

• Discrete: states and decisions have discrete values

• Finite: finite number of states and decisions

• Deterministic: no coin flips, die rolls – no chance

• Perfect information: each player can see the

complete game state. No simultaneous decisions.

(5)

Which of these are: Two-player zero-sum discrete finite deterministic games of perfect information?

Zero-sum: one player’s gain is the other player’s loss.

Does not mean fair.

Discrete: states and decisions have discrete values Finite: finite number of states

and decisions

Deterministic: no coin flips, die rolls – no chance

Perfect information: each player can see the

complete game state. No simultaneous decisions.

(6)

Which of these are: Two-player zero-sum discrete finite deterministic games of perfect information?

Zero-sum: one player’s gain is the other player’s loss.

Does not mean fair.

Discrete: states and decisions have discrete values Finite: finite number of states

and decisions

Deterministic: no coin flips, die rolls – no chance

Perfect information: each player can see the

complete game state. No simultaneous decisions.

(7)

II-Nim: Max simple game

• There are 2 piles of sticks. Each pile has 2 sticks.

• Each player takes one or more sticks from one pile.

• The player who takes the last stick loses.

(ii, ii)‏

(8)

The game tree for II-Nim

(ii ii) Max

(i ii) Min (- ii) Min

(i i) Max

(- ii) Max (- i) Max (- i) Max (- -) Max +1

(- i) Min (- -) Min -1

(- i) Min (- -) Min -1

(- -) Min -1

(- -) Max +1

(- -) Max +1

Symmetry (i ii) = (ii i)‏

Convention: score is w.r.t. the first player‏Max.‏‏Min’s‏score‏=‏– Max

who is to move at this state

Two players:

Max and Min

Max wants the largest score

Min wants the smallest score

(9)

The game tree for II-Nim

(ii ii) Max

(i ii) Min (- ii) Min

(i i) Max

(- ii) Max (- i) Max (- i) Max (- -) Max +1

(- i) Min +1

(- -) Min -1

(- i) Min (- -) Min -1

(- -) Min -1

(- -) Max +1

(- -) Max +1

Symmetry (i ii) = (ii i)‏

who is to move at this state

Two players:

Max and Min

Max wants the largest score

(10)

The game tree for II-Nim

(ii ii) Max

(i ii) Min (- ii) Min

(i i) Max +1

(- ii) Max +1

(- i) Max -1

(- i) Max -1

(- -) Max +1

(- i) Min +1

(- -) Min -1

(- i) Min +1

(- -) Min -1

(- -) Min -1

(- -) Max +1

(- -) Max +1

Symmetry (i ii) = (ii i)‏

Convention: score is w.r.t. the first player‏Max.‏‏Min’s‏score‏=‏– Max

who is to move at this state

Two players:

Max and Min

Max wants the largest score

Min wants the smallest score

(11)

The game tree for II-Nim

(ii ii) Max -1

(i ii) Min -1

(- ii) Min -1

(i i) Max +1

(- ii) Max +1

(- i) Max -1

(- i) Max -1

(- -) Max +1

(- i) Min +1

(- -) Min -1

(- i) Min +1

(- -) Min -1

(- -) Min -1

(- -) Max +1

(- -) Max +1

Symmetry (i ii) = (ii i)‏

who is to move at this state

Two players:

Max and Min

Max wants the largest score

(12)

The game tree for II-Nim

(ii ii) Max -1

(i ii) Min -1

(- ii) Min -1

(i i) Max +1

(- ii) Max +1

(- i) Max -1

(- i) Max -1

(- -) Max +1

(- i) Min +1

(- -) Min - 1

(- i) Min +1

(- -) Min -1

(- -) Min - 1

(- -) Max +1

(- -) Max +1

Symmetry (i ii) = (ii i)‏

Convention: score is w.r.t. the first player‏Max.‏‏Min’s‏score‏=‏– Max

who is to move at this state

Two players:

Max and Min

Max wants the largest score Min wants the smallest score The first player always loses, if the

second player plays optimally

(13)

Game theoretic value

• Game theoretic value (a.k.a. minimax value) of a node = the score of the terminal node that will be reached if both players play optimally.

• = The numbers we filled in.

• Computed bottom up

 In Max’s turn, take the max of the children (Max will pick that maximizing action)‏

 In Min’s turn, take the min of the children (Min will pick that minimizing action)‏

• Implemented as a modified version of DFS: minimax

algorithm

(14)

Minimax algorithm

function Max-Value(s)‏

inputs:

s: current state in game, Max about to play output: best-score (for Max) 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’))‏

return α

function Min-Value(s)‏

output: best-score (for Min) 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’))‏

return β

Time complexity?

Space complexity?

(15)

Minimax example

A

O W -3

B

N 4

F G

-5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

max

min

max

min

max

(16)

Minimax algorithm

function Max-Value(s)‏

inputs:

s: current state in game, Max about to play output: best-score (for Max) 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’))‏

return α

function Min-Value(s)‏

output: best-score (for Min) 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’))‏

return β

Time complexity?

O(bm)  bad

Space complexity?

O(bm)‏

(17)

Against a dumber opponent?

• Max surely loses!

• If Min not optimal,

• Which way?

Why?

(ii ii) Max -1

(i ii) Min -1

(- ii) Min -1

(i i) Max +1

(- ii) Max +1

(- i) Max -1

(- i) Max -1

(- -) Max +1

(- i) Min +1

(- -) Min -1

(- i) Min +1

(- -) Min -1

(- -) Min -1

(- -) Max +1

(- -) Max +1

(18)

Next: alpha-beta pruning

Gives the same game theoretic values as minimax, but prunes part of the game tree.

"If you have an idea that is surely bad, don't take the time

to see how truly awful it is." -- Pat Winston

(19)

Alpha-Beta Motivation

S

A 100 C

200 D

100

B

120 E F

20

max

min

• Depth-first order

• After returning from A, Max can get at least 100 at S

• After returning from F, Max can get at most 20 at B

• At this point, Max losts interest in B

• There is no need to explore G. The subtree at G is

G

(20)

Alpha-beta pruning

function Max-Value (s,α,β)‏

inputs:

s: current state in game, Max about to play α: best score (highest) for Max along path to s β: best score (lowest) for Min along path to s

output: min(β , best-score (for Max) 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 β /* alpha pruning */

return α

function Min-Value(s,α,β)‏

output: max(α , best-score (for Min) 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 α /* beta pruning */

return β

Starting from the root:

Max-Value(root, -, +)‏

(21)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=-

β=+

• Keep two bounds along the path

 : the best Max can do

 : the best (smallest) Min can do

• If at anytime  exceeds , the remaining children are

(22)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=-

β=+

α=-

β=+

(23)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=-

β=+

α=-

β=200

(24)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=-

β=+

α=-

β=100

(25)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=100

β=+

α=-

β=100

α=100 β=+

(26)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=100

β=+

α=-

β=100

α=100 β=120

(27)

Alpha pruning example

S

100 A

200 C D

100

B E

120 F

20

max

min

G α=100

β=+

α=-

β=100

α=100 β=20

X

(28)

Beta pruning example

A

20 B

20 D E

-10

25 C

-20 F G

25

max min max

H

• Keep two bounds along the path

 : the best Max can do

 : the best (smallest) Min can do

• If at anytime  exceeds , the remaining children are

S

X

(29)

Yet another alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If at anytime  exceeds , the remaining children are pruned.

A A A

=- α

O B

N 4

F G

-5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

max

– = – 

+ = + 

(30)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

B B B β

= +

O W -3

N 4

F G

-5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

(31)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

F F F

=- α

O B β

= +

N 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

(32)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O W -3

B β

= +

N 4

F α

=-

G -5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

N 4

min

max

(33)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

F α

=-

F α

= 4

O B β

= +

N 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

 updated

(34)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O O O β

= +

W -3

B β

= +

N 4

F α

= 4

G -5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min

(35)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

= +

B β

= +

N 4

F α

= 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7

K M

H 3 I

8 J L

2

A α

max =-

min

min

-9 V

(36)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

= +

O β

=- 3

W -3

B β

= +

N 4

F α

= 4

G -5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min

(37)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

= +

N 4

F α

= 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min

(38)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

B β

= +

B β

= 4

O β

=- 3

W -3

N 4

F α

= 4

G -5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min X

-5

(39)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

= 4

N 4

F α

= 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min

G -5

(40)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =-

min

max

min X

-5

G -5

(41)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

D E C 0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

=- 5

max

min

max

min

G -5

(42)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

C C C β

= +

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E

0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =

min

max

min X

-5

A α

=- 5

(43)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

D E

0

C β

= +

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =

min

max

min

A α

=- 5

H 3

(44)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

C β

= +

C β

= 3

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E

0

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =

min

max

min X

-5

A α

=- 5

(45)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 J L

2

A α

max =

min

max

min

A α

=- 5

8 I

(46)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

J J J α

=- 5

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 L

2

A α

max =

min

min X

-5

A α

=- 5

(47)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8

J α

=- 5

L 2

A α

max =

min

max

min

A α

=- 5

P 9

(48)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

J α

=-

J α

= 9

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 L

2

A α

max =

min

max

min X

-5

A α

=- 5

Q -6 R

0

(49)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

J α

=-

J α

= 9

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8 L

2

A α

max =

min

max

min

A α

= 3

Q -6 R

0

(50)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

W -3

B β

=- 5

N 4

F α

= 4

G -5

-5 X

D E

0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K M

H 3 I

8

J α

= 9

L 2

A α

max =

min

max

min X

-5

A α

= 3

(51)

Alpha-beta pruning example

• Keep two bounds along the path

 : the best Max can do on the path

 : the best (smallest) Min can do on the path

• If a max node exceeds , it is pruned.

• If a min node goes below , it is pruned.

O β

=- 3

B β

=- 5

N 4

F α

= 4

G -5

E β

= 2

D 0

C β

= 3

R 0

P 9 Q

-6 S

3 T

5 U

-7 V

-9

K α

= 5

H M

3 I

8

J α

= 9

L 2

A α

max =

min

max

min

A α

= 3

References

Related documents

Unfortunately, over 20,000 children in Kampala are estimated to be living on the streets and in slum areas (Kasirye and Lightfoot, 2000) where they are exposed to a number of

Options include a standard ballscrew drive or a dynamic version with linear drive in the X-axis for the highest precision and dynamics, motor spindles that are available as

from the regeneration funds in the area, it was seen as a valuable asset to its development, as a member of the Greenwich Peninsula Partnership points out: “The role of projects

For example, the handling of a Dutch company coupled with a Swiss finance branch (which also seems to be a fashionable financial structure) is obviously similar to our

In addition, for a square duct downstream of an elbow with fully developed velocity inlet, the dimensionless developing length based on velocity gradient profiles were found to be

 What is the target market that you will sell your products and services and what the idea customer looks like.  What part of the market you are going for.. Copyright ©

Page 1 of 6 © Annals of Translational Medicine All rights reserved Ann Transl Med 2019;7(Suppl 7) S248 | http //dx doi org/10 21037/atm 2019 03 34 Review Article Innovations in