Author: Bas Hamstra
Date: 07:08:33 08/25/99
Go up one level in this thread
This raises questions. - First: I do Nullmove before bestmove from hashtable, to try cheap cutoff first. - Second: I treat the move stored in LOWERBOUND hashentries as a normal bestmove and play it right after the Nullmove. I think that's correct. Chances are it is at least a pretty good move and I don't want to throw such moves away. So my order is: 1. direct hashlookup 2. Null 3. Hashmove 4. Caps 5. Killer 6. Rest Reactions? Bas Hamstra. On August 24, 1999 at 20:33:46, Robert Hyatt wrote: >On August 24, 1999 at 15:01:05, Scott Gasch wrote: > >>>It is a terrific help. First thing you do in Search() should be to probe the >>>hash table, as a hit prevents further searching of any kind. If you find the >>>position, but the depth is not sufficient to use, or the bound that was stored >>>is not useful, you should still try the 'best move' that was stored in the >>>hash entry, before trying any other moves at all, including captures. >> >>So if you get an UPPER or EXACT hit and the depth makes it not useful OR if you >>get an UPPER hit and the current alpha < hash value then you should still >>proceed to order the best move of the hash table first when you order the >>successor moves from this position. >> >>However, if you get a LOWER hit there is no best move -- right? Since LOWER >>hash entries come from prior fail highs I store no best move with these hash >>entries. This makes sense to me because there really is no best move for fail >>highs... is this the correct behavior? >> >>Gee, I thought hashing was pretty easy when I first wrote it but now I'm >>beginning to see the complexity. >> >>Thanks, >>Scott > >sounds like you are doing everything ok. And yes it is complex. and yes it >introduces horribly difficult to find bugs when you screw it up. :)
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.