Discussion of chess software programming and technical issues.
Moderators: hgm , Rebel , chrisw
Henk
Posts: 7220 Joined: Mon May 27, 2013 10:31 am
Post
by Henk » Thu Apr 23, 2020 10:23 am
Found a bug yesterday. Must have been there for months in Skippers source code. (See simplified code)
Code: Select all
saveLB : Original lb (= lowerbound)
if (essentialMove)
{
int noise = (lb - Noise >= saveLB && plyCount == 0 && mvCount > 1) ? Noise : 0;
var researchResult = Search (depth - R, -(ub - noise), -(lb - noise), mv);
score = -(researchResult.value + noise);
}
Bug is that Noise can be negative too. I still don't understand it. If I make Noise only positive bug will be gone if I am right
Now ub - Noise >= ub if Noise negative.
Henk
Posts: 7220 Joined: Mon May 27, 2013 10:31 am
Post
by Henk » Thu Apr 23, 2020 11:03 am
Probably bug appears if research does not stay within range <saveLB, ub> where saveLB = unmodified lb
This is all about preventing same games are played over and over again. A workaround is to add noise to evaluation only.
Henk
Posts: 7220 Joined: Mon May 27, 2013 10:31 am
Post
by Henk » Fri Apr 24, 2020 9:13 pm
I doubt code posted is correct. So I chose for workaround. Less worries.