Questions for BB about Rybka PST = Fruit PST

Code, algorithms, languages, construction...
User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Questions for BB about Rybka PST = Fruit PST

Post by Rebel » Sat Aug 13, 2011 9:44 am

wgarvin wrote:One possibility is that the 3399 was chosen to hide the origin of the table data from casual scrutiny.
Have thought about this line of reasoning as well. Goes a bit far don't you think?

Imagine all the work involved, first getting familiar with the Fruit source code understanding the in's and out's before even dare to change a thing would take how much time? Then the supposed Mail-box to Bit-board conversion and all the testing involved, how much time? Then all the supposed obfuscations (100=3200) among them the PST's (import the calculated Fruit numbers into Rybka) on top of that adding an extra hiding element, the 3399 obfuscation. During the process adding 100 elo points. Loads of testing of course. All of that in 5½ months? I am counting from the release of Fruit 2.1 sources (17.06.2005) and the release of Rybka 1.0 beta (4.12.2005) The 5½ month being the best case scenario because nobody knows if Vas downloaded the Fruit sources on 17.6.2005 and nobody knows when Vas had his supposed eureka moment, "yes, this is good stuff, I am going to use Fruit as the base for my own engine".

Then there are quite a number of issues that unburden Rybka being based on Fruit.

1. For instance the minor promotions that is bugged in Rybka and not in Fruit, is there a reasonable explanation? Typo during the Mail-box to Bit-board conversion?

2. STRELKA. Aside from the usual ZORBIST table look at the Fruit sources first, it hardly has any tables except for generating the (ahem, in the meantime) notorious PST's and a table for the evaluation of king safety. Then look at Strelka, it has zillions of tables. How can this be explained?

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 9:51 am

Uly wrote:
BB+ wrote:Finally, I must be missing something about Miguel's accounting.
Yet you won't do anything about it, this is just one-sided conversation.
To clarify, I don't think Miguel's possible explanation is sufficiently likely as regards the Rybka/Fruit situation for me (personally) to pursue it further in that guise. His idea might alternatively have independent interest as a more abstract consideration, but I'm personally not that interested in such (at least at this time).

On the general concept of replying, I think it's fairly typical in many milieus for "replies" to statements to be carried out in alternative fora, particularly when the "right of reply" is not clear. I could enumerate many examples, such as newspapers with competing editorials [that often back-handedly reference each other], the same with academic journals (such as in philosophy), or Internet blogs, etc. It's usually not a great impediment to conversation (as I understand the term), though perhaps to "fast-paced" tit-for-tat it well might be.

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 10:09 am

Rebel wrote:Then there are quite a number of issues that unburden Rybka being based on Fruit.
1. For instance the minor promotions that is bugged in Rybka and not in Fruit, is there a reasonable explanation? Typo during the Mail-box to Bit-board conversion?
Rybka has different move generation than Fruit. I don't think this should change any conclusion/argument that Rybka's evaluation (or hash structure, or PST, or UCI parsing, or...) is "based" on Fruit's, for whatever meaning of "based" one is currently considering. I don't think the underpromotion issue specifically implies Rybka 1.0 Beta is based on Fruit in any way, but I'd say it definitely does imply that there was some major re-writing between Rybka 1.6.1 and Rybka 1.0 Beta (which, incidentally, included changing from the Crafty piece-numbering to the Fruit piece-numbering).
Rebel wrote:2. STRELKA. Aside from the usual ZORBIST table look at the Fruit sources first, it hardly has any tables except for generating the (ahem, in the meantime) notorious PST's and a table for the evaluation of king safety. Then look at Strelka, it has zillions of tables. How can this be explained?
Strelka is probably not the best comparison method, but I'll try to answer this. Some of those in CONSTS.C are simply bitboard realisations, such as (among others) LineShift, MaskFile, etc. Others do have an analogue in Fruit, such as PassedPawnValue2. There is also pawnscore in Board.c, which is a partial analogue of shelter/storm computations in Fruit [and Raljich seemed to agree with me that "Osipov" didn't need to leave this as a table]. There are the material imbalance tables in EMATER.C, which are mostly Rybka-specific, with only a partial (and marginal) analogue in material.cpp of Fruit. Are there more tables I am missing?
Rebel wrote:During the process adding 100 elo points. Loads of testing of course. All of that in 5½ months?
I know I'm just snipping a bit of your argument here, but I might add that I think that Fabien would be the first to agree that Fruit 2.1 was not very well tuned, being almost a development snapshot. In fact, over the next few months before the WCCC [Aug 2005], he started tuning himself (in addition to making an opening book), and then continued it in conjunction with adding more user-features for the forth-coming commercial Fruit version [end of Sep 2005]. A bit after this, Fabien was in contract talks with Convekta [for them to license Fruit in conjunction with their GUI], but that evaporated when Rybka appeared.

