Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Another funky hash problem

Author: Jon Dart

Date: 21:01:28 08/24/99

Go up one level in this thread


You may have multiple problems, but one of them is that you
should not adjust a mate score from the hash table unless the
node type is EXACT.

--Jon

On August 24, 1999 at 22:02:33, James Robertson wrote:

>I was looking at my code and noticed that I never get any cutoffs when there is
>no available hash move. I modifed my code a little, and it sped up, but then I
>noticed tactical problems; on a certain test position it never finds a fairly
>obvious move. Anyway, here is my hash code in my search function.
>
>The third line checks to see if the hash move is legal. Since an UPPER flagged
>position may occassionally have no move, the 'blank move' is considered illegal
>and it skips any chance of a cutoff. I changed line 3 to
>if (!hr.move || board.IsLegal(hr.move)) {
>and got the problems I mentioned above. Can anyone help me with this?
>
>Thanks,
>James
>
>  HashRec hr;
>  if (!hash_move[ply] && hash_table.Probe(&board, &hr)) {
>    if (board.IsLegal(hr.move)) {
>      // Adjust mate score.
>      if (hr.score > MATE>>1) hr.score -= ply-1;
>      else if (hr.score < -MATE>>1) hr.score += ply-1;
>      if (hr.draft >= depth) {
>	if (hr.flags & EXACT) {
>	  return hr.score;
>	} else if (hr.flags & UPPER) {
>	  if (hr.score <= alpha) return hr.score;
>	} else if (hr.flags & LOWER) {
>	  if (hr.score >= beta) return hr.score;
>	}
>      }
>      hash_move[ply] = hr.move;
>    }
>  }



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.