alpha/beta pruning

An optimisation of the minimaxalgorithm for choosing the next move in a two-player game.
The position after each move is assigned a value. The larger
this value, the better the position is for me. Thus, I will
choose moves with maximum value and you will choose moves with
minimum value (for me).

If it is my move and I have already found one move M with
value alpha then I am only interested in other moves with
value greater than alpha. I now consider another of my
possible moves, M', to which you could reply with a move with
value beta. I know that you would only make a different reply
if it had a value less than beta. If beta is already less
than alpha then M' is definitely worth less than M so I can
reject it without considering any other replies you might
make.

The same reasoning applies when considering my replies to your
reply. An alpha cutoff is when your reply gives a lower value
than the current maximum (alpha) and a beta cutoff is when my
reply to your reply gives a higher value than the current
minimum value of your reply (beta).

In short, if you've found one possible move, you need not
consider another move which your opponent can force to be
worse than the first one.