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 » Wed Aug 17, 2011 10:19 pm

I think you still fail to understand the lesson of Miguel's experiments.

Which is,

Similar numbers in chess programs are to be expected because numbers CAN NOT differ to too much for the simple reason it is knowledge.

There is no randomness in knowledge, just small different fluctuations.

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 » Wed Aug 17, 2011 10:33 pm

Rebel wrote:I think you still fail to understand the lesson of Miguel's experiments.

Which is,

Similar numbers in chess programs are to be expected because numbers CAN NOT differ to too much for the simple reason it is knowledge.

There is no randomness in knowledge, just small different fluctuations.

Then how is the remainder of the Crafty PST data SO DIFFERENT from fruit? Don't even have a rook PST. King PST is 6 tables rather than 2. Wildly different numbers. Pawn values wildly different. Cray Blitz added both king attack and piece centralization scores into the PST. So saying "small different fluctuations" is a pretty gross exaggeration based on existing evidence...

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Wed Aug 17, 2011 10:46 pm

I realise I'm indulging in pedantry, but I just wanted to point out why one cannot disassociate the process from the parameter count.

Here is a generation of Fruit/Rybka opening knight PST, using no ramping arrays, just 3 inputs.
void KnightOpeningPST(int x,int y,int z) // (347,358,3200) for Rybka, (5,5,100) for Fruit
{int f,r,s,c,w,u=(x<<3)+(y<<1);
 for(r=0;r<8;r++)for(f=0;f<8;f++)
 {s=(1<<r)+(1<<(r^7)); c=(BSF(s)<<1)-((s&010)>>3); w=(r-(2<<(r^6)))&7;
  s=(1<<f)+(1<<(f^7)); c+=(BSF(s)<<1)-((s&010)>>3);
  A[r][f]=c*x+w*y-((r==7)&(f==0||f==7))*z-u;} MY_PRINT(A,8,8);}
As can be noticed, I simply moved the content of the ramping arrays into the procedure itself (without phrases like Taxicab or something that one might prefer). Of course, one typically needs a different procedure for each ramping array and/or piece scheme.

At the other end of the spectrum, one can simply have an empty PST "process", which simply loads in 64 values from an array of parameters.

Code: Select all

int PARAMS[8][8]={{-40,-30,...},{...},...}; int i,j;
for(i=0;i<8;i++)for(j=0;j<8;j++)A[i][j]=PARAMS[i][j]; MY_PRINT(A,8,8);
As I say, I'm being pedantic.

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Wed Aug 17, 2011 11:03 pm

Rebel wrote:Similar numbers in chess programs are to be expected because numbers CAN NOT differ to too much for the simple reason it is knowledge.

There is no randomness in knowledge, just small different fluctuations.
Your word "similar" is disingenuous. Fruit and Rybka have the same numbers in (too) many examples, once the Fruit 2.1 process is assumed. No one has ever argued that PST numbers cannot be generically "similar", only that Rybka's can be re-produced exactly in many cases via the specific Fruit 2.1 process. Or to put it in terms of your second sentence, Fruit and Rybka have the same fluctuations in their knowledge of "ramping arrays".

mballicora
Posts: 26
Joined: Tue Aug 09, 2011 7:58 pm
Real Name: Miguel A. Ballicora

Re: Questions for BB about Rybka PST = Fruit PST

Post by mballicora » Wed Aug 17, 2011 11:25 pm

BB+ wrote:
Miguel Ballicora wrote:
BB+ wrote:Here is the challenge: find another pre-2005 engine that reproduces so many PSTs via the Fruit process that recurs "overly often" in Rybka, that is without changing the "ramping arrays".
Tough challenge, but it is not relevant to my point. Why pre-2005 anyway?
The reason why I said this is that after 2005, many more engines became Fruit-influenced, and the exercise is easy. I would still argue that the PST ramping arrays are exactly the point in the Fruit/Rybka comparison. Once one specifies the process that is apparent in Fruit 2.1, from the Rybka data one derives ramping arrays that are overly common with Fruit's choices for the same. This is not true if you change the process (for instance, you might use the Fruit 1.0 method), but then I've argued that the assumption of this process is a reasonable one.
Yes, after 2005 many engines became Fruit influenced, which speaks about how spread many of these concepts became.

