Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Programmers: ETC

Author: Antonio Dieguez

Date: 10:19:37 02/14/03

Go up one level in this thread


On February 14, 2003 at 11:33:12, Robert Hyatt wrote:

>On February 14, 2003 at 00:51:54, Antonio Dieguez wrote:
>
>>
>>>All that is critical is that you store the same depth you probe with. If you
>>>do some extensions before storing, you had better do those same extensions
>>>before probing.  IE if you don't, you are going to introduce some huge artifacts
>>>that will break things.
>>
>>It seems that is not all what is critical because precisely you may don't know
>>if the same extensions will happen in both ocassions.
>
>
>That is dangerous.  The hash table stores a "position" and a "value".  If
>the "position" is different, then the value is useless.  If you apply different
>extensions in the _same_ position, then how can you possibly use a hash table
>hit, since you won't know which "case" it should really be matching.

Anyone who relies on alpha or beta to decide an extension is doing that already.

>The usual (and correct) way of hashing is to probe in the search, _before_
>you do any extensions or anything at this specific ply.  And when you store,
>you store the _same_ depth you had when you entered search and did the probe
>that failed, so that the next time you probe, and get a match, it makes sense
>to use it.

Probing before checking for extensions make less sense in the case I mentioned
above.

>Any other approach is going to produce instabilities.

I don't think so, especially if there are prunning depending on beta or alpha,
probe and store after making the extension is correct. And the only way wich
could introduce more instability (depending on the program) is probing and
storing with the original depth.

>> Probing and storing with
>>the _new_ depth remaining solves that at once, but some others have said is a
>>little bit slower for them because they want to probe the hashtable first to
>>hopefully avoid the looking-for-extensions fase. Anyway many things have their
>>good and bad sides.
>
>The only requirement is that for a position P, with draft D (plies remaining
>before you drop into q-search), that D _must_ be the same when you store, as
>it will be when you probe for a match for P later.  Any other approach is going
>to produce wrong results.

The better way is that probing and storing is done with the real depth, so
checking for extensions first is ok, but I'm not saying the other way is too
bad, it may depend on the program.

Also as I mentioned earlier, storing the real depth is not etc friendly, but in
the general case is completely correct, while storing the original depth not(may
depend on the program), in the meaning that a cutoff or alpha raising may happen
even if past time the position was not extended before and know you would
because of the new window or whatever reason.



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.