Page 1 of 1

Robbobases error?

Posted: Sat Jun 12, 2010 9:04 pm
by Charles
Can someone help me here? Any engine that uses robbobases LOSES from this drawn position :

8/8/8/8/7p/3K4/6P1/3k4 w - - 3 70

E.g. try Fire vs Rybka 3 or 4 with tablebases -- R4 or R3 playing Black wins!

Is there something wrong with my Robbobases setup ... they work for everything else.

Re: Robbobases error?

Posted: Sun Jun 13, 2010 2:26 am
by kingliveson
Definitely a bug some where. It is choosing g4 which is a loss instead of ke3.
Problematic file: COMP.KPKP

Re: Robbobases error?

Posted: Mon Jun 14, 2010 6:54 am
by BB+
Problematic file: COMP.KPKP
I think the error is in the logic of the function RobboTotalBaseScore. It basically computes the Value from the TotalBase ignoring ep, and then if ep is present, computes the Value after making those moves. But it screws up the logic of win/loss here with the MAX function at the end, and should take a MIN instead (1=win, 2=draw, 3+=loss, so to get the best result, you take the MIN). Here it finds a win for the first Value (no ep present), but then replaces it with a draw from the second (after playing hxg3). :) I actually spot-checked many of their "TotalBases" against Nalimov at one point, so I think they are correct (EDIT: the positions with ep are not stored, but computed on the fly, so checking the files won't note the problem here). Looking more at this function, I think there are also some other errors with the win/loss comparison.

Re: Robbobases error?

Posted: Mon Jun 14, 2010 8:51 pm
by kingliveson
BB+ wrote:
Problematic file: COMP.KPKP
I think the error is in the logic of the function RobboTotalBaseScore. It basically computes the Value from the TotalBase ignoring ep, and then if ep is present, computes the Value after making those moves. But it screws up the logic of win/loss here with the MAX function at the end, and should take a MIN instead (1=win, 2=draw, 3+=loss, so to get the best result, you take the MIN). Here it finds a win for the first Value (no ep present), but then replaces it with a draw from the second (after playing hxg3). :) I actually spot-checked many of their "TotalBases" against Nalimov at one point, so I think they are correct (EDIT: the positions with ep are not stored, but computed on the fly, so checking the files won't note the problem here). Looking more at this function, I think there are also some other errors with the win/loss comparison.
You are correct it's a logic problem. Stepping through the source (functions TotalBaseScore and RobboTotalBaseScore) -- changing *Value = MAX (*Value, vb) to *Value = MIN (*Value, vb) produced right result in this case.