In this context, it is important to realise that the copyright holder has the sole right to produce derivative works, and as such, it was Fabien's right to pursue adding strength, or user features, or an opening book add-on, etc., as he saw fit. Therefore, any argument that Rajlich did something "transformative" [beyond merely a percentage from a copyright standpoint, in particular so as to remove the "derivative" label] in adding 100 Elo to Fruit 2.1 seems largely misdirected.

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 10:35 am

BB+ wrote:In fact, over the next few months before the WCCC [Aug 2005], [Fabien] started tuning himself (in addition to making an opening book), [...]
As a data point for this, Fruit 2.1 [Jun 2005] is 2714 in CEGT 40/40, and the Fruit 2.2 version in Reykjavik [Aug 2005] is 2773. Rybka 1.0 Beta is 2816. I'm not sure what the strongest Fruit in 2005 was [and as above I consider it a bit irrelevant], but the "05/11/03" version [released much later] was 2819. In short, I don't find it much surprising that someone could add 100 Elo to Fruit 2.1 in a 4-month period, especially when introducing various ideas (and bugs!) of their own.

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Questions for BB about Rybka PST = Fruit PST

Post by Rebel » Sat Aug 13, 2011 11:43 am

BB+ wrote:
Rebel wrote:Then there are quite a number of issues that unburden Rybka being based on Fruit.
1. For instance the minor promotions that is bugged in Rybka and not in Fruit, is there a reasonable explanation? Typo during the Mail-box to Bit-board conversion?
Rybka has different move generation than Fruit. I don't think this should change any conclusion/argument that Rybka's evaluation (or hash structure, or PST, or UCI parsing, or...) is "based" on Fruit's, for whatever meaning of "based" one is currently considering. I don't think the underpromotion issue specifically implies Rybka 1.0 Beta is based on Fruit in any way, but I'd say it definitely does imply that there was some major re-writing between Rybka 1.6.1 and Rybka 1.0 Beta (which, incidentally, included changing from the Crafty piece-numbering to the Fruit piece-numbering).
Except for the fact the Fruit / Rybka piece-numbering is exactly the same as in REBEL, origin early 80's. It's a common thing to do so for speed-up reasons and keeping your tables small. It's explained on my pages, see: http://www.top-5000.nl/authors/rebel/chess840.htm#EVAL

Rebel wrote:2. STRELKA. Aside from the usual ZORBIST table look at the Fruit sources first, it hardly has any tables except for generating the (ahem, in the meantime) notorious PST's and a table for the evaluation of king safety. Then look at Strelka, it has zillions of tables. How can this be explained?
BB+ wrote:Strelka is probably not the best comparison method, but I'll try to answer this. Some of those in CONSTS.C are simply bitboard realisations, such as (among others) LineShift, MaskFile, etc. Others do have an analogue in Fruit, such as PassedPawnValue2. There is also pawnscore in Board.c, which is a partial analogue of shelter/storm computations in Fruit [and Raljich seemed to agree with me that "Osipov" didn't need to leave this as a table]. There are the material imbalance tables in EMATER.C, which are mostly Rybka-specific, with only a partial (and marginal) analogue in material.cpp of Fruit. Are there more tables I am missing?
Yes, too many.

Sorry, it looks way too different. If Strelka is truly Rybka 1.0 (confirmed by Vas and by Osipov) then Rybka is not Fruit. I am looking at 2 total different programs. '

