Crafty accused of copying Fruit PST

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
geots
Posts: 4790
Joined: Sat Mar 11, 2006 12:42 am

Re: Crafty accused of copying Fruit PST

Post by geots »

JuLieN wrote:@Roger & K.I.:
Thank you. And K.I., another reason why you (and us) feel that way when occasionally visiting the Rybka forum is that we're obviously witnessing an angry mob, something we know is always dangerous and never smart. Also, Steve is absolute right when he wrote:
Steve B wrote: they are really defending their forum ....where they gather each day ..almost like a social networking site they flail out in all directions,accusing everyone everywhere of wrongdoing and it keeps the site from vanishing away into oblivion
anyway..i imagine what goes on there now is similar to what it would be like if we had a forum for someone who has just been convicted of a crime and sent to prison
the family members,friends,neighbors..etc etc of that convict would all be saying how he didn't really do it..the judge was biased..the jurors all idiots ,,justice was not served..etc etc
Sad to see Regards
Steve
M ANSARI wrote:I of course do feel that Vas has been victimized and as I consider him a personal friend for many years (as I consider many on this very forum), I resent how he has been fingered out and publicly vilified and labeled as a "cheat" and "thief" without due process.
Maybe that's why those who consider themselves "neutral" in this matter feel you are "biased" and lost your objectivity? The "you people" was for the angry mob at Rybka. If you can't see how frightening they look like, try the following mental experience: imagine Rybka forum is a Crafty forum, replace Vas' name by Bob's and, as a neutral person yourself, go read this Crafty forum. What do you think you will see? As, this time, you won't be biased anymore, you'll see angry people who call people names, look extremely excited, only present the arguments they like while totally ignoring counter arguments, accuse the other side of doing precisely what they're doing... didn't that thought just crossed your mind, while reading this? And I'm on no one's side: I just read the ICGa report and found it conclusive. But I keep an open mind for a counter-argument, as in all democratic countries there's a double-degree of jurisdiction: anyone can appeal to a first trial. But what I read up to now is only hysteric nonsense. That's not how I'll get convinced of the ICGA having done an error.
michiguel wrote:Hi, this is the zealot who found a Crafty table (duplicated as midgame and endgame) identical to Fruit. You have no idea why this was done, and you should read the whole thread before discrediting other people. The reason I looked at Crafty was because Bob CHALLENGED me to find a similarity between a Fruit table and Crafty.
Hello Miguel. I'm sorry if you feel that way, as it appears to be some misunderstanding between us. Let me correct that. First, I can assure you that I've read the thread in Rybka forum. This is even what made me write what I wrote here in Talkchess. So I happen to know that your post was an answer to Bob's challenge (although I didn't read nor searched for the original thread where this challenged occurred). As a matter of fact, you're not someone I would call a "zealot" at all. I know you for Gaviota and your posts on Talkchess, and consider you as a nice and reasonable man I like to read. What I call zealots are the people on Rybka or here that have a nearly guru/adept relation with Vas (I think that, being a smart man himself, he's frightened by them, hence his silence). Those persons look blind and over-excited: I can see nothing with you that would go that way. Just be careful that your findings won't be overused by them to preach something you wouldn't endorse. Because that's the feeling I have is happening. For instance, regarding this PST, someone wrote "that's exactly what Vas did", and I doubt you would endorse this statement. Tell me if I'm wrong, but I see your post more like a "given some time and efforts, anyone can be proven guilty, even on a small scale, even you Bob". Or, put otherwise, "there's always something to be found everywhere, especially in computer chess". Right?
geots wrote: Mr. Ansari, as you call him, is not a liar. If you mention his "lies", then they had to come from a liar, right?
George, I called him that way because, not knowing his first name I can't use it, like I would have If I had. Where I come from, calling someone by his last name only is both rude and aggressive, so I went for "Mr", as this is considered polite.

And yes, he lied about me, putting words in my mouth that were just the opposite of what I said. I quote him, I quote myself, be my guest and see by yourself.
geots wrote:I am glad Roger Brown loves your prose. That doesn't surprise me a bit. You have invoked Hitler, Stalin, God, the apocalypse, Mankind, Christians in a thread with 3 or 4 sections that basically say nothing, except he doesn't agree with you. "Mr. Ansari", as you like to refer to him, is right. He even says that parts of his thread are not proven- yet. And I am quite sure God is not unhappy with his post, even tho Roger seems to be. And trust me, "Mankind", which you have invoked 4 times in 2 threads, will survive this terrible attack on him by "Mr. Ansari". I wouldn't try to argue with someone who actually KNOWS something, when all you seem to be able to do is criticize and speculate on the ramifications to mankind.
We have a saying, in France, that goes that way: "qui vole un oeuf, vole un boeuf" (who steals an egg steals a beaf). It means that the causes of major events can often be seen yet in minor events, as only the scale differs. For instance here, I noted that the human psychology's flaws Hitler and Stalin used to achieve their goal with their people could yet be seen here. For instance, angriness, the best tool to get someone give up his reasoning. So seeing people lose their mind for a chess program (a CHESS PROGRAM for God's sake!!!) can only worry any observer wondering what would happen with more serious matters. This is no coincidence if I'm not the only feeling so puzzled and upset when contemplating the Rybka forum. Yes, this forum sometimes looks a lot like a lunatic asylum. How many time did I read posts sad to the point I thought " this one's cuckoo for Cocoa Puffs"...

