Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Code, algorithms, languages, construction...
BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by BB+ » Sat Feb 12, 2011 7:06 am

The document concerning a comparison of Rybka 1.0 Beta and Fruit 2.1 has been reworked to some extent. There has been a re-shifting of sections, more links/pointers to code locations, and some additional disassembly examples. Two appendices have been added, the first being a disassembly of the iterative deepening code of Rybka 1.0 Beta (~100 ASM instructions at the end of root search), while the second draws together various related information (such as later versions of Rybka and statements of Rajlich). This is still to be considered as a "draft" version I guess, and any feedback (even concerning style, readability, or whatever) is appreciated.
Attachments
RYBKA_FRUIT.pdf
Feb 12 version of comparison of Rybka 1.0 Beta and Fruit 2.1
(184.27 KiB) Downloaded 2997 times

User avatar
marcelk
Posts: 52
Joined: Fri Jan 28, 2011 10:27 pm
Real Name: Marcel van Kervinck

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by marcelk » Sun Feb 13, 2011 5:57 pm

Regarding the quad() in Fruit: The approximate 10-30-60-100 values are not magical. The idea of the function is that it represents a parabola, with 100% on 7th rank and 0% on BOTH 2nd and 3rd rank. There is only one such parabola and the values for 4th to 6th rank follow directly from it.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by BB+ » Mon Feb 14, 2011 1:23 am

Thanks. I will try to make it more clear than it is not only the 10-30-60-100 scaling, but also that it appears to be implemented in hexapawns (26-77-154-256) that makes it exceed the sense of merely re-using the idea of a quadratic fit. As noted at the end of Section 6.2.3, since Rybka pre-computes these values and puts them in an array, there is little reason to prefer 26-77-154-256 to 10-30-60-100.
How will knowing his identity make a difference to the quality and verifiability of the document?
It might compel certain persons to change their stance from "Why would you trust a document from someone anonymous?" to "Why would you trust a document from someone who preferred anonymity for so long?" :roll:

User avatar
marcelk
Posts: 52
Joined: Fri Jan 28, 2011 10:27 pm
Real Name: Marcel van Kervinck

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by marcelk » Mon Feb 14, 2011 8:31 pm

BB+ wrote:Thanks. I will try to make it more clear than it is not only the 10-30-60-100 scaling, but also that it appears to be implemented in hexapawns (26-77-154-256) that makes it exceed the sense of merely re-using the idea of a quadratic fit. As noted at the end of Section 6.2.3, since Rybka pre-computes these values and puts them in an array, there is little reason to prefer 26-77-154-256 to 10-30-60-100.
After reading the rest, and on the assumption that the analysis is done faithfully, there is absolutely no doubt that R1 is derived directly from Fruit. There is no way that the root search order and variable scheme stay the same, AND the hashing scheme stays the same, AND the contents of the evaluation stay the same, AND etc etc when one is only looking at Fruit for ideas. R1 is not just inspired by Fruit: Clearly Fruit source code was taken as a starting point and then reworked from there and some parts left untouched. It is still a GPL violation to distribute it IMO without source, and a violation of most tournament rules to enter it without the consent of Fabien.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by BB+ » Tue Feb 15, 2011 2:57 am

The search_full_root() call on line 5 of the C++ rendition of the Rybka code in Appendix A on page 19 should have the variable as depth rather than depth-2.

Dave Mitchell
Posts: 39
Joined: Mon Nov 15, 2010 11:21 pm

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by Dave Mitchell » Tue Feb 15, 2011 8:53 am

It may violate the GPL license, but didn't Fabien give up his rights to Fruit 2.1, long ago?

Peter C
Posts: 154
Joined: Thu Jun 10, 2010 3:12 am
Real Name: Peter C

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by Peter C » Wed Feb 16, 2011 12:39 am

Dave Mitchell wrote:It may violate the GPL license, but didn't Fabien give up his rights to Fruit 2.1, long ago?
I believe they currently belong to the FSF, which is probably much worse for Vas than if Fabien still had them. :P

Peter

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by BB+ » Fri Feb 18, 2011 12:21 pm

I found a few other minor errors, like the "enemy piece" in the Blocked Bishop need not be an enemy (nor a piece, if a pawn does not count as such). The discussion of king safety with (semi-)open files for Rooks should include adjacent files. I've also added a few more pointers to places where data can be found in the executable.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by BB+ » Sat Feb 19, 2011 11:18 am

Another factual error: Rybka 1.0 Beta can reduce (via averaging) the shelter/storm penalty when castling rights exist.

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: Feb 12 version: Rybka 1.0 Beta / Fruit 2.1 document

Post by kingliveson » Sat Feb 19, 2011 4:49 pm

This is a complement to the report. It is ZW's work in pdf format.
Attachments
ZW_Rybka_Fruit.pdf
(95.39 KiB) Downloaded 600 times
PAWN : Knight >> Bishop >> Rook >>Queen

Post Reply