Rebel wrote:During the process adding 100 elo points. Loads of testing of course. All of that in 5½ months?
BB+ wrote:I know I'm just snipping a bit of your argument here, but I might add that I think that Fabien would be the first to agree that Fruit 2.1 was not very well tuned, being almost a development snapshot.
If tuning were the reason for the 100 elo jump that would favor my argumentation (time shortage) because that's the most time consuming part. Instead take Strelka. It displays the real depth. Compare that with the Fruit depth and notice the difference. The +100 elo comes from search, as the the vast majority of the other +300 elo (total 400) that came after Rybka 1.0. Real progress comes from new ideas, not from tuning.

In fact, over the next few months before the WCCC [Aug 2005], he started tuning himself (in addition to making an opening book), and then continued it in conjunction with adding more user-features for the forth-coming commercial Fruit version [end of Sep 2005]. A bit after this, Fabien was in contract talks with Convekta [for them to license Fruit in conjunction with their GUI], but that evaporated when Rybka appeared.
Did not know that.
In this context, it is important to realise that the copyright holder has the sole right to produce derivative works, and as such, it was Fabien's right to pursue adding strength, or user features, or an opening book add-on, etc., as he saw fit. Therefore, any argument that Rajlich did something "transformative" [beyond merely a percentage from a copyright standpoint, in particular so as to remove the "derivative" label] in adding 100 Elo to Fruit 2.1 seems largely misdirected.
I understand Fabien better now. And yet looking at the evidence I become more sceptic by the day.

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 12:17 pm