My post was also practical: if you want to make your point, don't make neutral people flee from you. For the moment, the only thing the Rybka forum is achieving is to worsen things and make enemies. Again, if you want to get Vas cleaned up, take all the points (ALL of them) in the ICGA report and debunk them. With calm and logics, politely. As for me, my mind is open: before reading the ICGA's report my sympathy was for Vas. Then the report convinced me he was guilty. Not because I'm an influenceable idiot, but because what I read in it was logical and well balanced. Maybe another counter-report could make me (and other "neutral" persons) change their mind again, providing it would be logical and well argumented. But one thing is certain: the current stupidity contest won't.

Also, George, you're taking a bad start to make me change my mind: how could you seriously consider making reasonable points in such a complex case like Rybka's when you're not even able to read the posts of the current thread without making mistakes. For instance you were not even able to see that Mr. Ansari made me say the opposite of what I wrote! Also, you can't tell the difference between a plural you and a singular you, hence believing I accused Mr. Ansari in particular to "spread hatred", when I didn't: I was obviously referring to the absolute nonsense we can read for since months around the Rybka case. And by the way, your posts are often contradictory. For instance you seem convinced to be able to get a better understanding of the case than me, despite you admit you can't read code (while I can). When reading this sentence, please don't jump to the conclusion that I think you can't understand the case: I'm just pointing the contradiction. A more blatant example of contradiction (in two consecutive phrases) resides in this masterpeice of febrility of yours: "I really wish you would leave Ansari alone. He has done nothing to you. You have acted like a petulant child because he dare defend Vas or speak ag. Bob. Let Bob take care of his own business." I believe you can now see it yourself. If not, I'll be happy to help. All those flows in your posts have, I believe, a single cause: I don't believe at all you are dishonest, no, not at all, but I believe (or more exactly I see that) you're passionate and this affects your judgement.

By honesty, I'll also add that, just like I first thought Vas was innocent and only started to wonder if maybe there was a case after all when Fabien published his open letter, I also feel the same way now when I see smart people like Miguel or Ed Shrödder being unhappy with the ICGA's ruling: maybe there's a case here too, but in Vas' favor this time. Everyone is entitled to a second trial, in democracies. But, again, if there is a case, don't destroy it by looking like an hysteric crowd and making enemies of everyone that would otherwise give you a friendly ear.

And you'll really need to put yourself together, because the ICGA has a VERY strong case against Rybka. As for me, the following points were enough to make me change my mind:
- Vas' refusal to present any defense (and the convenient psychological bs won't convince any judge).
- the convenient loss of sources. (Even my weak engine can be traced back to its birth: I kept all the sources).
- the Strelka case: making a bitboards-Fruit clone out of a Rybka decompiling.
- the robbo/hippo case: Vas claiming them to be Rybka when everyone can see, again, Fruit.
- the buggy (and useless for that matter) Crafty code inside Rybka 1.0's exe.
- plus, of course, the six purely technical points of the ICGA's report. Not forgetting that those six points were only the six strongest ones out of many more.