BTW, This may be unrelated, but when I look at Fruit 1.0, it looked to me that Fabien was using a similar mental approach, with a higher edge and corner penalty. Just using the whole 2D-table unrolled, and the bonuses looked more disorganized, but they were there (diagonals were present, bonus for 6th rank for knight were explicit, but he later expressed them neatly with a vector etc.). I think that Fruit 2.1 and 1.0 were conceptually very related.
First of all, once you adopt a system, 0,1,2,3, it is likely that you will adopt the same for other tables. In fact, that is why Fabien re used them.
On the contrary, I would note he has three different "centralisation" tables, -4 -2 0 1 (for knights), -3 -1 0 1 (for kings/queens/bishops, and pawn files), and -2 -1 0 1 for rooks. If he had used the same -3 -1 0 1 throughout, I might conclude differently. Rybka happens to diverge from the "mainstream" case at the same junctures (R/N) that Fabien did, and in the same way. My understanding of copyright law is that is exactly the sort of nuance that is distinctive of a work, particularly when considering an overall pattern/picture.
To place all those in the same terms,
[-4 -2 0 1] is the same if we used a 2x multiplier to [-2 -1 0 0.5] lets dissect what all they mean

Vector = [ramp] + [normalization] + [edge penalty]
[-2 -1 0 0.5] = [0,1,2,3] + [-2,-2,-2,-2] + [ 0,0,0,-0.5]
[-2 -1 0 1] = [0,1,2,3] + [-2,-2,-2,-2] + [0,0,0,0]
[-3 -1 0 1] = [0,1,2,3] + [-2,-2,-2,-2] + [-1,0,0,0]

The only real difference between them is a minor tweaking on the edge penalties. The knight one flattens the center. That would be needed if you increase the multiplier and the slope is too big (as it is).