Rebel wrote:It's explained on my pages, see: http://www.top-5000.nl/authors/rebel/chess840.htm#EVAL
I don't see it [the piece numbering] there (at a glance), but then, I really don't think it's a big deal.
Rebel wrote:Sorry, it looks way too different. If Strelka is truly Rybka 1.0 (confirmed by Vas and by Osipov) then Rybka is not Fruit. I am looking at 2 total different programs.
All I can say is that Fabien had the opposite opinion (in his open letter) regarding Fruit/Strelka: [...] All the code had been typed (can't say "designed" though, see below) by an individual. So legally there was no issue that I knew of. It was however a whole re-write (copy with different words if you like, similar to a translation) of the algorithms. Not just an extraction of a couple of ideas as is common, and normal.
Rebel wrote:And yet looking at the evidence I become more sceptic by the day.
For me, the primary question of whether Rajlich started with Fruit (at least in part), and/or imported [possibly with bitboard translation] a bunch of Fruit into his existing engine -- the extent of any modifications is secondary [though not completely unimportant]. There are (way) too many coincidences that lead me to conclude "yes" to the first question. This is what I would take "originality" to mean in the ICGA sense, particularly if the extent/nature of it is not explicitly acknowledged. This persisted (at least) until Rybka 2.3.2a, which won the 2007 Championship.

If you want an example of what I might expect for "citation" (with copyright, or the ICGA), I have the Fireside Book of Chess here (though I lack a fireside...). It has 400 pages, including some cartoons from the popular media regarding chess (these appear intermittently, usually simply to fill out a page) . These cartoons have notices like "Reprinted with permission of X", though each forms a fractional percentage of the content of the book.

Should I expect computer chess software to be different? [I am asking this as a real question, not simply rhetorically]. If you borrow/re-use something rather explicit from someone else, and there is no license to the contrary, what should be expected? To me, Rajlich's rather uninformative "I went through the Fruit 2.1 source code forwards and backwards and took many things" does not exactly rise to a minimal standard. If he had written such a sentence on his 2006/7 WCCC entry form, and the ICGA had [apathetically] OK'd it, then I might feel differently about what happened therein -- but as is, I don't think he was sufficiently diligent in ensuring the "computer chess community" (particularly the ICGA, hapless as it was/is I admit) knew the extent of Fruit re-usage in Rybka.

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 1:14 pm

BB+ wrote:Are there more tables I am missing?
Rebel wrote:Yes, too many.
I am looking at Strelka 2.0. Here are all the tables I found:

Board.c
setmd3 and setmd4 have to do with bitboard rotation.
pawnscore as noted above, can reduced to two 5-element arrays, and partially corresponds to storm/shelter in Fruit
PawnFile et cetera, are in Fruit
PawnFileOpening and such, presumably tuned values (Rybka/Strelka-only)

CONSTS.C
ValuePiece 0,0,1,1,3,3,3,3,5,5,10,10,9999,9999, not exactly creative
PawnPassedFile is just (1<<x)
PawnPassedScoreOpening/Endgame have the same scaling as in Fruit
LineShift for bitboards
MatDiffValue 1,-1,3,-3,3,-3,5,-5,10,-10, again just a utility
MatSummValue used to index the material imbalance table
MaskEnPassant, CastleFlags, Random..., standard
MaskPieceIsPawn,MaskFile more utilities
FileWing differs from Fruit
PassedPawnValue... some of these are in Fruit, a few are not
KingAttackWeight Fruit has an array for this too

EMATER.C
Almost all tables this file are Rybka/Strelka-specific

Strelka.c (forgot this before)
piece numbering, flags for promotion (latter not in Rybka)
LineIndex for bitboards
MaskPawn... for bitboards
Mask..., White/BlackPawn...,Quad...King more bitboards
PawnStruScore01 see pawnscore in Board.c
PieceSquareValue see above
LineMask, MaskEvasionMoves for bitboards
PieceFromChar BsfByte, Distance utilities

So I get the only tables of creative value in Strelka that have no Fruit analogue are: the material imbalance tables, maybe part of pawnscore, the FileWing idea, part of the PassedPawnValue collection, and the "tuned" values to plug into the PST formula. Of these, the first is by far the most notable.

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Questions for BB about Rybka PST = Fruit PST

Post by Rebel » Sat Aug 13, 2011 1:19 pm

BB+ wrote: If you want an example of what I might expect for "citation" (with copyright, or the ICGA), I have the Fireside Book of Chess here (though I lack a fireside...). It has 400 pages, including some cartoons from the popular media regarding chess (these appear intermittently, usually simply to fill out a page) . These cartoons have notices like "Reprinted with permission of X", though each forms a fractional percentage of the content of the book.

Should I expect computer chess software to be different? [I am asking this as a real question, not simply rhetorically]. If you borrow/re-use something rather explicit from someone else, and there is no license to the contrary, what should be expected? To me, Rajlich's rather uninformative "I went through the Fruit 2.1 source code forwards and backwards and took many things" does not exactly rise to a minimal standard. If he had written such a sentence on his 2006/7 WCCC entry form, and the ICGA had [apathetically] OK'd it, then I might feel differently about what happened therein -- but as is, I don't think he was sufficiently diligent in ensuring the "computer chess community" (particularly the ICGA, hapless as it was/is I admit) knew the extent of Fruit re-usage in Rybka.
Okay fair enough.

But... I know people have been using stuff from my pages. Should they mention that on the entry form if the ICGA? I have implemented the hash table typing the pseudo code from the ICCA journal. I never mentioned that on the entry form.

Also and far more important to me is the role of the ICGA itself in this drama. They are supposed to be up-to-date about the latest developments. They weren't and became part of the problem themselves. I have tried to address it on Rybka forum. I am sure some of the ICGA folks have read it, nevertheless the silence is deafening, not even a short comment it has been seen and notified and that a comment would follow later. Nothing. I mean if you can't even admit your own shortcomings in this case then who are you to judge others.

http://rybkaforum.net/cgi-bin/rybkaforu ... ?tid=22550

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Sat Aug 13, 2011 2:01 pm

Rebel wrote:But... I know people have been using stuff from my pages. Should they mention that on the entry form if the ICGA? I have implemented the hash table typing the pseudo code from the ICCA journal. I never mentioned that on the entry form.
It's hard to answer this in the abstract, but I would think, particularly if entering a "significant" event, that they should mention to what extent they have explicitly used anything from your notes, such as tables, pruning margins, move ordering peculiarities, etc. Some "total look and feel" criterion could also be relevant (this is actually a copyright-law phrase), particularly if a substantial count of REBEL-distinctive ideas appear. I wandered through a passle of (post-2005) open-source engines recently, and a nontrivial number of them seemed a bit too Fruit-influenced to me (using the PST scheme, or otherwise) for it not to be attributed [the GPL is a different issue, of course]. Another datum here might be Rajlich's claim that IPPOLIT was R3-based (I forget what exact terminology he used, but I don't think matters per se) -- I would tend to agree with him on a "total look and feel" standard, but I wouldn't be so sure with other standards.

Additionally, guides to programming differ somewhat from programs themselves, just as a book-writing manual would differ from an actual book, though it can depend on how "explicit" a guide is. I think I already mentioned [just as a possibility] back in February that Fruit could conceivably be taken to be a "programming guide", but no one has really pushed that idea, other than maybe Chris at some point. Perhaps we could rephrase this: would it reasonable (on the current facts) to say that Rajlich used Fruit merely as "pseudocode" rather than actual code? I can tell you what my [rather long] answer to this would be, but for now I leave it out there as a possibly useful rephrasing of the issue.

In short, copyright and originality are tough in many cases. :cry:
Rebel wrote:Also and far more important to me is the role of the ICGA itself in this drama. They are supposed to be up-to-date about the latest developments. They weren't and became part of the problem themselves.
When I met with Fabien in Lille a month ago, it was almost a joke between us present on how clueless the ICGA was in 2005 with Fruit (and Zappa too), how they set up the last round to be Junior/Shredder, etc. I don't think they had heard of him until his entry. Maybe the same was true about Rajlich in 2006(!). As the ICGA is (or claims to be) a programmers consortium, I think it is incumbent upon the programmers who are interested to take a more assertive role. I think the ICGA realises there too there is a divide between their information bubble and the "reality" of computer chess (at least to some extent), but perhaps they really don't have any focus/plan/energy for corrective action.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Questions for BB about Rybka PST = Fruit PST

Post by hyatt » Sat Aug 13, 2011 5:14 pm

Rebel wrote:
wgarvin wrote:One possibility is that the 3399 was chosen to hide the origin of the table data from casual scrutiny.
Have thought about this line of reasoning as well. Goes a bit far don't you think?

Imagine all the work involved, first getting familiar with the Fruit source code understanding the in's and out's before even dare to change a thing would take how much time? Then the supposed Mail-box to Bit-board conversion and all the testing involved, how much time? Then all the supposed obfuscations (100=3200) among them the PST's (import the calculated Fruit numbers into Rybka) on top of that adding an extra hiding element, the 3399 obfuscation. During the process adding 100 elo points. Loads of testing of course. All of that in 5½ months? I am counting from the release of Fruit 2.1 sources (17.06.2005) and the release of Rybka 1.0 beta (4.12.2005) The 5½ month being the best case scenario because nobody knows if Vas downloaded the Fruit sources on 17.6.2005 and nobody knows when Vas had his supposed eureka moment, "yes, this is good stuff, I am going to use Fruit as the base for my own engine".

Then there are quite a number of issues that unburden Rybka being based on Fruit.

1. For instance the minor promotions that is bugged in Rybka and not in Fruit, is there a reasonable explanation? Typo during the Mail-box to Bit-board conversion?

2. STRELKA. Aside from the usual ZORBIST table look at the Fruit sources first, it hardly has any tables except for generating the (ahem, in the meantime) notorious PST's and a table for the evaluation of king safety. Then look at Strelka, it has zillions of tables. How can this be explained?
From lots of testing experience, the PSTs are not big contributors to Elo. In fact, I have no rook PST at all, and the bishop PST values are very small (and there is no MG/EG differences in any of the Crafty PST values. My testing notes suggest that we added bishop PSTs for testing, and we removed rook PSTs while testing. And both were apparently supposed to be removed permanently as my test notes had a line basically saying "remove new bishop PSTs and existing rook PSTs. +4 elo" There's nothing to suggest that scaling with 3399 vs 3200 would produce any loss or gain, but it would make the numbers look different...

Post Reply