Sie sind auf Seite 1von 33

Alpha-Beta Pruning Example

Alpha-Beta Pruning Idea


Some of the branches of the game tree won't be taken if playing against a smart opponent. Use pruning to ignore those branches. While doing DFS of game tree, keep track of:
alpha at maximizing levels (computers move)
highest SBE value seen so far (initialize to -infinity) is lower bound on state's evaluation

beta at minimizing levels (opponents move)


lowest SBE value seen so far (initialize to +infinity) is higher bound on state's evaluation

Alpha-Beta Pruning Idea


Beta cutoff pruning occurs when maximizing if childs alpha >= parent's beta Why stop expanding children?
opponent won't allow computer to take this move

Alpha cutoff pruning occurs when minimizing if parent's alpha >= childs beta Why stop expanding children?
computer has a better move than this

Alpha-Beta Search Example


minimax(A,0,4) alpha initialized to -infinity

Expand A? Yes since there are successors, no cutoff test for root A A =C G H
3

max B F N
4

Call Stack D
0

E K L
2

-5

J Q R
0

M U V

O W
-3

P
9

-6

S
3

T
5

-7

-9

-5

Alpha-Beta Search Example


minimax(B,1,4) beta initialized to +infinity

Expand B? Yes since As alpha >= Bs beta is false, no alpha cutoff A Call Stack D
0

max B B =+ min F N
4 -5

=-

C H
3

E K L
2

J Q R
0

M U V

O W
-3

P
9

-6

S
3

T
5

-7

-9

-5

B A

Alpha-Beta Search Example


minimax(F,2,4) alpha initialized to -infinity

Expand F? Yes since Fs alpha >= Bs beta is false, no beta cutoff A =- C H


3

max
=+

Call Stack D
0

E K L
2

min max
4

F F =- N W
-3

-5

J Q R
0

M U V

O X

P
9

-6

S
3

T
5

-7

-9

F B A

-5

Alpha-Beta Search Example


minimax(N,3,4) evaluate and return SBE value

max
=+

A =- C D
0

Call Stack E K R
0

min max
4

F =- N W
-3

-5

H
3

J Q S
3

L
2

M U V N F B A

O X

P
9

-6

T
5

-7

-9

-5

green: terminal state

Alpha-Beta Search Example


back to minimax(F,2,4) alpha = 4, since 4 >= -infinity (maximizing)

Keep expanding F? Yes since Fs alpha >= Bs beta is false, no beta cutoff A =- C H
3

max
=+

Call Stack D
0

E K L
2

min max N
4

=4 =-

-5

J Q R
0

M U V

O W
-3

P
9

-6

S
3

T
5

-7

-9

-5

F B A

Alpha-Beta Search Example


minimax(O,3,4) beta initialized to +infinity

Expand O? Yes since Fs alpha >= Os beta is false, no alpha cutoff A =- C H


3

max
=+

Call Stack D
0

E K L
2

min max N
4

=4

-5

J Q R
0

M U V O F B A

O O =+ W
-3 -5

P
9

-6

S
3

T
5

-7

-9

min

Alpha-Beta Search Example


minimax(W,4,4) evaluate and return SBE value

max
=+

A =- C D
0

Call Stack E K R
0

min max N
4

=4

-5

H
3

J Q S
3

L
2

M U V

=+

P
9

-6

T
5

-7

-9

min

W
-3

-5

blue: non-terminal state (depth limit)

W O F B A

Alpha-Beta Search Example


back to minimax(O,3,4) beta = -3, since -3 <= +infinity (minimizing)

Keep expanding O? No since Fs alpha >= Os beta is true: alpha cutoff A =- C H


3

max
=+

Call Stack D
0

E K L
2

min max N
4

=4

-5

J Q R
0

M U V O F B A

=-3 =+

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


Why? Smart opponent will choose W or worse, thus O's upper bound is 3. Computer already has better move at N.

max
=+

A =- C D
0

Call Stack E K R
0

min max N
4

=4

-5

H
3

J Q S
3

L
2

M U V O F B A

=-3

P
9

-6

T
5

-7

-9

min

W
-3

-5

red: pruned state

Alpha-Beta Search Example


back to minimax(F,2,4) alpha doesnt change, since -3 < 4 (maximizing)

Keep expanding F? No since no more successors for F A =- C H


3

max
=+

Call Stack D
0

E K L
2

min max N
4

=4

-5

J Q R
0

M U V

=-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

F B A

Alpha-Beta Search Example


back to minimax(B,1,4) beta = 4, since 4 <= +infinity (minimizing)

Keep expanding B? Yes since As alpha >= Bs beta is false, no alpha cutoff A =- C G H
3

max
=+ =4

Call Stack D
0

E K L
2

min
=4

-5

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

B A

Alpha-Beta Search Example


minimax(G,2,4) evaluate and return SBE value

max
=4

A =- C D
0

Call Stack E K R
0

min
=4

-5

H
3

J Q S
3

L
2

M U V

max N
4 =-3

P
9

-6

T
5

-7

-9

min

W
-3

-5

