Author: Pat King
Date: 20:11:00 08/29/01
Go up one level in this thread
On August 29, 2001 at 15:42:57, Andrew Williams wrote: >On August 29, 2001 at 12:53:03, Pat King wrote: > >>On August 29, 2001 at 08:58:41, Andrew Williams wrote: >> >>>On August 29, 2001 at 08:25:26, Pat King wrote: >>>>Yes, of course Zotron tests the legality of hash moves within the search. My >>>>assumption has been that the hash entry for the root position must always be >>>>valid, and this is the way I've passed my engine's move back to the calling >>>>functions. Works 99.999% of the time, and fails spectacularly 0.001% of the >>>>time. I've had a devil of a time catching that 0.001%. >>>> >>>>Pat >>> >>>Ahhh. I see. Mine also uses the hash table to construct its PV. >>> >>>Did you catch your error? >>> >>>Andrew >> >>I can't reproduce it consistently, which is what caused me to come up w/ the >>mtd/pvs idea, using the pv[][] structure to bypass the hash. Nobody seems to >>think it's a good idea for performance. I haven't yet decided if it might be >>useful for debugging. >> >>Pat > >OK. It's a long time since I had this problem in my program, but it has >occurred in two types of situation: > >(1) The draft for the root position turns out not to be the highest draft > generated during the search. I've had two causes of this: > (1a) I mistakenly included an extension in the draft of an entry I made > during the search. > (1b) I mistakenly allowed an entry from a *previous* search with a higher > draft to prevent the root entry from this search from being stored. > This occurred when I accidentally forgot to update the searchage > variable. > >(2) The root search has somehow ended without identifying a best move for the > position. This has definitely happened to me, but I can't remember the > circumstances. > >Of course, there's always the possibility of a random error overwriting some >portion of the hash table and thereby trashing your root move. Fortunately >that's never happened to me :-) > >Regards > >Andrew 1a) is not a factor. Not a chance. None. 1b) I don't know, for sure. I have something similar to searchage. I have tried several different hashing strategies, that in general worked fine. It seems unlikely that with varying implementations, I could consistently screw this up. But I am constantly amazed at my ability to achieve the unlikely ;) 2) Well duh! My problem almost by definition. Yet, a valid move should be available from earlier, shallower searches. Short of letting you and everyone pore over my source code, I'm not likely to solve the problem in this forum. And I have no intention of revealing my source in its current sorry state! I'll just have to do things the old fashioned way, sleepless nights hunched over a keyboard stepping through the 17,433,835 invocation of gethashrec(). Pat
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.