My point, which is the core of our disagreement, is that I do not consider these set of four numbers, in which the one you can really vary are the edges, an issue for rule #2. I do not see this is distinctive.
In addition, I do not agree there are so many "distinct" possibilities. For instance, -3,-1,0,1 is the same as -6,-2,0,1 (you change later a multiplier) and basically the same as 0,2,3,4 (add a constant a the end) etc
My guess is the first should be -6,-2,0,2. I would say the list of "obvious" transforms ends there (scaling and adding), so what is in your "etc" besides their combination? If you note, I carefully ensured that none of mine were equivalent under such affine linear transformations, though all were (unlike CW's example) giving some criterion for centralisation.
[-4,-1,0,1] [-3,-1,0,1] [-2,1,0,1] [0,0,2,3] [-4,-2,0,3]
Yes, that was a mistake. it is -6,-2,0,2
etc did not mean more than "something else it does not occur to me now."
Fruit uses [-1,0,0,0], you propose one option that is [0,0,0,0] and another that is [-2,0,0,0], and third one that changes both ends [+2,0,0,-1] (multiplying the ramp previously by 2) but it looks a bit less reasonable. We really do not have millions of options. Most CC programmers will chose numbers really close to each other.
The point is: computer chess programmers do have some options (~3 here, for just this one choice), and that the numbers for F/R are not "really close", but precisely the same in too many cases, and in distinctive ways. As above, I don't think this is untypical for the sort of commonalities in copyright/originality/plagiarism when there is a general store of knowledge. A relevant case law quotation: [...] the transgression in its unauthorized appropriation is not to be neutralized on the plea that 'it is such a little one'.
It is not the point that it little or big. My point is that it is not unique (extremely low information content). There are many things that could fall under fair use, too, particularly if it is acknowledged (we know VR studied the code and admitted it). If you learn something and apply it in your own way, it is difficult to rebut fair use. Anyway, I am not interested in the least in the legal matters. If the law says that copying a small set of numbers is illegal, then so be it, and hang VR. But let's make sure that the law takes into account the real magnitude of the alledge copying. Which was not hundreds of numbers like Bob wanted everybody to believe.

Miguel

mballicora
Posts: 26
Joined: Tue Aug 09, 2011 7:58 pm
Real Name: Miguel A. Ballicora

Re: Questions for BB about Rybka PST = Fruit PST

Post by mballicora » Wed Aug 17, 2011 11:45 pm

hyatt wrote:
Rebel wrote:I think you still fail to understand the lesson of Miguel's experiments.

Which is,

Similar numbers in chess programs are to be expected because numbers CAN NOT differ to too much for the simple reason it is knowledge.

There is no randomness in knowledge, just small different fluctuations.

Then how is the remainder of the Crafty PST data SO DIFFERENT from fruit? Don't even have a rook PST. King PST is 6 tables rather than 2. Wildly different numbers. Pawn values wildly different. Cray Blitz added both king attack and piece centralization scores into the PST. So saying "small different fluctuations" is a pretty gross exaggeration based on existing evidence...
Yes, it is possible that someone has a table that is very different. So? You did not use ramps. Even when you did not, one of the tables was the same! that should tell you something. But, if you decided to use ramps (is that not allowed?), chances to converge increases even more.

BTW, your queen table is not _wildly_ different. It is just different on the edges. You knight tables conserved most of the concepts (centralization, corner trap, bonus for 6th rank), except that you decided to make the scores the same for most edge squares.
You do not have a rook table, but previously you had, and it look very similar except for the edge score. Rather than using -2,-1,0,1 you could have mimicked it with something like -1,-1,0,1, (but I am quoting from memory so this may be slightly incorrect).

Miguel

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

Re: Questions for BB about Rybka PST = Fruit PST

Post by BB+ » Thu Aug 18, 2011 12:16 am

Miguel Ballicora wrote:If the law says that copying a small set of numbers is illegal, then so be it, and hang VR. But let's make sure that the law takes into account the real magnitude of the alledge copying.
OK, I think then we agree on the whole. If there were nothing but the PST evidence for Fruit/Rybka, I might say that [if successful in proving this] FL could could claim some piddly (<1%, perhaps <0.1%) amount of Rybka profitability under the heading of copyright infringement. OTOH, I would continue to insist that such "piddly" amounts are indeed "actionable" under the law [in a different post, I pointed out that my Fireside Book of Chess has 400 pages, including maybe 10 or so pop-culture chess cartoons at the end of various chapters as space-filler -- each is <0.2% of the book content, yet all are notable creative content, and all have a "reproduced with permission of" notice].

I also agree that the ICGA process(es) should take into account the gravity of this evidence. I think there has been both some exaggeration of the gravity of PST, and (perhaps due to that) some exaggeration of how largely it weighed in any recommendation or decision process. It's also the case that PST appeared on pages 2-5 (in other words, first) of the PDF of Zach's work, which was also the first of the technical documents in various lists-of-links, and various people seemed to have given up reading at that point.

Finally, just on the general "degree of guilt" issue, I've said elsewhere that I concurred with Gerd's comment in the Report, in that the "ideal" solution to the R/F mess would just to be let FL be named as "co-author" for 2006/7 (perhaps additionally replacing "Rybka" with "Fruit/Rybka" if it makes one happy) -- however, I think that reaching this "remedy of mis-appropriation" endpoint would have required some dialogue with VR [you can't easily do this w/o him being at least partially agreeable, even if so agreeing he still strongly asserts that Rybka was indeed "original"by his understanding], which for various reasons proved too unwieldy (ICGA-phobia one side, perhaps an irreconciliatory tone in some documents on the other, maybe some left-over bad-blood between Levy/Rajlich regarding the missed opportunity in 2007).

There are a few partial precedents for the ICGA and/or computer chess with allowable levels percentages of "borrowed material" (and what is exempt from it), but the Panel never really discussed PST directly, so as to provide any guidelines regarding its status. As many others have noted (Adam Hair, Richard Vida, ...) fleshing this stuff out could be a wise course of action. Though one suspects, as per the norm homo politicus, some committee will be formed, which will have some (small) subset who does the actual work; this then gets rubber-stamped, with the inevitable conclusion that everyone else fills up chess fora with their grievances, either specific or philosophical. :roll: [I personally don't think the ICGA should aim to become a generic "sanctioning body" for rules/guidelines in computer chess, but rather each tourney and/or testing group should follow what they feel best -- no matter what is decided, it does (of course) fall on the authors to be upfront about their engine origins].

mjlef
Posts: 43
Joined: Thu Jun 10, 2010 6:51 pm
Real Name: Mark Lefler

Re: Questions for BB about Rybka PST = Fruit PST

Post by mjlef » Thu Aug 18, 2011 1:33 am

Rebel wrote:It's far more likely I will never enter an IGCA panel that first refuses to enter the only critical voice (how convenient) and then punish out of proportion without even considering their own role in the drama, not even have the politeness of an answer when you address it.
This is not true. I found the panel members to be very critical. Evidence was carefully examined, and corrected and expended when information was found missing or incomplete. Several panel members played devil's advocate, arguing for Vas's side. Stating that Chris wold have been the only "critical voice" implies the panel members were dishonest in their duties. I found the active panel members were serious and scientific, and certainly critical.

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 » Thu Aug 18, 2011 3:00 am

mballicora wrote:
hyatt wrote:
Rebel wrote:I think you still fail to understand the lesson of Miguel's experiments.

Which is,

Similar numbers in chess programs are to be expected because numbers CAN NOT differ to too much for the simple reason it is knowledge.

There is no randomness in knowledge, just small different fluctuations.

Then how is the remainder of the Crafty PST data SO DIFFERENT from fruit? Don't even have a rook PST. King PST is 6 tables rather than 2. Wildly different numbers. Pawn values wildly different. Cray Blitz added both king attack and piece centralization scores into the PST. So saying "small different fluctuations" is a pretty gross exaggeration based on existing evidence...
Yes, it is possible that someone has a table that is very different. So? You did not use ramps. Even when you did not, one of the tables was the same! that should tell you something. But, if you decided to use ramps (is that not allowed?), chances to converge increases even more.

BTW, your queen table is not _wildly_ different. It is just different on the edges. You knight tables conserved most of the concepts (centralization, corner trap, bonus for 6th rank), except that you decided to make the scores the same for most edge squares.
You do not have a rook table, but previously you had, and it look very similar except for the edge score. Rather than using -2,-1,0,1 you could have mimicked it with something like -1,-1,0,1, (but I am quoting from memory so this may be slightly incorrect).

Miguel

1. I did use ramps. Just not coded as a multiplier vector. Just a loop counter that ramps by 1, 2, 3, 4...

2. I specifically mentioned king and pawns as "wildly different". Knight maybe less-so. Rooks are "pretty wildly different" since I don't have one at all...

3. My primary point here is that there are several other alternatives. At least 4 public approaches to PST.s

a. The normal "fruity" approach.

b. the crafty king pst approach with multiple PSTs available, one chosen depending on OTB situation.

c. the cray blitz approach that combines a normal centralization set of values and a set of values to attract each piece to the opponent's king area.

d. the stockfish approach that adds the material value for the piece to the PST to avoid that addition somewhere else...

I think there are more "options" than you are considering, because you are pretty focused on the fruit approach, which was used in Rybka. But there are lots of other alternatives. And for each alternative there are multiple ways to "get there". From direct computation, to incremental update, to table lookups, to combinations of those...

No there probably aren't millions of ways to do each thing. But there are certainly dozens of ways to do many things, and more than a few exact matches is more than one can lay at the feet of "brother chance"...

Adam Hair
Posts: 104
Joined: Fri Jun 11, 2010 4:29 am
Real Name: Adam Hair
Contact:

Re: Questions for BB about Rybka PST = Fruit PST

Post by Adam Hair » Thu Aug 18, 2011 6:41 am

mjlef wrote:
Rebel wrote:It's far more likely I will never enter an IGCA panel that first refuses to enter the only critical voice (how convenient) and then punish out of proportion without even considering their own role in the drama, not even have the politeness of an answer when you address it.
This is not true. I found the panel members to be very critical. Evidence was carefully examined, and corrected and expended when information was found missing or incomplete. Several panel members played devil's advocate, arguing for Vas's side. Stating that Chris wold have been the only "critical voice" implies the panel members were dishonest in their duties. I found the active panel members were serious and scientific, aind certainly critical.
Hi Mr. Lefler,

I think some of the general perception that the Panel had no critical voices is the implied (actually I think that Bob voiced this opinion but I don't have the time to track it down) that the Panel was prosecutorial in nature. Thus, it may have been assumed that the Panel was only engaging in the act of collecting evidence against Vas and perhaps not focused on a critical examination of the evidence.

Adam

Post Reply