Attacking the judges is by the way not the best way to make people listen to you. If you think the judges were biased, then prove it by debunking all (ALL!) of their findings. Should be easy if they're inventions.
geots wrote:
The panel, AS BOB SAID, didn't accept all those who wanted to be on it, but did accept any with areas of expertise other than programming. Which a couple did, as they were testers. So good testers were allowed. There are plenty of testers as good as I, but none better. I am an excellent. By their litmus test, I qualified to be on the panel. Here, there could be none WORSE THAN ME. I have no expertise to add to the mix, and would have no idea what I was looking at- and neither did those on the panel who were like me.
I don't know you, George, so I can't comment this point. But I know another expert (whose name maybe I can't tell), who amazed me several times by spotting clones in a matter of hours, both by scrutinizing their output and their exes. And he's been claiming from the beginning Rybka was a fruit clone, even when I thought that was nonsense. (C., that's for you! ;) And yes, now I believe you, obviously )
geots wrote:
And that IMO is connected to the 14 out of 34 who voted. 5 abstain- ok, 10- maybe still ok. But 20! I aint buying the ok on that, tho Bob does. The point is Bob did not get his drawers in a wad when I said that. Neither did he when I said I can't prove it- because no one would admit it- but I suspect "a few" of those 20 abstained because they were hesitant to vote guilty for some of the reasons I have stated. They should have voted innocent- but were afraid of the backlash on places like this.
Yes, as a jurist, I can't deny the ICGA acted sometimes a bit amateurish from the purely trial-mechanics point of view. Still, I believe they were good-willing and I concur with their findings.
geots wrote:
Anyone with 1 eye and half a brain knows why Chris Whittington was not on the forum. He was one of the "experts" they invited. But they knew him well, and knew just what to say to invite him, but piss him off so they knew he would not come. My thinking all along was wrong! I assumed they didn't because they were afraid they might not get a unanimous verdict. And that was important to them. Wrong! I firmly believe now after listening to his theories for 3 days, they were scared shitless he could sway other members to start thinking along diff. lines. That they did not want. People who havent followed the discussion closely know that Miguel came up with the PST issue. What they don't know is that Whittington had been discussing the PST issue in private messages with me twice. He said that was the starting point- something wasn't right. And that is not the extent of his studying.
I know Chris, and respect him a lot. But I tend to flee from conspiracy theories. Again, if you want to win a counter-trial, do it on the technical ground, not by criticizing the Court. My suggestion, if you don't agree with the ICGA, is that you make your own court of appeal, with gathering a panel no one could doubt to be unbiased (which means a mix of persons who yet were in the first panel, plus others), and produce a report based on technical facts and ruled by logics, not the cuckoo-stuff you're all doing since months that is just burying Vas alive.
geots wrote: Bob Hyatt caused the first tainting of the panel. Not on purpose. A by-product of who he is. You can believe the main ICGA members feel that "if Bob Hyatt says it- you can take it to the bank." They did not treat it as if I had given them the evidence. It was Bob, and they assumed too much. It is evident all over the place by their actions. But I don't blame them much there- it's human nature.
For reading him for years, I believe Bob is a very honest person, totally unable of malignity. I just can't picture him targeting someone for personal reasons. Why? because Bob just never has any personal reasons. I saw him insulted here and in other places countless times and not even minding it, to the point of being genuinely surprised when people came back to their mind and apologized. So if Bob acts like he does you can be sure it's because he's sure something wrong has been done. If you're sure Vas is clean, then stop pilling on Bob like people are doing on the Rybka forum and try to prove him wrong instead.
geots wrote: Here is what has bothered me all along- right or wrong. I have seen enough copiers and cloners. No one had a path anything like Vas'. If he took too much from Fruit, it just doesn't add up. You don't just take it and overnight (or too short a period of time), presto!- have a program that could play fruit 30 games and maybe not lose 1 game. I have a theory that what he took- and maybe it was too much, was like going ahead and driving on a closed road to get to a point that he could easily get there by taking the longer, but legal route, i.e. he was going to get there either way.
Maybe you'll remember Toga, a bitboards version of Fruit, that ended up being stronger than Rybka 1.0? Rybka is precisely being accused to be a Fruit on bitboards.

To sum up my post:
- I believe the ICGA's findings are correct.
- I have an open mind and it's up to a counter-trial to make me (and everyone else) change my mind. And please, do it: put on a new panel nobody can contest, and put an end to this civil war in our community.
- This won't be achieved by acting like an angry cuckoo nest.
- I'm no one's enemy, so please, people, stop acting aggressively and go back to more civil manners.




I don't mean any harm by this- and I don't want you to be offended. But there is no way to reply to all that. I am sure you are a very nice guy, and you mean well. But after reading it, I get the feeling I have been listening to a sermon. Look, all I can say is I stand by every word in my thread. If I didn't- I would not have written it.

This bit about me putting together some panel- Christ. I get a headache just getting out of bed.

It doesn't matter what happens- when this is over there will just be a new topic of hate for everyone to run in circles and scream about. If you don't believe that, you have more faith in humanity than I do.


geots wrote: Bob Hyatt caused the first tainting of the panel. Not on purpose. A by-product of who he is. You can believe the main ICGA members feel that "if Bob Hyatt says it- you can take it to the bank." They did not treat it as if I had given them the evidence. It was Bob, and they assumed too much. It is evident all over the place by their actions. But I don't blame them much there- it's human nature.

Bob and I are friends. I have no idea, except maybe due to cultural differences, how you would derive from my above quote that I was attacking or questioning Bob's honesty or credibility or character or whatever the hell. Actually it was a COMPLIMENT TO BOB, that they would feel that much trust and faith in his work. You lose me on that one.

And Julien, what is the purpose of all the quotes from Miguel and whoever answered him, and what does that have to do with me? I have never seen it, and I am not even interested. Why do you put that in a thread to me?

Look, you are a great guy. Ansari is a great guy. And sometimes we have to put up with people like Harvey because euthanasia is still a crime.

I gotta go, people calling. It's been fun.


gts
User avatar
Harvey Williamson
Posts: 2030
Joined: Sun May 25, 2008 11:12 pm
Location: Whitchurch. Shropshire, UK.
Full name: Harvey Williamson

Re: Crafty accused of copying Fruit PST

Post by Harvey Williamson »

geots wrote: And sometimes we have to put up with people like Harvey because euthanasia is still a crime.

gts
Excellent post george which just proves what a nice friendly guy you are who has nothing of substance to offer to the debate and so resorts to personal attacks.
User avatar
geots
Posts: 4790
Joined: Sat Mar 11, 2006 12:42 am

Re: Crafty accused of copying Fruit PST

Post by geots »

Harvey Williamson wrote:
geots wrote: And sometimes we have to put up with people like Harvey because euthanasia is still a crime.

gts
Excellent post george which just proves what a nice friendly guy you are who has nothing of substance to offer to the debate and so resorts to personal attacks.

Harvey, I have not seen or heard from you in over a week and a half. And please don't go back and try to catch me in something else by counting the days. You were doing the same thing on the Rybka Forum- stalking me and replying to every thread I posted. Yea, it got old. And I got tired of it. To the point I almost used the "ignore" button.

Now you are down here doing the same thing. You drag up a shitload of useless threads and spent I don't know how long sorting and highlighting them. Then you realize I don't give a shit and get yours drawers all in a wad. You follow me to another thread.

No. 1- You complain about the "euthanasia" phrase- which you would not have seen if you were not stalking me. It wasn't to you.

No. 2- If you hadn't wasted your time dragging all that garbage down here with you, and posting it, I would not have even thought of you.

But you did, and now you got your feelings hurt. Well just excuse me all to hell!
User avatar
Harvey Williamson
Posts: 2030
Joined: Sun May 25, 2008 11:12 pm
Location: Whitchurch. Shropshire, UK.
Full name: Harvey Williamson

Re: Crafty accused of copying Fruit PST

Post by Harvey Williamson »

geots wrote:dragging all that garbage down!
At least we both agree your posts are garbage.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Crafty accused of copying Fruit PST

Post by Sven »

JuLieN wrote:Hello Uri,

thanks for the precisions and corrections: points taken.

Regarding the protection of ideas, I don't think that's the point here. Nobody asks for that (or all our engines would be guilty as well, just by using the alpha-beta algorithm, for a start...).

If Fruit's ideas in Rybka were scrutinized it was, I believe, more to point out that the abnormally large amount of them present in Rybka was just another proof of code plagiarism. Which is a different idea than simple inspiration.

I think that what the panel tried to prove was that Vas took Fruit's eval.c and modified it, instead of what engines authors usually do: writing their own eval.c, later adding other engines' ideas if they find them interesting. The first case is plagiarism, the second one is inspiration.

Another proof of this fact was the finding of Crafty vestigial buggy code. A code only "useful" to older versions of Crafty and totally pointless in Rybka.
Hi Julien,

I fully agree to the statements made by Uri. The part about "ideas should not be protected" is exactly the point that it is all about. Regarding the evaluation function, what Vas obviously did, like almost all other chess programmers, was that he defined which evaluation criteria (Mark Watkins called it "features" in his paper) he wanted to use for R1beta, and found the criteria from Fruit (which are not especially unique) very useful. For each single criterion you define something like a formula or "evaluation logic" that describes how exactly you apply that criterion. Then you implement it, usually in the most straightforward, efficient and "strong" way that suits your needs for your engine.

Now evaluation criteria are clearly "ideas" or "concepts", and the formulas describing their application are on the level of "algorithms". Both "ideas" and "algorithms" are accepted, also by you, as not protectable.

When it comes to implementing these formulas that you have defined so far, you are now entering the level of "code". But in case of the evaluation function there is not much to do anymore for you, since in the vast majority of cases you have no choices left for your implementation, you immediately derive it from your logical formulas. In another post I am going to give a couple of real examples, just one for you here so that you get the idea:

Evaluation criterion = "knight mobility"

Fruit formula = "count the number of pseudo-legal moves for a given rook and assign a bonus linear in that number, with a constant offset"

R1beta formula = "count the number of pseudo-legal moves for a given rook and assign a bonus linear in that number"

Algorithm behind both, in general words: "count squares the knight can move to based on specific board representation, then do multiplication with predefined bonus and possibly addition of constant offset"

Fruit implementation (straightforward):

Code: Select all

mob = -KnightUnit;

mob += unit[board->square[from-33]];
mob += unit[board->square[from-31]];
mob += unit[board->square[from-18]];
mob += unit[board->square[from-14]];
mob += unit[board->square[from+14]];
mob += unit[board->square[from+18]];
mob += unit[board->square[from+31]];
mob += unit[board->square[from+33]];

op[me] += mob * KnightMobOpening;
eg[me] += mob * KnightMobEndgame;
R1beta implementation (straightforward with bitboards - example for white only, taken from the commented assembler listing by Mark Watkins):

Code: Select all

0x4018d0: bsf    %r8,%rax                       looping over white knights
0x4018d4: mov    0x249b40(%rbx,%rax,8),%rdx      get square this N attacks
0x4018dc: or     %rdx,%r14                       OR with squares Wh attacks
0x4018df: test   %rdx,%r15                       if attacks around bK
0x4018e2: je     0x4018ee
0x4018e4: add    $0x1,%ebp                        add 1 to attackers
0x4018e7: add    $0x3ad,%r12d                     and 941 to attack weight
0x4018ee: and    %r10,%rdx                       AND with Wh occupied
0x4018f1: mov    %rdx,%rax                       [mobility computation]
0x4018f4: shr    %rax
0x4018f7: and    %r11,%rax
0x4018fa: sub    %rax,%rdx
0x4018fd: mov    %rdx,%rax
0x401900: and    %r9,%rdx
0x401903: shr    $0x2,%rax
0x401907: and    %r9,%rax
0x40190a: add    %rdx,%rax
0x40190d: mov    %rax,%rcx
0x401910: shr    $0x4,%rcx
0x401914: add    %rax,%rcx
0x401917: mov    $0x101010101010101,%rax         [popcnt]
0x401921: and    %r13,%rcx
0x401924: imul   %rax,%rcx
0x401928: shr    $0x38,%rcx
0x40192c: mov    %ecx,%eax
0x40192e: imul   $0x79,%ecx,%ecx                 121 in the opening
0x401931: imul   $0xe,%eax,%eax                   14 in the endgame
0x401934: add    %ecx,%edi                        for each mobility
0x401936: add    %eax,%esi
0x401938: lea    -0x1(%r8),%rax
0x40193c: and    %rax,%r8
0x40193f: jne    0x4018d0                       END White Knights Loop
Note that the R1beta code above contains the whole loop over all white knights while the Fruit code only shows the part for one single knight.

You will most probably not find a serious chess programmer who implements the formula given above with significantly different code for a bitboard engine, apart from the bonus values like 121 (opening), 14 (endgame). So there is practically zero information you add beyond the definition of the evaluation formula when implementing it. This is the case for practically all kinds of evaluation criteria, also including the "piece square tables" which have become a hot topic recently, and for which Miguel has confirmed a similar point.

Btw, "knight mobility" has been assigned a feature overlap value of 0.8 in the document EVAL_COMP.pdf by Mark Watkins (page 5). My judgement would be: yes, R1beta contains the same feature, and yes, it uses a very similar formula, but no, there was no code copied since there was nothing to be copied.


The bottom line is: it has been stated that the ICGA investigation had provided a proof that Vas had copied evaluation code from Fruit 2.1 into R1beta. But as some engine programmers like Uri, Miguel, myself and some others have pointed out various times in various discussions, what actually happened was only a heavy but legal reuse of ideas and algorithms.

Sven
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Re: Crafty accused of copying Fruit PST

Post by Dirt »

michiguel wrote:Adding +8 means that the tables are identical. A similar effect is done by adding +8 to the value of the bishop, keeping the "placing scores" intact. Moving one piece from one square to another will have the same "delta score"
Yeah, but wouldn't that have the side effect of reducing the bishop's value? If you could either lose a bishop or lose a knight, wouldn't the valuation partly depend on the bishop's piece square table?
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Crafty accused of copying Fruit PST

Post by Sven »

Sven Schüle wrote:When it comes to implementing these formulas that you have defined so far, you are now entering the level of "code". But in case of the evaluation function there is not much to do anymore for you, since in the vast majority of cases you have no choices left for your implementation, you immediately derive it from your logical formulas. In another post I am going to give a couple of real examples
This is still valid, with the small change that I plan to open a separate thread in the programming section about this topic. I have decided not to do it in a hurry. The careful preparation will take some time, though, it might even take days or (hopefully not) weeks. So I ask everyone to be patient.

EDIT: As some may have found already, in my post above I made a mistake when writing about "rooks" where I meant "knights". Sorry for that.

Sven
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty accused of copying Fruit PST

Post by bob »

michiguel wrote:
bob wrote:
michiguel wrote:
Desperado wrote:
bob wrote: If you multiply _every_ eval term by 10, you change nothing.
... that is what i said too, didnt i !?...
But if you add 10 to just one, you do change someting.
... if you mul just one value(feature)... you change sth. too

well, i dont care about rybka, all i wanted to say is that this discussion
is once again waste of time because even _if_ there would be / are some
_similar_ values, i cannot understand why this should be a problem.

of course i would defend my own work too, but on the other hand if people
arent able to, or simply dont want to backtrace code, you wont be able to assure them of anything (imho).

Michael
There is no problem, but the whole thing is dodging the original point made at the Rybka forum. I showed code that could generate Bishop tables in R1 w/o using any number from Fruit. Bob challenged me to use that code to generate Crafty numbers (it was completely pointless). Anyway, I checked and not only I could do it, but it was possible to derive the Crafty table from Fruit just adding +8, demonstrating that it was not completely impossible to find these similarities. My original point, that some of these tables carry a very low information content is completely ignored.

What is really pathetic is that Bob is trying to say that Fruit Bishop table is more similar to Rybka than Crafty. The numbers in R1 are not even proportional to each other (square by square) because they need more than one multiplier for each vector used to derive the table.

Adding +8 means that the tables are identical. A similar effect is done by adding +8 to the value of the bishop, keeping the "placing scores" intact. Moving one piece from one square to another will have the same "delta score"

Miguel
I am going to go thru this one more time and then I am done.

Your code proved NOTHING. You took the rybka PST values, and then tried to write code that would produce them, intentionally making it look different than the Fruit initialization code that will also produce the Rybka values with some simple constant changes (or by adding some simple multipliers I gave on the rybka forum.)

What is the point of taking the rybka PST values, writing code that _intentionally_ produces them, and then claiming "Hey, lookee here... two different programs will produce the same values, two different people could have written these two pieces of code independently. The only problem is that you specifically targeted producing the Rybka PST values. Two people working independently would not have the SAME pst values as a "target". So that is pointless.

Second, given a semantic description of a process, there are an INFINITE number of syntactic language constructions that will produce exactly those semantics. CS 101. And completely uninteresting because it is known. If you want to somehow claim that Vax and Fabien developed two different pieces of code that produce the exact same PST values (factoring in the necessary multipliers to correct for the material piece value differences) then that's nonsense. Because you didn't do that either.

Therefore, in conclusion, I have no idea what your "new code" was supposed to prove, it was something any beginning CS major would tell you is a known thing, not a new discovery. And they would tell you it is pointless for discussion about supposed independent programs, because you violated that the instant you chose the exact Rybka PST values, which are clearly related to the fruit PST values with some small multipliers added in to the initialization code. And you produced different code.

<yawn>. So what? Doesn't say one thing about how two different programmers came up with PST values that the same piece of code will produce with just a few multiplier changes...
You repeated this in the Rybka forum several times, ignoring every single time all my answers. You never understood what I said to you.

The R1 Bishop tables could be written with code that is different than Zach's. That means, Zach code does not prove then that the R1 tables could only come from Fruit numbers. I wrote them in a completely independent way.

The underlying concept is that Fruit Bishop tables are not unique, they contain a very low information content that could be defined with eight parameters (not 128 as you were claiming at the beginning, another point I refuted). For that reason, it is possible that other tables could be very similar when developed in an independent way. The irony is that this is pathetically demonstrated because you had the same tables!! and yours were identical!! while R1 were similar (but not identical).

The point I made is that this is basic chess knowledge that cannot be claimed as so unique that cannot fall under an "idea". Numbers as -3, -1, 0 +1 (which is the only thing it could be claimed to be copied from fruit in this particular case) implied 1) a taxicab concept and 2) a penalty for edges. The fact that I dissected it, it proved it.

