Page 1 of 3

More on Rybka/IPPOLIT (with occasional reference to Fruit)

Posted: Wed Dec 01, 2010 1:37 am
by BB+
As my R3/IPPOLIT report seems to be being used in the kangaroo courts of TalkChess, perhaps I should comment:
M ANSARI: You ask "where is the proof" that they are clones ... I think the best proof is the BB report.
That's a fairly jaundiced view of the report. Maybe if "clones" were put in inverted commas I could agree. I interpret the word "clone" rather strictly, and by that measure, R3 and IPPOLIT don't come remotely close to such a descriptor. The word "derivative" has a technical quasi-legal meaning that I prefer to avoid (similarly with "code") -- by the traditional standards of computer chess, I would say that R3/IPPOLIT and Fruit/R1 are essentially on the same footing [qualitatively, and as I say, quantitatively it can depend on your metric], in that both R1 and IPPOLIT re-use a substantial quantity of specifics of the respective pre-cursors. [The fact that Fruit was "free and open source" and R3 a "commercial product" is not relevant to me -- there are a number of dissenters in the intellectual property world, but the more common opinion is that once software is obtained legally, an end-user can use it for the purposes of discovery unless there is an agreement to the contrary].
M ANSARI: Even with Rybka 2.3.2a, at LTC Zappa Mexico II was scoring very close or even equal to Rybka 2.3.2a. The big breakthrough in chess engine strength came with R3 ... and R3 is the original creation of Vas
I quite appreciate the reminder in first part of this, as it is easy to forget that ZMII beat R2.3.2a(+) in the Mexico match (after Deep Junior accepted, but Convekta balked about conditions with remote machines, the prize fund was cut by 90% with Zappa as the replacement, and then remote machines were used for the first games in any case). However, I might dispute the second part, as my perception is that at least half of the R3 gain (which was ~85 Elo on CCRL) was from LK rewriting the Fruit-like evaluation function that was used in previous Rybka versions [there were initial elements in some 2.3.1 version, but not until R3 was the work complete]. To me, the big gain for Rybka qua VR was the 150 Elo from R1 to R2.3.2a --- I've never been able to sort out VR's claims about performance of his SMP implementation, but this (at the least) is another facet entirely due to him [unlike the IvanHoe code, which seems to borrow from Crafty or maybe Glaurung/Stockfish].
Dann Corbit: Clearly, what Vas has done is also very innovative. You do not pull hundreds of Elo out of thin air.
As I've said before, I think modern testing methods (at ultra-fast time controls) is one of his major innovations. I don't know what he used for eval tuning, but perhaps that too [though others have been advancing here just as much, I think]. His original stubborn championing (in the face of various naysayers) of material imbalances [based on work of LK] is another one. The idea of what I call "statistical pruning" (though Ed seemed to favour something more akin to "LMR on steroids") also seems to be largely from VR, though it has some connections to the above aspects (for instance, upon noting modern testing methods and eval tuning, doing "search" tuning is not that great a jump). In some sense, the peculiarity is that so many of these ideas actually worked (I mean, anyone can generate ideas that end up in the dustbin, or are debatable as to their merits). If I were forced to make a tabulation of how R3 was 3153 on CCRL 64-bit 1cpu while R1 was 2920, I would say: 30-40 from "bug fixes" of R1 [as ZW has noted, there were some fairly ugly things like lazy eval was over-used due to confusion of scalings], 20-40 from further improving material imbalances and other pre-LK eval tweaks, 60-70 from LK's rewriting of the eval (out-sourcing is another VR innovation :lol: ), and 100 from search improvements (the substantial majority from pruning, and already ~75 of this gained by the time of R2.3.2a). But certainly don't take this as more than a wild guess. For the 100 or so points for Fruit to R1 (after making the 32-bit to 64-bit adjustment), I think 15 is from superior engineering (bitboards are about 15% faster even for 32-bit), 40-50 from the material imbalance table, 20-30 from eval tuning, 20-30 from (gasp!) going beyond strict AEL pruning (a primordial phase for pruning in some sense, but perhaps psychologically significant), and minus 25 (or more) from introduced bugs. :)

