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.