if you feel that my code is one of the many ways R1 numbers could be derived, it actually says that Zach's is not unique either. That actually goes against you and you do not even realize it.

Those B tables can be derived from rudimentary basic principles such as
taxicab distance to corners + main diagonal bonus + edge penalty. All the multipliers from R1 are different, so much that the proportionality between squares changed if you look at fruit (not in your case).

The fact that you keep fighting about the Bishop tables is ridiculous.

Miguel
PS: Please drop you arrogant attitude treating me as one of your students. I never treated you as a student of mine. This is the second time I asked you.
Not one person has said "Aha, Zach's code produces the Bishop PST values exactly, so Vas copied Fruit." What we have said is that ALL PST table values are produced by the Fruit code if you change the various multipliers (scalar constants only, the vectors are unchanged) and THAT certainly suggests that the code was copied. What other program matches ALL of fruit's PSTs??

So it isn't JUST the bishop PST that is incriminating, This is incriminating because ALL of them match. You discovered that Crafty's Bishop PST matched except for the offset. Which is interesting. You also discover, if you look, that the others are either weighted significantly different, implemented completely differently (6 king PSTs vs 2 in Fruit for example) or even completely missing (no rook PSTs in Crafty at all). So we can argue about whether one was copied or created the same by random chance. But ALL of them? And then when taken with the rest of the data presented in the report? Too many matches for this to be just "coincidence." And even if someone did implement several of the same ideas, they are not usually implemented in exactly the same way. I'll take a few of fruit's eval terms that have corresponding terms in Crafty and compare them here, just go show what I mean, and I'll try to take some of the same ones BB / Zach discussed so that we can see how it is done in A, B and C, but is only done the same way in two of the three...

