Computer Chess Club Archives


Search

Terms

Messages

Subject: a question about recording exact scores in the hash tables

Author: Uri Blass

Date: 10:16:36 07/29/02


I think that the information in bruce's site
is misleading

I see the following in
http://www.seanet.com/~brucemo/topics/hashing.htm

if (depth == 0) {

        val = Evaluate();

        RecordHash(depth, val, hashfEXACT);

        return val;

    }

Today it is not used in movei and I use recordhash
only when the score is above beta.

In that case recordhash is done only after unmakemove
and Record hash use the zobrist key of the position
that is on the board.

I think that in the case that the score is exact score
I also need to calculate the previous
hash key before I do RecordHash or maybe
it is better simply to have an array to remember the
hash key and in that case I do not need to update
the hash key incremently after unmaking moves.

I think that a better explanation of recordhash
could be:

void RecordHash(int depth, int val, int hashf)
{
  if (hashf==hashfEXACT)
    zob=zobrist(position one ply earlier);
  else
    zob=zobrist(position);
    HASHE * phashe = &hash_table[Zob % TableSize()];
    phashe->key = Zob;
  if (hashf!=hashfALPHA)
    phashe->best = LastMove;
  else
    phashe->best=nomove;
    phashe->val = val;
    phashe->hashf = hashf;
    phashe->depth = depth;
}

I do not need to care about the case that the score
is wrong because in that case I am going
to record a different move later.

Am I right?

Uri



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.