What's new? | Help | Directory | Sign in
Google
                
Search
for
Updated Oct 22, 2007 by brainix
Labels: Phase-Design, Phase-Implementation
Pondering  
What to do when the opponent is on move.

Introduction

Some terminology: Thinking is what a chess engine does when it's on move. When the engine thinks, it generates a principal variation (or PV). A PV is a series of best moves - the engine's best move, the opponent's best response, the engine's best counter-response, the opponent's best counter-counter-response, and so on - from the current position to a given depth. Pondering is what the engine does when its opponent is on move.

When the engine finishes thinking, the PV begins with the move that the engine will make followed by the move that the engine believes that the opponent will make in response. At this point, the engine pops the first move off of the PV and makes it on the board. The question is: what should the engine do next (while waiting for the opponent to move)? How should it ponder?

The Naive Idea

The most intuitive approach to pondering is for the engine to do exactly what it'd do if it were thinking - from the current position, to continue generating a PV but starting with the opponent's best move. That way, when it's time for the engine to think again, its transposition table will be filled with many useful values and it'll search through the first few plies very quickly.

The Better Idea

Bruce Moreland (of Gerbil and Ferret fame) suggests a better way.


Sign in to add a comment