The "glitches" would really be the most revealing, such as the pieces of code that clearly showed that Rybka 1.6.1 copied crafty extensively. Things like the silly 0.0 bug in time management, for example. Whether there are some really "good ones" in Fruit I do not know...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty accused of copying Fruit PST

Post by bob »

Dirt wrote:
michiguel wrote:Adding +8 means that the tables are identical. A similar effect is done by adding +8 to the value of the bishop, keeping the "placing scores" intact. Moving one piece from one square to another will have the same "delta score"
Yeah, but wouldn't that have the side effect of reducing the bishop's value? If you could either lose a bishop or lose a knight, wouldn't the valuation partly depend on the bishop's piece square table?
Adding/subtracting a constant absolutely changes the way the program plays. Anyone can go in and hand-edit the bishop PSTs in Crafty and try a few positions to see what changes (scores, moves, PVs, etc.) We did a ton of this in our cluster testing...

You would think that anyone that happened to serendipitously come up with a matching pair of PSTs would at least likely have a different origin or bias. Not start at EXACTLY the same relative value for all of them...

In Crafty, we centered some, but some we left in their original state as they worked better (pawns and queens are not centered on zero, for example). Why would two different programs be identical in every regard except for the various multipliers adjusted for material value reasons???
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty accused of copying Fruit PST

