More proof of Strelka cloning

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

Moderators: hgm, Rebel, chrisw

MartinBryant

Re: More proof of Strelka cloning

Post by MartinBryant »

Gandalf wrote:The problem is that the "proof" is all biased towards finding similarities...

If you are using the UCI implementation as evidence, then how do you explain the "ucinegame" typo in Strelka 1.8 that does not exist in Rybka 1.0 Beta? I'm sure that's not just an anomaly and that other similar differences could be found.
But you're missing the point entirely!
Nobody is arguing that Strelka is an exact copy of Rybka.
If that was the proposition then a single difference would disprove it.

The argument is simply that it is a clone, based on Rybka with a few modifications. You could find a million differences and they would mean NOTHING. They are irrelevant. The things which are the same are the killers!
A control experiment (should any of the defenders wish to take up the challenge) would be to find another engine which talks the same as Rybka, thinks the same as Rybka and looks the same as Rybka.
Knock yourselves out guys.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: More proof of Strelka cloning

Post by ozziejoe »

yes, I agree martin. some of the logic here is most strange (e.g., any slight difference proves it is not a clone).


Let's say someone read dostoevesky's "the idiot" and set about writing a book just like it. They try to change some critical details, so that people will not say that it is a clone, but the plot and philosophical themes are the same. There is nothing good in this new book that is not in the original. Would we really say that the new book is of any value.

Now, I am not sure if this metaphor applies to the strelka author. I hope it doesnt. i hope he makes strelka into something that is an original analysis engine. at present it is too similar to rybka 1.0 to use in analysis (over say hiarcs, fritz, or shredder)
AGove

Re: More proof of Strelka cloning

Post by AGove »

The argument is simply that it is a clone, based on Rybka with a few modifications. You could find a million differences and they would mean NOTHING. They are irrelevant. The things which are the same are the killers!


The arguments and evidence for a certain engine being a clone are being reasonably well presented in this forum, but not in this thread. UCI message info format tells us about... UCI message info format. An author's choice of formats will not be random; his copying a format won't necessitate the copying of anything else; anyway, the copying of a format isn't cloning.

As for "More proof of Strelka cloning" ... Proof of possessing apples from a windfall isn't proof of stealing pears from a greengrocer. Finding more apples makes no difference.
MartinBryant

Re: More proof of Strelka cloning

Post by MartinBryant »

But I don't think we are talking apples and pears at all. We're just talking apples (i.e. code).

I don't see that evidence of code copying in the interface is any less damning than evidence of code copying in the engine. In fact, if you think about it, these messages are being produced by the engine as it does its analysis so they are probably buried deep within the engine anyway!

But if you want to give more weight to Uri's demonstrations that the move-generators, search routines and evalution function have been copied then that it your right.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: More proof of Strelka cloning

Post by Tord Romstad »

sparky wrote:...I'm so going to be flamed for this comment... :D
Not by me. I usually don't flame honest and polite people, even when I disagree with them, as I do in this case. :)
"This is precisely why I am NOT and advocate of open-source engines..., especially strong engines..."
I don't understand. What does open source engines have to do with this? Neither Rybka nor Strelka is open source at the moment, and if either of them were open source, resolving the question of whether one was a clone of the other would have been far easier.
Example open source engines with rating, say, under 1800 are fine and allow the community to grow with newcomers learning the basic techniques..., but

Why have open-source engine in excess of 2500??? It hurts the chess engine community far more than doing anything good!
Because I happen to be an author of an open source engine which is rated above 2500 on sufficently fast hardware (at least according to some rating lists), I feel the need to defend myself. I'll list the good and bad aspects of strong open source chess engines, from my point of view.

Advantages of having strong open source programs:
  • Open source programs are a great educational resource. I learned almost everything I know about chess programming by studying Phalanx. And no, 1800 rated engines are not good enough. I started reading TSCP before moving on to Phalanx, but realized almost instantly that there was nothing whatsoever to be learned from TSCP.
  • Strong open source programs allow people without the time or desire to write complete chess program to experiment with new algorithms and techniques in a state of the art engine. This is not purely hypothetical, in fact I am exchanging e-mails these days with a guy who is trying to modify my program to make it run on a cluster.
  • Free open source engines can be used for many more purposes than a proprietary engine. Users can port it to new platforms without assistance from the author, or use the engine as the brain in a complete chess program with a GUI, without help or permission from the author. This is also not hypothetical: I am in contact with someone who is currently developing a chess program for handheld computers with my engine as its brain. This obviously wouldn't be possible with a proprietary program.
  • Open source makes it impossible for the author to keep the internal details of the engine secret, and therefore stimulates cooperation and sharing of knowledge.
  • The availability of numerous strong open source engines help to show beginners that there is more than one way to write a strong chess program, and this results in faster progress for the field as a whole. In the days when Crafty was the only decent open source programs, most amateurs started with the assumption that a strong program had to resemble Crafty, and progress was very slow compared to recent years.
Does anyone seriously doubt that the general level of computer chess today would have been lower without the existence of strong open source programs?

Disadvantages of strong open source engines:
  • Illegitimate clones of open source engines occasionally appear. This does not happen very frequently. As far as I know, my program has been cloned exactly once so far (while many people have found useful and perfectly legitimate ways to use my code), and the clone was detected even before it was released to the public.
On the topic of cloning, it is also possible to turn the question completely on its head: Most people argue that open source engines make cloning possible. But from another point of view, it could be argued that it is the very fact that releasing an engine without source code is accepted by the community which makes cloning possible. If all programs were released with full source code, undetected clones would be impossible, and we wouldn't have had these endless Strelka/Rybka threads.

Please feel free to add new items to either list above.

Tord
sparky

