Let me handle your topics 1 by 1.Tord Romstad wrote:My good friend Fabien Letouzey, author of Fruit, asked me to post the following message for him:
Long time no see.
First, I am not back to computer chess, sorry about that. I just want to clarify a few things. Sorry if that's old but there is some misunderstanding I need to fix, and I found out only yesterday. Bear in mind that I am mostly unaware of what has happened for five years though.
First there was the Strelka case. Dann approached me with some "Strelka" source code for me to check. I had never heard of it. I assumed it was some closed-source free engine and that people wanted to know whether it was based on the Fruit source code.
The short answer was "no", it was not a verbatim copy of the source code. All the code had been typed (can't say "designed" though, see below) by an individual. So legally there was no issue that I knew of. It was however a whole re-write (copy with different words if you like, similar to a translation) of the algorithms. Not just an extraction of a couple of ideas as is common, and normal.
That being said, some original changes and ideas were also included in the program. So it was, as has since been stated many times in fora I suppose, a bitboard re-write of Fruit with some personal (or otherwise) ideas. Also note that the source code Dann sent me might not be the from the 2.0 version.
Edit: I've just had a look at the 2.0 sources. On top of what I said above, there are many constant and function names that are identical to Fruit's. I remember noticing it back then as well.
Hope it helps, because my email answer to Dann was unusually short and cryptic even by my standards. And Dann, please next time make it clear when you want a public statement instead of a private opinion, thanks.
I want to point out something immediately: there was no mention of Rybka whatsoever. Indeed I was unaware of any relation between Strelka and Rybka, this is precisely what I learned only yesterday. I insist because it seems I have often been quoted about "not caring" about the (possible) Fruit/Rybka relationship, but this is not so. Strelka did not look like a problem because I assumed it was free.
Next, I was approached by Ryan (I think) and Christophe Theron about whether I could help with some "possible Fruit code inside Rybka" issues. I answered "yes, but how?", but did not get a reply. This did not make me really aware of a clone possibility however because I thought they were talking about some insignificant UCI-handling code or whatnot. Also this was several years after the initial Rybka release, and I guess quite a few people had a close look at it. Apparently Chrilly did?
Now if someone could tell me a bit more about the major events last five years and the current state of affairs, I'd be much obliged.
A few things I noticed yesterday, can you confirm?
- Rybka search info was obfuscated in some way (like displaying depth-3 or something), any pointers on details please?
- Vasik claimed that Strelka 2.0 is a clone of Rybka 1.0 (and you know what that would imply!)
- Zach Wegner found many Fruit ideas (and nearly identical code) in Rybka 1.0; I think someone else did, too
- Some even stronger open-source program appeared as a decompilation of Rybka (with own ideas, sounds familiar), what came up of looking at those?
Any questions, now is the one time to ask.
Thanks for your attention,
Seems Rybka took shape based upon some remarks i made.
My remarks on automatic tuning: "It would be possible to automatic tune the material evaluation" (statement done end 2004, januari 2005)
Remark 2: "So far no one managed to automatic tune chess engines very well that have more than a few parameters". (statement done end 2004)
At that time i was unaware of the army helping out the Brutus project, later on called Hydra project, with automatic tuning. Note knowing Chrilly just has a few parameters according to insiders.
Remark on material evaluation: "It is possible to quickly hash it"
Remark on commercially representing a program to the outsid world: "Titled chessplayers seem to sell chess software a lot better than non titled chessplayers". (Q1 2005)
Finding someone from who always says 'see ya' for selling rybka of course was a direct consequence of my above remark.
I did do more remarks:
Remark on obfuscation: "For many years the secret of Frans Morsch and Richard Lang was the amount of nps it got." (Q1 2005)
"In fact it seems even a good idea to hide the super selective search depth that's behind the mainsearch". (Q1 2005)
At an experimental Diep version where i forward pruned a lot last 3 plies, i reduced search depth with 3. (Q4 2004 / Q1 2005)
My explanation then was: "If you search that deep you don't want to give away that info of course". (end 2004/ start 2005)
Then came a kiler Fruitversion end Q1 2005.
The next remarks all are from around the world champs, during it or short after it:
The generic question i dropped was this: "How strong would Fruit be if you fix some obvious holes of it".
And i listed the next holes:
a) it is crappy programmed C++ code, quick & dirty, you can speedup this code quicktime getting more nps
b) it's not parallel
c) its search is very inefficient and history pruning prunes too little;
with such simplistic evaluation function that's so dependant upon static piece square tables you can prune way more, especially last few plies.
d) biggest gap, so i said, were 3 huge weaknesses in its evaluation function, all of which have been fixed in rybka 1.0 already:
a) Fruit knows too little about material evaluation; it takes too many times the wrong material
b) it doesn't know about stopped passed pawns a lot, it gives too big bonuses for stopped/blocked passed pawns at 6th and especially 7th row;
in many testgames here it lost because of taking a passer at 7th row + 2 other pawns, against a piece and lost then.
c) its kingsafety is too limited and vulnerable to surprise attacks
e) I noticed also that much of Fruit's succes, despite such tiny evaluation function being so passive tuned, was because it searched that 17 ply. Other beancounters from the past which were passive tuned usually got completely hammered at the kingsafety. With Fruit this occured a lot less, as it seems majority of kingside evaluation is short term knowledge; if you search your way out there, most of the bonuses/penalties there are just patzerknowledge that can distract your search a lot.
For example who doesn't remember how Fritz easily sacraficed 1 or 2 pawns just to get half open files against the opponent king, as it simply gave half open file against opponent king 0.5 pawn bonus. Fritz lost many games that manner against lesser gods at the time.
Even then of course, objectively seen Fruit lacks knowledge there.
I also made a huge mistake when observing next. First the correct observation:
f) Fruit seems to make a lot of points because it only has knowledge in its evaluation function that works, it has basically no bugs there.
This bugfreeness was however a result of huge automatic testing carried out by Fabien. A primitive form of automatic tuning i'd call it.
Q1 2005 several automatic tuning project got announced towards me.
Not knowing the huge obfuscation games that got played out there, end 2005 several persons again started lying to me, claiming those projects all failed, whereas Zappa had won the world title.
It took until 2007 the release of the strelka code, for me to realize, that the whole project was one giant NSA project about automatic tuning.
At least $100 milllion must have been put into it.
As for the software engineering, they just grabbed the above remarks i made. It's possibe just 1 programmer carried out the project and then they found someone from the see ya dudes with a chess title to walk around abroad.
Now the big question is of course, why use secret software to tune. In this nation all that is forbidden as far as i know. It is not legal here to use software from a classified project to tune and test a program that is out there available to freely copy or buy.
All this just to win from a few Einsteins, so just to avoid them looking brilliant?
It is obvious some Russians didn't miss this and threw the code of it, under the name strelka, on the internet. Then everyone could learn the truth.
So by 2007 when some programmers started studying that source code, i got from several chessprogrammers the same comment, GCP being the first "Would all those parameters in Rybka be tuned by hand, they look SO SO bizarre".
Rybka is a classical form of NSA software engineering: do the minimum to get strong, and a maximum of usage of hardware at an unknown NSA location somewhere in the USA.
At that time, we simply didn't have the hardware in Netherlands to do tuning just like that.
So my big mistake was to initially guess just 1 guy had done the programming of rybka; whereas the programmers of course knew better, as already commented here in CCC by several programmers over the past years; it is possible to prove how many people have been involved in the different projects as shown by several authors, which proves clearly that dozens of guys were involved somehow, and they all got paid for many years.
Total project costs must've been at least a 100 million dollar.
It is amazing why at such a late stage they involved chessprogrammers into the project. Maybe because majority comes from Europe.
My conclusion is they wasted a lot of government funding just for a few mediocre guys, whose intelligence can't really handle the information they have, to play at the level of the Einsteins. Just for wanting to feel better than they are using sneaky methods. Very disgusting.
If you throw 100 million at a project in a science where everything is about testing, of course you always win.
p.s. If a lot of people start lying towards you, in order to cover up something, you know secret services are involved; therefore proving it is a military project. All the cables in wikileaks are a joke and most of it is desinformation, compared to what happened here.