Post by bob »

M ANSARI wrote:
JuLieN wrote:
geots wrote:
JuLieN wrote:
M ANSARI wrote: It seems that at one point some of Fruit's PST values were copied by Crafty and tuned with a constant. While that may seem reasonable and part of a tuning process, this is exactly what Vas has been accused of.
Not at all. Vas has been accused (and proven guilty) of copying large chunks of other programs, including both algorithms and data structures, to the point that it became obvious that rybka 1.0 was just a tuned version of Fruit's sources with chunks of Crafty in it.

Here, what the zealots at rybkaforum are trying to accomplish is to desperately throw suspicion above Bob and Crafty. What they found was one single data structure: the bishop PST. As I don't know if Crafty got it from Fruit, or by Bob's team own research, or if, at the contrary, Fruit got it from Crafty, I won't comment this. What I'll say anyway is that it is NOT at all what Vas did, not in spirit, nor in scale. So your statement "this is what Vas did" can't stand, not even taking into account your "exactly"...
I suppose it will shock you to know that the most zealots who blindly follow Bob, or anything they can- I call them follow the crowd simpletons- are right here on Talk Chess. He gets much more criticism on the Rybka forum. For example: From YOUR RESEARCH, and no one others, explain how you KNOW Vas is guilty. I thought so- you haven't a clue.