Re: More proof of Strelka cloning

Post by sparky »

Tord

After reading your comments and thinking about the advantages of open-source in general I have to agree with you. Your arguments are very convincing and I think you're absolutely right. The whole Rybka/Strelka debacle would have been quickly resolved if both engines were indeed open source.

Thanks for the convincing arguments... I'm seldom convinced as easily, but I'll be fool and a hypocrite to argue in saying that you are wrong. :)
Gandalf

Re: More proof of Strelka cloning

Post by Gandalf »

MartinBryant wrote:But you're missing the point entirely!
Nobody is arguing that Strelka is an exact copy of Rybka.
If that was the proposition then a single difference would disprove it.

The argument is simply that it is a clone, based on Rybka with a few modifications. You could find a million differences and they would mean NOTHING. They are irrelevant. The things which are the same are the killers!
A control experiment (should any of the defenders wish to take up the challenge) would be to find another engine which talks the same as Rybka, thinks the same as Rybka and looks the same as Rybka.
Knock yourselves out guys.
So what if some of the interface code of Strelka is the same as Rybka? That can easily be managed by looking at the output of Rybka... It is the code that is not seen externally, such as "ucinewgame" that is different. My point is that this disproves your argument about the UCI implementation being additional proof of cloning, nothing more.
Dariusz Orzechowski

Re: More proof of Strelka cloning

Post by Dariusz Orzechowski »

Tord Romstad wrote:Please feel free to add new items to either list above.
I would like to add that strong programs are invariably written by experienced programmers and it is great pleasure to review a source code written by any of them, taking a look at various approaches, which in turn helps you to be better programmer yourself even if you have no plans to create your own chess engine. For example, as a complete beginner I have written extremely weak and buggy chess engine long ago but now as I reviewed several source codes of strong open source engines, I feel I'm a little better programmer and I've decided to try to write engine for another game, not chess. So not only chess-wise but more general aspect.
Stan Arts

Re: More proof of Strelka cloning

Post by Stan Arts »

I'll give it a try.
I think :

-If computerchess were entirely scientific, opensource is great.
-When there's a competitive element, opensource is bad.

Computerchess science? I don't think so, used to be, perhaps till 10-20 years ago.
Now it seems all about tuning evaluation and tuning an alphabeta+nullmove+other reductions search. I don't think at the top there are many exceptions to that. That's not exactly science. It's hardly AI programming either.

Then there are a lot of computerchess tournaments, online, over the board, etc. So there's a strong competitive element. I for one get much more joy from watching a newly written 1500 Elo program duking it out with higher rated ones and watch it develop over years as the programmer thinks up new ideas, then a tournament where everyone starts off at 2800 Elo with tuned Fruit's and tuned Glaurung's and soon tuned Rybka's. Which were/is the case if total code-sharing would become/is the norm. If someone wants try state-of-the-art (ehh..see point above) searchtechniques that's fine, but do it privately because you ruin or ruined the computerchess-amateur-scene with it. Not everyone wants to go the easy way and some want to develop something of their own.

It is fine when someone wants to write the strongest program in the world, but don't think your doing science. Having to share your work for progress of whole therefore does not apply, it's not like you devised some miracle-medicine or nuclear fusion to save humanity. Notice how there's no real practical use to programs getting stronger for about 10 years now, except for the competitive element.

As for sharing ideas, I will share any idea (and my engine actually has original ideas, imagine that.) in discussion or written form, that way the other has to use his brain and think, instead of pasting or using sourcecode and think later.

Some of Tord's points:

"Open source programs are a great educational resource."

Educational for who? For 5 people in the world who already have written a 2400 Elo engine ? The simpler searchtechniques and an introduction to computerchessprogramming can be taught well (better even) with <2000 Elo opensource programs, if they wish to look at code.

"Strong open source programs allow people without the time or desire to write complete chess program to experiment with new algorithms and techniques in a state of the art engine. This is not purely hypothetical, in fact I am exchanging e-mails these days with a guy who is trying to modify my program to make it run on a cluster. "

It is fine when someone wishes to experiment with a strong program, such a person can contact an author and have fun with whichever sourcecode, even have basement tournaments with it, just don't release it publicly.
Also if someone wants to modify your program that is great, how does that require it to be open source publicly?

"Free open source engines can be used for many more purposes than a proprietary engine. Users can port it to new platforms without assistance from the author"

I for one would like to hear about it as an author, and would like to assist.

"I am in contact with someone who is currently developing a chess program for handheld computers with my engine as its brain. This obviously wouldn't be possible with a proprietary program. "

You are in contact and assisting, so how did it require your engine to be open source publicly?

"Open source makes it impossible for the author to keep the internal details of the engine secret, and therefore stimulates cooperation and sharing of knowledge."

That's a matter of opinion, you are for that, I am against that for the reasons I gave above about competition.
However you can force your opinion on the community by having released your sourcecode, and those that are against it can't do anything but mumble something no one should hear while they go look for a different hobby.

"The availability of numerous strong open source engines help to show beginners that there is more than one way to write a strong chess program"

I would argument the lack of open source would actually bring more diversity.

"and this results in faster progress for the field as a whole."

Yup, true.

Stan
mjlef
Posts: 1494
Joined: Thu Mar 30, 2006 2:08 pm

Re: More proof of Strelka cloning

Post by mjlef »

Might I venture one more arguement for open source? Search is something done not only in games, but it real world application that study geneics, economics and simulations. Releasing methods of improved search and evaluation helps other programmers refine things in these other applications. And some of those applications make our sky scrapers safer, our health better and probably save many lives.

Bravo Tord! You might have just saved some lives! Plus reading your code gives me lots of ideas and delays the onset of brain crumble.