green: terminal state

G B A

Alpha-Beta Search Example


back to minimax(B,1,4) beta = -5, since -5 <= 4 (minimizing)

Keep expanding B? No since no more successors for B A =- C G H


3

max
=-5 =4

Call Stack D
0

E K L
2

min
=4

-5

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

B A

Alpha-Beta Search Example


back to minimax(A,0,4) alpha = -5, since -5 >= -infinity (maximizing)

Keep expanding A? Yes since there are more successors, no cutoff test A Call Stack D
0

max
=-5

=-5 =

C G H
3

E K L
2

min
=4

-5

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


minimax(C,1,4) beta initialized to +infinity

Expand C? Yes since As alpha >= Cs beta is false, no alpha cutoff A Call Stack D
0

max
=-5

=-5 =

min
=4

C C =+
-5

E K L
2

H
3

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

C A

Alpha-Beta Search Example


minimax(H,2,4) evaluate and return SBE value

max
=-5

=-5 = =+

Call Stack D
0

C I

E K L
2

min
=4

-5

H
3

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

green: terminal state

H C A

Alpha-Beta Search Example


back to minimax(C,1,4) beta = 3, since 3 <= +infinity (minimizing)

Keep expanding C? Yes since As alpha >= Cs beta is false, no alpha cutoff A Call Stack D
0

max
=-5

=-5 = =+ =3

C I

E K L
2

min
=4

-5

H
3

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

C A

Alpha-Beta Search Example


minimax(I,2,4) evaluate and return SBE value

max
=-5

=-5 = =3

Call Stack D
0

C I

E K L
2

min
=4

-5

H
3

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

green: terminal state

I C A

Alpha-Beta Search Example


back to minimax(C,1,4) beta doesnt change, since 8 > 3 (minimizing)

Keep expanding C? Yes since As alpha >= Cs beta is false, no alpha cutoff A Call Stack D
0

max
=-5

=-5 = =3

C I

E K L
2

min
=4

-5

H
3

J Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

C A

Alpha-Beta Search Example


minimax(J,2,4) alpha initialized to -infinity

Expand J? Yes since Js alpha >= Cs beta is false, no beta cutoff A Call Stack D
0

max
=-5

=-5 = =3

C I

E K L
2

min
=4

-5

H
3

J J =Q R
0

M U V

max N
4 =-3

P
9

-6

S
3

T
5

-7

-9

min

W
-3

-5

J C A

Alpha-Beta Search Example


minimax(P,3,4) evaluate and return SBE value

max
=-5

=-5 = =3

Call Stack D
0

C I

E K L
2

min
=4

-5

H
3

max N
4 =-3

=-

M U V P J C A

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

green: terminal state

Alpha-Beta Search Example


back to minimax(J,2,4) alpha = 9, since 9 >= -infinity (maximizing)

Keep expanding J? No since Js alpha >= Cs beta is true: beta cutoff A Call Stack D
0

max
=-5

=-5 = =3

C I

E K L
2

min
=4

-5

H
3

=9 =-

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

red: pruned states

J C A

Alpha-Beta Search Example


Why? Computer will choose P or better, thus J's lower bound is 9. Smart opponent wont let computer take move to J (since opponent already has better move at H). A Call Stack D
0

max
=-5

=-5 = =3

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

red: pruned states

J C A

Alpha-Beta Search Example


back to minimax(C,1,4) beta doesnt change, since 9 > 3 (minimizing)

Keep expanding C? No since no more successors for C A Call Stack D


0

max
=-5

=-5 = =3

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

C A

Alpha-Beta Search Example


back to minimax(A,0,4) alpha = 3, since 3 >= -5 (maximizing)

Keep expanding A? Yes since there are more successors, no cutoff test A Call Stack D
0

max
=-5

=-5 =3 =3

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


minimax(D,1,4) evaluate and return SBE value

max
=-5

=3 = =3

Call Stack D
0

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

green: terminal state

D A

Alpha-Beta Search Example


back to minimax(A,0,4) alpha doesnt change, since 0 < 3 (maximizing)

Keep expanding A? Yes since there are more successors, no cutoff test A Call Stack D
0

max
=-5

=3 = =3

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


How does the algorithm finish searching the tree?

max
=-5

=3 = =3

Call Stack D
0

C I

E K L
2

min
=4

-5

H
3

=9

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


Stop Expanding E since A's alpha >= E's beta is true: alpha cutoff Why? Smart opponent will choose L or worse, thus E's upper bound is 2. Computer already has better move at C. max
=-5 =3 = =3

Call Stack D
0 =2

C I

E L
2

min
=4

-5

H
3

=9

=5

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

Alpha-Beta Search Example


Result: Computer chooses move to C.

max
=-5

=3 = =3

Call Stack D
0 =2

C I

E L
2

min
=4

-5

H
3

=9

=5

M U V

max N
4 =-3

P
9

-6

R
0

S
3

T
5

-7

-9

min

W
-3

-5

green: terminal states, red: pruned states blue: non-terminal state (depth limit)

Das könnte Ihnen auch gefallen