This forum is overrun with guys who won't let facts get in the way of the truth. No respect for other opinions. An exception to this rule, one who values his own opinion and respects others- is Ted Summers. The hate mob on this forum could take lessons from him.
Don't worry, I have no doubt you like to call people names. And as this seem to be a prevalent characteristics of the Rybka followers it doesn't help people who first felt neutral to feel any sympathy for them.

So you doubt the panel? Are you calling them liars? As for me, I respect the names in this list, so I tend to believe them instead of the over-excited Rybka fan. And as a jurist myself I have quite a good understanding of what a world where everyone could make ones justice oneself and ever contest tribunal decisions would lead to: anarchy, savagery, barbary.

Before Fabien's letter, I tended to get annoyed by those who I thought were throwing mud at Rybka, as my first reaction in such circumstances is usually to suspect jealousy of small people. Although something troubled me: some of my friends who were not engine developers nor had any financial or sportsmanship interest into this question but were skilled and connoisseur people were sure Rybka was a fruit clone, and that since nearly the beginning of Rybka. So after Fabien's letter I wondered if maybe there was a real case here after all, and got convinced by the panel's investigations. That and Vas' inability to present any counter-evidence.

Now, watching the hysteric and insulting fanatic crowd at Rybka forum doesn't really help to feel any sympathy for the Rybka case, nor doest it make me feel much hope for Mankind's ability to get better and control ones instincts. Poor Vas, having such defenders really doesn't help...
Ok that makes sense ... so you were one of the people accusing Vas and you seem to dislike any information that shows that maybe you did something wrong. You totally dismiss a setup that was used to accuse Vas of wrong doing because it is only one set of PST tables? Well, what if we assume that ALL the tables were stolen from Fruit at one time, and that the other tables were modified enough to remove any similarity (Bob does mention robust cluster tuning) and the only remaining artifact of the original plunder is the bishop PST's ... so to obfuscate it let us add +8 and all will be good. I know this is all assuming stuff, and the "ASS" out of "U" and "ME" is relevant and all. But this sort of assuming seems to have been OK when you were on your witch hunt ... most likely a lot of asses were made then. You never used the sources that participated in the ICGA, yet you "assumed" that this was irrelevant and that Rybka 1.0 beta was good enough to base your assumptions on. Playing the Rybka Forum Maniacs card it silly, stupid and getting old. If you have something that can show how an entire PST table can be identical with adding a +8 constant without copying the original set of data please please show it. Denegrading an entire group of people simply because they disagree with you is not really helping much.
In all of that drivel, the only thing I get is that you want to imply that I copied all the Fruit PSTs and then tuned them so that they don't look like Fruit's any more?

