CB: Feedback on the ICGA/Rybka disqualification scandal

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

Moderator: Ras

Uri Blass
Posts: 11107
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by Uri Blass »

JuLieN wrote:Also, this comment is especially interesting:

Rick Fadden, Barre, Vermont, USA

In the News article "A Gross Miscarriage of Justice in Computer Chess (part three), Soren Riis mentions my name and he gives a summary of my contribution. What he wrote is wrong, and this causes a problem.

Correction: The subject of my posts was "Strelka is a reverse engineered Rybka." I was demonstrating that Strelka source code exactly matched disassembled Rybka 1.0 beta. My posts could be interpreted as a defense of Vas Rajlick, because my focus was that someone else had copied from him, with Strelka matching what is in the Rybka binary. So many years later this author interprets my Stelka related comparison as making a false claim related to copying Fruit. Re-read my posts. If I mention the Fruit claims, it is just as a side comment. On that whole Fruit subject I was a spectator not an instigator.

Something else that should be reported though: in looking inside the Rybka 1.0 beta binary I found that Vas Rajlich was lying about how deep Rybka was searching, how many nodes it searched, and the Nodes per second reporting. In the code I point out that Vas includes a lot of code to "obfuscate" and to hide the fact that Rybka was a "fast, deep searcher", not a "slow searcher with max chess knowledge."

