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.