A couple of points.

1. It would be difficult to take Fruit's King PSTs and split them into 3 groups, one pair for when there are only king-side pawns, one pair for when there are only queen-side pawns, and one pair for when there are pawns on both wings. To do that would be _quite_ a task. In fact, to do that, one would have to write the code from scratch, after one came up with that unique idea in the first place. Very difficult to tie this in to copying Fruit.

2. I have no Rook PST at all. Wonder how I would copy all of Fruit's, which seem to work pretty well in Fruit, and then decide to delete one to make it even less obvious that Fruit's were copied?

3. Other Crafty PSTs are dramatically different from Fruit. Let's take pawns.

Fruit (white side):

Code: Select all

Opening:
  -15    -5     0     5     5     0    -5   -15 
  -15    -5     0     5     5     0    -5   -15 
  -15    -5     0    15    15     0    -5   -15 
  -15    -5     0    25    25     0    -5   -15 
  -15    -5     0    15    15     0    -5   -15 
  -15    -5     0     5     5     0    -5   -15 
  -15    -5     0     5     5     0    -5   -15 
  -15    -5     0     5     5     0    -5   -15 

Endgame:
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 


Crafty (white side:)

    { 0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0, -12, -12,   0,   0,   0,
      1,   1,   1,  10,  10,   1,   1,   1,
      3,   3,   3,  13,  13,   3,   3,   3,
      6,   6,   6,  16,  16,   6,   6,   6,   /* [mg][white][64] */
     10,  10,  10,  30,  30,  10,  10,  10,
     66,  66,  66,  66,  66,  66,  66,  66,
      0,   0,   0,   0,   0,   0,   0,   0 }},

    { 0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0, -12, -12,   0,   0,   0,
      1,   1,   1,  10,  10,   1,   1,   1,
      3,   3,   3,  13,  13,   3,   3,   3,
      6,   6,   6,  16,  16,   6,   6,   6,   /* [eg][white][64] */
     10,  10,  10,  30,  30,  10,  10,  10,
     66,  66,  66,  66,  66,  66,  66,  66,
      0,   0,   0,   0,   0,   0,   0,   0 }}
Now I KNOW you are not going to tell me that Crafty's values are just "tuned or modified" fruit values?

So get serious and stop this nonsensical stuff you are spouting. Fruit and Crafty are similar in the Bishop PST, even though there is an offset between them that certainly makes a program play a bit differently (anyone can test this).

What about another simple one? Queens.

First Fruit:

Code: Select all

Opening:
   -5    -5    -5    -5    -5    -5    -5    -5 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 
    0     0     0     0     0     0     0     0 

Endgame:
  -24   -16   -12    -8    -8   -12   -16   -24 
  -16    -8    -4     0     0    -4    -8   -16 
  -12    -4     0     4     4     0    -4   -12 
   -8     0     4     8     8     4     0    -8 
   -8     0     4     8     8     4     0    -8 
  -12    -4     0     4     4     0    -4   -12 
  -16    -8    -4     0     0    -4    -8   -16 
  -24   -16   -12    -8    -8   -12   -16   -24

and now Crafty:

    { 0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   4,   4,   4,   4,   0,   0,
      0,   4,   4,   6,   6,   4,   4,   0,
      0,   4,   6,   8,   8,   6,   4,   0,
      0,   4,   6,   8,   8,   6,   4,   0,   /* [mg][white][64] */
      0,   4,   4,   6,   6,   4,   4,   0,
      0,   0,   4,   4,   4,   4,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0 }},

    { 0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   4,   4,   4,   4,   0,   0,
      0,   4,   4,   6,   6,   4,   4,   0,
      0,   4,   6,   8,   8,   6,   4,   0,
      0,   4,   6,   8,   8,   6,   4,   0,   /* [eg][white][64] */
      0,   4,   4,   6,   6,   4,   4,   0,
      0,   0,   4,   4,   4,   4,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0 }}
You SERIOUSLY want to say that those two sets of PSTs from Crafty were just "retuned to obfuscate their origin"???

Again, GET SERIOUS. There is ONE PST in Crafty that is close to Fruit's The above two appear to come from two different universes, in fact. Your arguments are about as weak as your facts in this case...