Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Yet another test suite: Samuel Loyd checkmates

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.