Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: mtd/pvs hybrid?

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.