Author: Andrew Williams
Date: 01:34:50 08/30/01
Go up one level in this thread
On August 29, 2001 at 23:11:00, Pat King wrote: >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, Every time I post a bit of PM's source code here, someone spots a bug that has gone unnoticed by me for months or even years :-) >sleepless nights hunched over a keyboard stepping through the 17,433,835 >invocation of gethashrec(). > Good luck. Andrew
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.