Example Game Tree
--------------A-------------- max
/ | \
B C D min
/ | \ / \ / \
E F G H I J K max
/ \ / \ / \ / \ / \ / \ / \
L M N O P Q R S T U V W X Y min
7 6 8 5 2 3 0 -2 6 2 5 8 9 2
Example Trace of Algorithm
First call (assume depth limit is 3):
ALPHA-BETA(A,max,0,-inf,+inf)
children B,C,D
B
ALPHA-BETA(B,min,1,-inf,+inf)
children E,F,G
E
ALPHA-BETA(E,max,2,-inf,+inf)
children L,M
ALPHA-BETA(L,min,3,-inf,+inf)
L returns 7
alpha = 7
ALPHA-BETA(M,min,3,7,+inf)
M returns 6
E returns 7
beta = 7
F
ALPHA-BETA(F,max,2,-inf,7)
children N,O
ALPHA-BETA(N,min,3,-inf,7)
N returns 8
alpha = 8
*** CUTOFF alpha > beta ***
F returns 8
G
ALPHA-BETA(G,max,2,-inf,7)
children P,Q
ALPHA-BETA(P,min,3,-inf,7)
P returns 2
alpha = 2
ALPHA-BETA(Q,min,3,2,7)
Q returns 3
alpha = 3
G returns 3
beta = 3
B returns 3
alpha = 3
C
ALPHA-BETA(C,min,1,3,+inf)
children H,I
H
ALPHA-BETA(H,max,2,3,+inf)
children R,S
ALPHA-BETA(R,min,3,3,+inf)
R returns 0
ALPHA-BETA(S,min,3,3,+inf)
S returns -2
H returns 0
beta = 0
*** CUTOFF alpha > beta ***
C returns 0
D
ALPHA-BETA(D,min,1,3,+inf)
children J,K
J
ALPHA-BETA(J,max,2,3,+inf)
children V,W
ALPHA-BETA(V,min,3,3,+inf)
V returns 5
alpha = 5
ALPHA-BETA(W,min,3,5,+inf)
W returns 8
alpha = 8
J returns 8
beta = 8
K
ALPHA-BETA(K,max,2,3,8)
children X,Y
ALPHA-BETA(X,min,3,3,8)
X returns 9
alpha = 9
*** CUTOFF alpha > beta ***
K returns 9
D returns 8
alpha = 8
A returns 8
Move selected: A --> D