PART 1 • Crunching the numbers
which lead to positions which have a very bad numerical evaluation get
cut from further onsideration early on in the search, and the engine just
stops considering them (in the same way that a human player blows off
a first move which immediately loses his or her Queen or Rook, and then
doesn't think about that move anymore).
MOVING BACKWARD
DOWN THE BRANCHES
After a chess engine has assigned evaluations to a lot of positions, it
takes the evaluations of the leaf nodes (the final positions of variations)
and moves them backwards through the tree, assigning them to earlier
positions in an attempt to find out which candidate moves lead to the
biggest rewards (higher evaluations) and, conversely, which lead to
the biggest losses (lower evaluations). The engine, armed with this
information, will steer toward the best possible outcome for it (by playing
the candidate move which leads to that outcome) while avoiding the
worst possible outcome. In practice, it's a bit more complicated than
this, but that's basically how it works. Our old friend Claude Shannon
came up with this in his early computer science writings (see Chapter
One), and it's still used in varying forms today – it's known as a min-max
system of evaluation. When a chess program evaluates candidate moves
in a position, it assumes best possible play for both sides from that point
– it always assumes that the opponent will play the best possible move
as part of min-maxing to arrive at a decision.
56
chessking.com