Computer Chess Club Archives


Search

Terms

Messages

Subject: Question to Dr. Hyatt and Bruce Moreland

Author: Alvaro Jose Povoa Cardoso

Date: 05:56:32 07/08/01



My problems with mate scores adjustments are all gone now, thanks to the help of
Dr. Hyatt and Bruce Moreland.

In main.c of Crafty 16.18 there is the following notes:
* A very interesting bug was found in storing mate bounds in the hash *
* table, one I had not heard of before.  I now store two MATE         *
* bounds, either > MATE-300, or < -MATE+300, which is conservative    *
* but safe.

Could you please explain why should we do so?


Also this code is from Craft 18.XX
  if (type == EXACT) {
    if (value > MATE-300) value=value+ply-1;
    else if (value < -MATE+300) value=value-ply+1;
    if ((int) tree->pv[ply].pathl >= ply)
      word1l|=tree->pv[ply].path[ply];
  }
  else if (type == LOWER) {
    word1l|=tree->current_move[ply];
    value=Min(value,MATE-300);  <--------|
  }                                      |
  else {                                 |
    value=Max(value,-MATE+300); <--------|
  }                                      |
                                         v
Could you also please explain the lines:
	value=Min(value,MATE-300);
	value=Max(value,-MATE+300);
It was the inclusion of these two lines that solve all of my hash
inconsistencies and mate scores problems in the hash table.
But I don't understand how these two lines work, could you please explain?

I also would apreciate very much an explanation from Bruce Moreland.
I don't kow much about him but seams to me he is quite an expert on the field.


Best regards,
Alvaro Cardoso






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.