Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Another funky hash problem

Author: James Robertson

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

Go up one level in this thread


On August 25, 1999 at 00:01:28, Jon Dart wrote:

>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

Ok, cool, thanks!

James

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