Author: Dieter Buerssner
Date: 08:01:51 10/23/03
Go up one level in this thread
On October 22, 2003 at 15:28:17, Dieter Buerssner wrote: >A bug in my engine. For those who are curios - it has to do with the interior >node recognition. The concrete case KBKB: Yace considers this as draw, besides >some specific conditions, that are coded by some rules. I am 100% sure, that I >checked all KBKB positions against Nalimov-TBs once, and got no wrong draw. But >a error must have slipped in again. Now I actually get 244 wrong draws (many are >mirror positions of each other - my testing code does by purpose test all >positions, so that it would also find errors in the "mirroring code"). Probably >I wanted to make the rules tighter, and forgot to take those tighter but wrong >rules out again. Was only half true. What happened was: I tested without TBs/bitbases. However some utility arrays get only initialized, when bitbases get loaded (for example an array, to mirror squares on a long diagonal). However these arrays get also used, when evaluating some easy interior node positions, for which no bitbases are needed, like K+minor piece vs. K+minor piece. I simply forgot about this, and probably never before tested a position with such a setup (no bitbases), where it was important (How often do you have a KBKB pos in the search tree, that is not draw?). The problem may also affect some other endgames, like KBBK. For WB-users of Yace, that don't use bitbases, an easy workaround is, to add a line bbp in yace.ini. This command is normally used to unload bitbases from memory, but as a side-effect, it does also initialize the utility arrays. For UCI users, that don't want to use the bitbases, a small yace.ini with only that line should work (UCI users should otherwise not use yace.ini, unless they really know what they are doing). BTW to the KBKB. Counting all positions (including mirror positions that are basically identical) there are 11832464 legal positions. Of those, Nalimov TBs report: win 416, draw 11831936, loss 112. My simple rules report 11829656 draws and 2808 "unable to evalute" positions. All positions reported as draw are correct. So, the rules are already pretty tight. The crucial position in the discussed mate problem is reported as "unable to evaluate", and the search will fast find the mate then. Regards, Dieter
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.