Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash replacement schemes

Author: Andrew Dados

Date: 01:40:51 12/10/00

Go up one level in this thread


On December 10, 2000 at 04:15:58, Scott Gasch wrote:

>Hi,
>
>What kind of hash replacement schemes are commonly used in chess programs?
>Until now I've been using no replacement scheme but when I tried to implement
>one it broke the hash.  What I tried was a dirty count on each entry that was
>incremented between moves... I would only replace over a hash entry if it was
>dirty (from last move or earlier) or the depth of the replacement was >= the
>depth of the replaced node.
>
>I guess this breaks because you get the hash full of nodes with very large draft
>and don't replace them to deal with low draft but important nodes.  Someone told
>me about a 2 table system where you have an always replace and a good table...
>thought being to save high draft "valuable" hash entries in the good table and
>also save low depth but recently hit entries in the always replace table.
>
>What are the other schemes people are using?  How bad is it to have no
>replacement scheme at all (clobber everything)?
>
>Thanks,
>Scott

I use 2 probes, don't have distinction between them. If first can't be replaced
I try second one.

I replace when: current_depth<=stored_depth (root depth==0) and favor fail high
nodes over fail low (they would have best move stored, thus good for move
ordering). I store and probe till ply=0 (first ply of qsearch).

I replace always if move was stored in previous search(es) (this is dumb).
I don't store null move fail highs in HT for reason I forgot.

-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.