Contrasted to this, with IPPOLIT there are various (perhaps many) technical improvements, and a few minor additions, but nothing that I would rate as substantial as the above [my impression is that it is about 15% faster on a pure engineering basis, and has improved the pruning (almost an extra ply deeper than R3 after converting the depths of the latter), while eval is a toss-up -- IPPOLIT threw away more than it added to R3's eval, and perhaps there is some additional speed from this]. I'd say the RobboBase code is a more notable achievement (as I mentioned in the other thread, it seems much superior to the other formats for most purposes, the main wart being that DTM is not used) than IPPOLIT/IvanHoe, though as I mentioned before, gaining even 50 Elo over R3 is no small shakes either [this is contrary to the claim of Don Dailey that "but the cloners so far have not been able to increase it even by 1 ELO" (I think I am applying the context correctly), though he is correct that "Every chess programmer knows that the last 100 ELO are by far the hardest"]. Using LMR at PV nodes (in later IvanHoes) is a fair-sized gain I think, but I wouldn't say it is "due" to them.

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Wed Dec 01, 2010 2:24 am
by BB+
To answer another question, yes there was a time when R3 was 150 Elo ahead of everyone else. R3 was released Aug 2008 and the 64-bit 4CPU version is 3229 on CCRL 40/40. This was a jump of 100 over R2.3.2a [the single cpu version gained only 85, with the difference possibly just statistical deviation], which was already ahead by 50 or more (3126 vs 3074 for Zappa Mexico II and 3063 for Naum 3). In Dec 2008 (some months before IPPOLIT it seems), Naum 4 had a similar jump of nearly 100 points, and reached 3151 [Naumov actually retired after this, saying that R3 was just too good!]. So yes, R3 was 150+ ahead at one point, but it was only ~75 ahead when IPPOLIT appeared if my history is correct. I think the N3/N4 jump of ~90 should get more exposure.

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Wed Dec 01, 2010 9:07 am
by kingliveson
Kangaroo court is quite an appropriate description for nonsense spewed daily on talkchess by the usual suspects. These characters will swear to you that Vas' poop does not stink, even if the rest of us are only saying his poop stinks because all poop stink, and not because it was pooped by him. And of course, you will then be labeled anti...

Rybka was a mediocre chess program until Fruit 2.1 source code was published in mid 2005. Computer Chess Tournament 6 (CCT-6) held in 2004 included 54 chess engines; Rybka placed 53rd on the table with estimated ELO of 2000. Fast-forward a year later after public release of Fruit 2.1 source code, Rybka (1.0) all of a sudden became a top contender with red-flags raising ELO increase that would not occur until Strelka’s release –- this is another topic however.

There exists a detailed report showing Rybka took GPL open-source (Fruit) code directly into a closed source commercial program -- a violation. In Fact, the report shows Rybka to be a modification/improvement of the open-source program.

Fruit 05/11/03 (November, 2005), released around the same time of Rybka 1.0's, is rated 2884 (source: CCRL) which is only behind Rybka (2892) by 8 points within the margin of error. In attempt to distort, there are vague numbers being thrown out –- such as Rybka overtaking Fruit by 223 ELO points.

Rybka worshipers believe it is ok to modify an open-source program, and close the source for commercial purpose. They also hold the position that obtaining ideas legally from a program which itself got its start from an open-source program, improving on these ideas, and then releasing it to the public should not be tolerated -- and any such program ought to be banned from all competitions, the name must not be mentioned in public forums -- in order "to stop the spread of clones," and anyone who holds a contrary position is labeled either a "cloner" or a "clone promoter." We must never cease to remind our friends:
05.12.2005, Vasik Rajlich wrote:Yes, the publication of Fruit 2.1 was huge. Look at how many engines took a massive jump in its wake: Rybka, Hiarcs, Fritz, Zappa, Spike, List, and so on. I went through the Fruit 2.1 source code forwards and backwards and took many things.
There are individuals in this group of devout worshipers whom we give respect because of their place in history when we talk about computer chess who now put in jeopardy their credibility due to lack of objectivity on the subject matter. What would cause a respected member of the computer chess community to now hold such perverted views and threaten his credibility? Could it be financial interest in commercial computer chess? Pride?

I can assure you personally that I am not anti Rybka, but rather anti the disease known as hypocrisy.

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Wed Dec 01, 2010 10:26 am
by Gino

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Wed Dec 01, 2010 11:39 pm
by BB+
There exists a detailed report showing Rybka took GPL open-source (Fruit) code directly into a closed source commercial program -- a violation.
My main dispute with your link to ZW's eval analysis is whether the Rybka/Fruit similarities are "code"-based, particularly in the GPL sense. I'd say the UCI parser and "0.0" in the integer-based time management are much more conclusive on the GPL/code front, which allows the straddle of saying: "No chess-operational code from Fruit is in Rybka 1.0", which might very well be true. As I've always said, the re-use of the Fruit superstructure (particularly in eval) is already enough from a "computer chess" standpoint for me to cast a negative eye on Rybka 1.0 being truly "independent". I should probably go over Rybka 2.3.2a's eval quite carefully at some point, but I don't think my complaint was completely remedied until LK overhauled the eval for R3.

When I spoke with Zach in March, we both agreed that having a copy of Rybka 1.5.32 to analyse would clear up a lot, regarding the Fruit influence but [perhaps prudently] those who ran events in 2004/5 (such as ChessWar V, or Le Système du Suisse Saison n°3) declined to give him one.

Here are some links.
http://americanfoot.free.fr/echecs/suisse/sui/sui3.htm
http://americanfoot.free.fr/echecs/suis ... p200-9.htm
http://www.open-aurec.com/chesswar/Ches ... 005DSt.htm
http://www.open-aurec.com/chesswar/Ches ... 005ESt.htm
[Note that Rybka 1.5.32 beat Fruit X 05-21 in Round 9 of the last].

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Thu Dec 02, 2010 12:39 am
by BB+
Are the numbers posted here real?
Rybka 1 contained at least 30% of the code (verbatim copied) of Fruit and at least 80% of ideas.
I can't really say that much about "code" for R1/Fruit, as ZW knows a lot more than I do. If you include UCI parsing, maybe you could reach 30%. The fact that R1 is bitboard-based means that code-copying stricto sensu is not possible, but my impression is that R1 is much more of a re-write in many places, rather than "just" a bitboard-translation. I could possibly agree with "80% of the ideas" for R1/Fruit, though I hate these numbers because you would first have to consider how much of Fruit is "already known" to some extent. Certainly some of Fruit's "new" ideas (like history-based reductions) are not present to R1, but if one were generous in your accounting of evaluation similarities, you might reach 80%. I would personally give a notably smaller number [I'd really have to look at it again to be specific, but under 50%]. To say that "R3 still contains X% of Fruit ideas" is not surprising, as many of these ideas actually work. :D
In total and practical sense Rybka 1 was bitboard Fruit, no more no less.
At one point I tried to see how far I could take that line, but it seems to fail in the end. Even at the "ideas" level (beyond just tuning numbers), R1 added the material imbalance table, and made a somewhat bold (and tentative) step in reducing the overly rigid AEL-style pruning margins. Throwing out the history reduction is also an "idea" in some sense. :lol: [Another "technical" difference of R1 was the pawn shelter/storm masks -- I forget how these compared to the Fruit numerology, but my recollection is that the difference was observable].
Ippolit might be based on ideas from disassembled Rybka 3. However, the percentage is certainly less than 50%.
Again it depends on who is counting. Is the "idea" of splitting white/black functions of any overall value really? What about using two 16-bit fields when accumulating in evaluation? I personally think these are neither here nor there. [It is rather tenuous to say either is "code-copying", as the implementations are not the same]. There are also more substantial "Rybka-specific" things like how repetition is pre-detected, and the use of the "positional-gain" table. On the other hand, IPPOLIT threw out whole search functions and move generators that R3 has, and a number of eval elements. The "low-depth" search was expanded, a few new eval features added, the "drawishness" of pawn structures redone, etc. Of course, there was also a lot of "parameter fiddling" too, though it some cases IPPOLIT simplified what R3 did here (for instance, R3 has pruning margins based on a pre-evaluation, but IPPOLIT does not -- is this an "idea" that R3 has that IPPOLIT lacks?).

I think it is correct that "Ippolit contains literary 0% of code from Rybka 3", though we are (still) at the strange stage where there are those who continue to assert that there is "code" of R3 in IPPOLIT, but these are yet to display their evidence. It is definitely possible that I overlooked something in my comparison.

The "random slur": and who knows how many programs Vas dissembled in order to "steal" ideas. Zappa Mexico is one for example near the end is perhaps the most genuine indicator of the tenour of the post. I consider the possibility proposed therein to be quite remote, though stranger things have happened in the history of computer chess. [For RE, the most famous one is Chrilly Doninger "bragging" about how he found some idea of SMK via the use of a debugger].

As for the bit from M ANSARI to which Milos responded:
As for Ippolit being based on R3 [...] I think several hundred posts on this very forum were based on tooth and nail denial of this very fact not so long ago. Only after BB posted his report, and Zach, Chris and the author of DS [Deep Sjeng] as well as many other established and respected engine authors opinions came out, has this silly denial been laid to rest.
This is not my recollection of the history, but perhaps we are (again) essentially disputing the word "clone" -- it might also be that the censorship at TalkChess moved many of those posts to the hidden forum. Most of the posts I remember reading seemed be more oriented at noting that IPPOLIT certainly couldn't be a "clone" of R3 due to various obvious differences (what these were seemed to depend on the poster -- some gave position evaluations, others the "50 ELO" improvement, some ASM dumps etc.). Perhaps others emphasized that IPPOLIT "must" be doing something "new" due to the same. I don't recall too many specific posts that proposed that IPPOLIT was not "based" on R3, though again I find such a term to almost be part of the problem. He also still seems to belabour the fact that IPPOLIT was created via "RE engineering a closed source commercial program and offering it off as free source to the world" -- the second part is almost a non sequitur in my parlance, as I would say they "reverse engineered a closed source commercial program", understood the working of it, took some of the ideas, wrote their own "independent" engine in the sense of code, and then "offer[ed] it off as free source to the world" -- the items I appended here make a substantive difference in any discussion. The item as to "I have yet to see any one of the clones give Vas any credit" is also debatable, as the IPPOLIT FAQ (see their wiki) has:

Code: Select all

Q. IPPOLIT pursues previous ships?
A. True, with KAISSA, Crafty, Fruit/Toga/Rybka/Strelka, etc. Yet beyond solely saponification from predescendants.
I'll leave to the reader to decide if such "saponification"(?!) is a credit or not. :roll:

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Thu Dec 02, 2010 1:17 am
by BB+
I think I found something closer to a "Rybka acknowledgement" from the horse's mouth, as it were:
http://ippolit.wikispaces.com/message/v ... e/15994213
jarkkop: Can you give rough percentage estimates for each engine part( KAISSA, Crafty, Fruit/Toga/Rybka/Strelka) in IPPOLIT/ROBBOLITE codebase? Which is biggest part? Is Rybka code taken as a idea/algorithm copy, not exact assembler code copy?
Comrade:
Fact: fine ideas cultivate for many gardens.
Whom to admire with: iteratives, history, killer, Zobrist, futility, qsearch, extensions (singular), fractioning ply and the more?
Plus: Chessknowledge (evaluation) is wide-galactic with many.
These form 75% of everything for everyone.
Specific: KAISSA code owned the bounty: nullmove, bitboards (boardroom representatives)
However: KAISSA pruning found ancient.
Crafty code with for rotated bitboards, generated moves, concept
Fruit/Toga/Rybka/Strelka code: evaluation from endpoints, pruning (modern), material stems, extensions
And novel ideas on your boot contained with IPPOLIT.
Knowledge (the mine): code for IPPOLIT bought from self only, yet ideas splurged for miles in ovals. Can enquiry Yakov with validate.
Conformation (Yakov): no functional code by adversaried ships squats with IPPOLIT. - Igor
StephenHui: Was anything decompiled and then translated into IPPOLIT?
Fact: Decompilation burns the intrepid puddles with the lutefisk. Impressment has not the bones. Conclusivity: Wasting of Comrades mobilities.
Personal Opinion: Superiorities with the "debugger"
Furthermore: Infest of the bugs lodge inside the secondrates!
So my stream of consciousness regarding the second part is that they used a "debugger", partially because Rybka ("secondrates"?) indeed has bugs. I think "material stems" is the material imbalance table, but how bitboards are "boardroom representatives" is beyond me.

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Thu Dec 02, 2010 6:22 pm
by Dave Mitchell
I can assure you personally that I am not anti Rybka, but rather anti the disease known as hypocrisy.
That's obviously the source of your problem, right there. How dare you dis' such a fine tradition of politics, business, and religion? :lol:

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Thu Dec 02, 2010 11:25 pm
by Sean Evans
BB+ wrote:As my R3/IPPOLIT report seems to be being used in the kangaroo courts of TalkChess, perhaps I should comment:
Hey, Anonymous troll, be a man and post under your real name if you want any respect!

Bye,

Sean Evans <----My Real Name!

Re: More on Rybka/IPPOLIT (with occasional reference to Frui

Posted: Fri Dec 03, 2010 12:19 am
by Uly
Sean Evans wrote:Sean Evans <----My Real Name!
What does the real name of someone has to do with anything, attacking someone because he uses a nick seems like an ad hominem attack. From Wikipedia:

An ad hominem (Latin: "to the man"), also known as argumentum ad hominem, is an attempt to link the validity of a premise to a characteristic or belief of the person advocating the premise. The ad hominem is a classic logical fallacy, but it is not always fallacious. For in some instances, questions of personal conduct, character, motives, etc., are legitimate and relevant to the issue.

Using a handle instead of a real name is a characteristic, so it applies, and in this case is evidently irrelevant.

You also called BB+ an "Anonimous Troll", reporting.