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.