So I gave all kinds of supporting evidence that Vas obfuscated within his node reporting logic. I showed for example that when you enter a depth of search limit, Vas changes the input number to keep the limit consistent with his internal logic. (I could describe this in more detail.) So here's what I did to further prove this point: I created a binary patch of Rybka 1.0 beta to remove the math and instructions that hide the actual reported depth of search, and I posted this patch in the forum. With the patch applied to Rybka 1.0 beta the chess engine plays as before, and search proceeds exactly as before, *but* the program then properly displays it's actual search depth, nodes encountered, and nodes per second. (Frankly it's really neat seeing what Rybka is actually doing versus the false impression that Vas intends us to see.) Others used this patch to then watch Rybka play while reporting it's actual depth of search, and *they* noted that once you see the true search things look visibly very much like Fruit's reported search.

Keep in mind there was an initial legitimate question that I posed to Vas in the Rybka forum "Why did you obfuscate search reporting?" Vas reported in his own forum that he likes to think of nodes differently than other people, but everyone reading this weak excuse pretty well figured there was another reason why his code deliberately obfuscates it's search. People noted that Rybka search looked like Fruit search once the obfuscation was removed. Further investigation into possible coping of Fruit, pursued by other people, not me... may have been driven by this exposed blatant obfuscation.

My role was to send out information that I found during my effort to demonstrate that Strelka was a reverse engineered Rybka binary. The search depth obfuscation code that I found in that process bothered me, and I wanted to tell people what was in the code. In the Rybka forum I asked Vas to remove this obfuscation from future versions of Rybka, and Vas replied that he would likely keep this in Rybka. I see that even the latest versions of Rybka still include this search depth and nodes per second obfuscation.

Notice I didn't post anything after giving out my patch. I had written to Robert Hyatt (I've interacted with Bob since the 70's) explaining about this obfuscation built into Rybka, but I did not pursue the topic further. I never participated in an effort to prove that Rybka copied from Fruit.
Ed, if you read this, (plus Vas dodging all the questions in Rybka forum this week), doesn't it shake your conviction (that appears so illogical to me and others...) ?
The fact that Rybka obfuscate search reporting is known from the time that rybka is released(for everybody who tried to test rybka1 beta at depth 1) so it is clearly not news not for me and not for Ed.

It is clear for every programmer that no program can see so much tactics that Rybka can see at depth 1 so probably rybka searches deeper than depth 1 when it reports depth 1.

I do not agree that "People noted that Rybka search looked like Fruit search once the obfuscation was removed."

This is simply not correct.
Strelka that is very similiar to Rybka1 beta without the obfuscation and I never noticed that Rybka search looked like Fruit search based on the output of both engines.

Obfuscation does not change the observed search and I easily noticed that Strelka1.8's search is almost the same as Rybka1 beta search

It is easy to see that there are positions when Rybka's output at depth 6,7,8 is almost the same as Strelka's output at depth 9,10,11

It does not happen with Rybka and Fruit for the simple reason that Rybka is clearly different than fruit.

Note that I also disagree with K I Hyams that Strelka is a fruit clone.
Strelka that is free source code has little in common with fruit.

The move generator of strelka is clearly different and is based on bitboards.

The evaluation is also different(and it is not close to be exact translation of fruit's evaluation).
The evaluation
User avatar
Rebel
Posts: 7427
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by Rebel »

Rebel wrote:Obfuscating depth's, nodes, main-lines, among them is common practise. Also not displaying the main lines of the first ply, or first few plies. All to protect one's secrets (livelihood).
JuLieN wrote:The question you have to ask yourself is what was the protected secret, Ed. Remember Occam's razor... I'll quote Rick again:
Rick Fadden, Barre, Vermont, USA
(...) People noted that Rybka search looked like Fruit search once the obfuscation was removed.
It's the other way around, with the -2 depth obfuscation Fruit & Rybka are operating roughly on similar depths, without the -2 depth obfuscation, thus showing the real depth you suddenly see where R1 real strength comes from, thinking 2 plies deeper. BTW, I do have addressed that item on my Rybka page.
Now I've always assumed that talented chess programmers would be very logical persons, so your personal crusade is a total mystery to me, Ed.
I don't understand, I guess my humor was misunderstood? You felt offended?
Of course, I am perfectly aware that I can be wrong, and I often ask myself "am I being logical? Is what I believe based on facts or is it second handed and based on other people's convictions?" and so on, but still my current conviction is that Rybka 1 was derived from Fruit. The main reasons for my belief are:
- the technical evidences. They are pretty overwhelming.
- Vas eluding all difficult questions and refusing to answer them (even pretending to have lost any code prior to R3... Come one!!!)
Let me only respond on this else we end-up in a new Rybka debate. Only with R4 Vas started with version control, he learned from the R3 promised update debacle. Do you remember the outcry?

Do you remember the storm of protests in RGCC when Chessbase could not deliver the promised updated update for Fritz 5 and the image loss because of that? Took years to recover from that.

Around 2000 I had similar thing, a promise I could not hold and so I offered a compensation not to go the CB way. I learned from that.

When producers are telling you they can't deliver a promise take my word for it that they are speaking the truth, something bad happened they feel ashamed about and they know it will cost them dearly.

R3 customers were promised a bug-fix update and Vas did not deliver, the costs of 1-2 day work update totally outweigh the financial damage of not delivering I can tell you that from experience.

I had to learn this lesson (copy control) in my early days aw well. I programmed a model for H&G and then they come to you 2 years later with the question for an update, sources were gone. And then they yell at you. And so you learn.
- the mass hysteria on Rybka forum. If I ever would be inclined to investigate a bit deeper and get the other side of the story, Vas' supporters would drive me away, so absolutely lunatic they look like. (But maybe Talkchess look that way to them too?)
- the ChessBase's article made me lose my last doubts regarding Rybka, so awfully written it was (both style and content).
It was never my intention to start a Rybka debate with you, I think you interpreted my words different as intended. In a nutshell, what's new? and why all the fuzz about node/depth obfuscations? What has that to do with strength / copying code?
With time passing, my conviction gets stronger.

So, I'm puzzled that you could still stick to your conviction. I consider yourself as being honest, and I really think that you genuinely consider Vas as being not guilty. Still, it seems to me that you are driven by passion more than logics (please don't take this as condescendence: I'm younger than you and I respect my elder a lot, especially when they've achieved as impressively as you did, plus I'm 100% sure I'll never be half as talented as you are with coding). The question is: why?
Pretty simple, 2 damning documents, very complex material, receipt for different views.
To answer it, I go in myself and remember why I felt sympathy for Vas (that was before witnessing him dodging the questions this week), despite how overwhelming the ICGA report looked like. And I find out that the main reasons come from my feeling of what justice is (add to this that I am a jurist).

I remember I found the ICGA "court" to be very amateurish. Especially because you don't let someone be judged by its competitors.

Is it also why you started to dislike the whole thing and turn to Vas ?

But remember that it's not because someone didn't get the best trial that he's not guilty. Also, the ICGA is a sport authority, and despite they should have let a professional jurist lead the debates, their findings must only be seen as a sport authority's findings, susceptible of confirmation by a court. That's why I hope the FSF will go to court to decide this once and for all: this war must end.

Until then, do you think you could take the time to write a detailed post explaining logically and without passion why you believe Vas is innocent? I (and many others), really need to understand why you think so, because until now we really don't.
That's hard, because the passion for chess programming has kept me going for so long, it automatically slips in, can't help it. But maybe not impossible.
User avatar
Rebel
Posts: 7427
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by Rebel »

K I Hyams wrote: Some of the issues with Rajlich’s behaviour that come to my mind as I type this are listed below. I am sure that the list is not complete. When people see the nature of your support for Rajlich, in the light of that list, do you not understand why a number of people wonder whether the inside of your head is a "scary place"?
I have calculated that from the beginning, yes.
# Dodging pertinent questions on Rybka site.
# Refusal to release (even to a secure source) obsolete code that would clear his name if untainted.
Explained above to Julian why I believe R1-R3 are lost.
# Repeated claims that he has “lost” evidence that incriminates him/clears his name.
Absolutely.
# An apparent withdrawal of the repeated claim that he has lost evidence that incriminates him/clears his name, when presented with a document that challenges that claim.
# Apparent inability and absolute refusal to address issues relating to copying Crafty.

# Obfuscating output which, if corrected, shows a Fruit like search.
As already stated in my answer to Julien, with the obfuscation R1 looks more similar to Fruit.
# Refusal to answer questions posed by ICGA.
# Unsubstantiated claims that Ippolit is a Rybka 3 clone.
That should be sorted out once and for all, I agree.
# Claims that the Fruit clone Strelka contains so much code that is also in Rybka that he was considering claiming ownership of Strelka.
I think Vas claimed ownership at first but later came to some kind of agreement with Osipov. I don't know precisely.
K I Hyams
Posts: 3585
Joined: Fri Mar 31, 2006 11:21 pm

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by K I Hyams »

Uri Blass wrote: Note that I also disagree with K I Hyams that Strelka is a fruit clone.
Strelka that is free source code has little in common with fruit.

The move generator of strelka is clearly different and is based on bitboards.
It is not me with whom you are disagreeing. You are disagreeing with the putative owner of Strelka; Osipov.
"In the meantime, in July 2007, Jury Osipov admitted Strelka was based on Fruit rewritten to bitboards, and was successively improved in evaluation and search with correlation analysis of Rybka's assessment of the positions. Osipov further mentioned he studied Rybka using a disassembler, to achieve an even greater similarity, and that he felt that Vasik Rajlich likely walked the same path as he did, essentially to rewrite Fruit to bitboards and include material imbalance tables by Larry Kaufman".
http://chessprogramming.wikispaces.com/ ... Suspicions

Now, if according to Rajlich, the Fruit based, bitboard converted program "Strelka", is so similar to Rybka 1 that he could claim ownership, then strong circumstantial evidence exists that there is identical code in Fruit and Rybka. Do you agree?
K I Hyams
Posts: 3585
Joined: Fri Mar 31, 2006 11:21 pm

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by K I Hyams »

Rebel wrote: Explained above to Julian why I believe R1-R3 are lost.
If R1-R3 are lost, can you come up with an explanation for the reason why Cimiotti and Rajlich were discussing whether or not they should hand over the "non existent" code to the ICGA?
Lukas wrote:- N/- By Lukas Cimiotti (*****) [de] Date 2011-08-14 10:28
Vas and I discussed whether or not he should give source code to the ICGA. He really didn't like that idea. My idea was removing all comments and maybe changing all names of variables to make the code harder to understand. But as the guys that disassembled Rybka hadn't understood several parts of the code, we agreed it's safer to not give anything to our competitors.
So Vas only defended himself by saying: I did nothing wrong.
http://rybkaforum.net/cgi-bin/rybkaforu ... ;hl=source
If you can come up with an explanation, I suggest that you offer it to Rajlich because he appeared to me not to have one when I asked him to explain the conundrum.


K I Hyams wrote: # Claims that the Fruit clone Strelka contains so much code that is also in Rybka that he was considering claiming ownership of Strelka.
Rebel wrote: I think Vas claimed ownership at first but later came to some kind of agreement with Osipov. I don't know precisely.
Whether or not Vas and Osipov reached an agreement is irrelevant.
# Strelka is, according to Osipov, a bitboarded Fruit
# Strelka is, according to Rajlich, so close to Rybka 1 that he (Rajlich) could claim ownership.
Put those two statements together and there is a very strong implication indeed that there is Fruit code in Rybka 1.
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by JuLieN »

Rebel wrote:
Rebel wrote:Obfuscating depth's, nodes, main-lines, among them is common practise. Also not displaying the main lines of the first ply, or first few plies. All to protect one's secrets (livelihood).
JuLieN wrote:The question you have to ask yourself is what was the protected secret, Ed. Remember Occam's razor... I'll quote Rick again:
Rick Fadden, Barre, Vermont, USA
(...) People noted that Rybka search looked like Fruit search once the obfuscation was removed.
It's the other way around, with the -2 depth obfuscation Fruit & Rybka are operating roughly on similar depths, without the -2 depth obfuscation, thus showing the real depth you suddenly see where R1 real strength comes from, thinking 2 plies deeper. BTW, I do have addressed that item on my Rybka page.
Ok, I just tried it by myself: downloaded Rybka 1.0 w32 beta, applied the patch and compared some position results with Fruit 2.1's output. And they don't match at all. I'm intrigued.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
User avatar
Rebel
Posts: 7427
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by Rebel »

K I Hyams wrote:If R1-R3 are lost, can you come up with an explanation for the reason why Cimiotti and Rajlich were discussing whether or not they should hand over the "non existent" code to the ICGA?
Lukas wrote:- N/- By Lukas Cimiotti (*****) [de] Date 2011-08-14 10:28
Vas and I discussed whether or not he should give source code to the ICGA. He really didn't like that idea. My idea was removing all comments and maybe changing all names of variables to make the code harder to understand. But as the guys that disassembled Rybka hadn't understood several parts of the code, we agreed it's safer to not give anything to our competitors.
So Vas only defended himself by saying: I did nothing wrong.
http://rybkaforum.net/cgi-bin/rybkaforu ... ;hl=source
If you can come up with an explanation, I suggest that you offer it to Rajlich because he appeared to me not to have one when I asked him to explain the conundrum.
A strange post indeed.
K I Hyams wrote: # Claims that the Fruit clone Strelka contains so much code that is also in Rybka that he was considering claiming ownership of Strelka.
Rebel wrote: I think Vas claimed ownership at first but later came to some kind of agreement with Osipov. I don't know precisely.
Whether or not Vas and Osipov reached an agreement is irrelevant.
# Strelka is, according to Osipov, a bitboarded Fruit
# Strelka is, according to Rajlich, so close to Rybka 1 that he (Rajlich) could claim ownership.
Put those two statements together and there is a very strong implication indeed that there is Fruit code in Rybka 1.
Mysterious Osipov has hs own agenda, one of the reasons why Zach & Mark started a painful RE job from the R1 executable. If Rybka=Fruit could be proven via Strelka they certainly would have done so.
User avatar
Rebel
Posts: 7427
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by Rebel »

JuLieN wrote:
Rebel wrote:
Rebel wrote:Obfuscating depth's, nodes, main-lines, among them is common practise. Also not displaying the main lines of the first ply, or first few plies. All to protect one's secrets (livelihood).
JuLieN wrote:The question you have to ask yourself is what was the protected secret, Ed. Remember Occam's razor... I'll quote Rick again:
Rick Fadden, Barre, Vermont, USA
(...) People noted that Rybka search looked like Fruit search once the obfuscation was removed.
It's the other way around, with the -2 depth obfuscation Fruit & Rybka are operating roughly on similar depths, without the -2 depth obfuscation, thus showing the real depth you suddenly see where R1 real strength comes from, thinking 2 plies deeper. BTW, I do have addressed that item on my Rybka page.
Ok, I just tried it by myself: downloaded Rybka 1.0 w32 beta, applied the patch and compared some position results with Fruit 2.1's output. And they don't match at all. I'm intrigued.
Why need a patch ?

I compared R1 and Fruit 2.1, depths match to a great extend.

Quick test, 4 pos 14 ply, thus internally meaning 16 for R1

Code: Select all

Rybka 1     Fruit
0:12        0:12
1:20        0:58
1:04        0:33
0:42        0:32
Pretty much Fruit alike.
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by JuLieN »

Rebel wrote: Why need a patch ?
Because I was putting to test this assertion :
Rick Fadden, Barre, Vermont, USA
(...) People noted that Rybka search looked like Fruit search once the obfuscation was removed.
Well, I can't replicate this. R's search doesn't look at all like Fruit's search, to me. So I'm waiting for people who support this assertion to back it up, now.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
K I Hyams
Posts: 3585
Joined: Fri Mar 31, 2006 11:21 pm

Re: CB: Feedback on the ICGA/Rybka disqualification scandal

Post by K I Hyams »

Rebel wrote:
K I Hyams wrote:If R1-R3 are lost, can you come up with an explanation for the reason why Cimiotti and Rajlich were discussing whether or not they should hand over the "non existent" code to the ICGA?
Lukas wrote:- N/- By Lukas Cimiotti (*****) [de] Date 2011-08-14 10:28
Vas and I discussed whether or not he should give source code to the ICGA. He really didn't like that idea. My idea was removing all comments and maybe changing all names of variables to make the code harder to understand. But as the guys that disassembled Rybka hadn't understood several parts of the code, we agreed it's safer to not give anything to our competitors.
So Vas only defended himself by saying: I did nothing wrong.
http://rybkaforum.net/cgi-bin/rybkaforu ... ;hl=source
If you can come up with an explanation, I suggest that you offer it to Rajlich because he appeared to me not to have one when I asked him to explain the conundrum.
Rebel wrote:A strange post indeed.
The only strange thing is your comment. The item to which you refer was written in response to your belief that Rajlich has lost the source code that would either completely clear him or convict him. That belief may stem from a number of claims that he has made, such as the one below this comment:

“By‭ ‬Vasik Rajlich‭ ‬Date‭ ‬2012-01-08‭ ‬20:30
I don't have any Rybka source code from before the spring of‭ ‬2010

Unfortunately for Rajlich, In the post below, from August 2011, Cimiotti states that he discussed with Rajlich whether the code should be given to ICGA. The point is that Rajlich is discussing with Cimiotti whether or not to release to the ICGA code that Rajlich claims no longer exists.

“-‭ ‬N/-‭ ‬By Lukas Cimiotti‭ (*****) [‬de‭] ‬Date‭ ‬2011-08-14‭ ‬10:28‭
Vas and I discussed whether or not he should give source code to the ICGA.‭ ‬

As you clearly believe that Rajlich has lost his code, I am asking you how you explain why he subsequently discusses releasing the code that he claims to no longer have. I am also suggesting that, if you can explain it, you should offer your explanation to Rajlich because he does not appear to be able to explain it himself!!!


Rebel wrote:Mysterious Osipov has hs own agenda, one of the reasons why Zach & Mark started a painful RE job from the R1 executable. If Rybka=Fruit could be proven via Strelka they certainly would have done so.
Nobody is claiming that Rybka=Fruit could be proven via Strelka. Nobody is claiming that Rybka=Fruit either. The claim is that:
K I Hyams wrote: there is a very strong implication indeed that there is Fruit code in Rybka 1.
Last edited by K I Hyams on Fri Jan 13, 2012 8:30 pm, edited 1 time in total.