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