Author: Roberto Waldteufel
Date: 20:11:36 06/19/98
Go up one level in this thread
Thanks for your comments. I am the first to accept that terminal node evaluation is more accurate that preprocessing, but it is also much slower. If I moved all my preprocessing to the leaves, I think I would indeed lose at least one ply in depth, maybe even more. Although my method might sometimes not recognise that a passed pawn at a leaf was in fact passed, it will never mistakenly think a pawn is passed when in fact it is not. What I do is to look at the pawn structure at the root, and, for White and Black separately, I calculate all the squares on which a friendly pawn would be passed (regardless of whether a pawn actually occupies the square or ever could occupy it). As the search expands deeper, these sets of squares can grow larger, but can never get smaller, so it is safe to credit pawns that are on the precalculated squares by the time a leaf node is reached. The danger, of couse is that I might fail to see a passed pawn on a square that is not in my initial list of squares, but I have found this to be rare enough not to cause a great problem. As always, the trade-off between speed and accuracy must be carefully weighed up, but I think there is still a good case for doing some of the evaluation at the root to increase speed and thereby search deeper. If I later decide, as you suggest, that I want to be more precise about the passed pawns I currently don't see, I would still use my preprocessor, so that then at the leaf I would only have to test a few of the pawns for being passed (ie those not on the precalculated squares) instead of all of them. Best wishes Roberto
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.