strelka 2.0

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

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12565
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Strelka 2.0

Post by Dann Corbit »

rfadden wrote: {snip}
I said I have seen that Strelka is Reverse Engineering. Strelka 2.0 is not 100% exact match with Rybka 1.0 Beta but on the other hand vast amounts of code exactly lines up.

Yes I will start showing this matching code, and keep in mind that the examples could go on for months because the regions, areas of exact match are vast.

Thanks.
I have taken IdaPro and loaded both Strelka 1.0 and Rybka 1.0 into memory and then had IdaPro analyze them. This gave me symbol tables and function lists, data tables and structures.

Of course, there will be common code (e.g. if both programs call strcpy() then that bit of code will be identical -- and the same for any library functions). However, the module flow diagrams for the two programs looked quite different to me when I created flow graphs and I clearly saw differences in the routines of what I was examining.

I would be interested to see your evidence. I am not sure what exactly we will learn from it, but I am definitely curious myself.
User avatar
Graham Banks
Posts: 41641
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Strelka 2.0 -- TO Dann Corbit

Post by Graham Banks »

Dann Corbit wrote:
Graham Banks wrote:
Dann Corbit wrote: To Rick Fadden:
I think we got off on the wrong foot. You are probably a good programmer and all of that, but I think you are way overboard on your charges.
Yes - Rick owes you an apology. The thread remains unmoderated for now.
I do not need any apology.
Okay. Good enough for me.
gbanksnz at gmail.com
Uri Blass
Posts: 10412
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Strelka 2.0 -- TO Dann Corbit

Post by Uri Blass »

Dann Corbit wrote:
Uri Blass wrote:
Dann Corbit wrote:
Uri Blass wrote:
Tony Thomas wrote:
SzG wrote:
rfadden wrote: It looks to me like Dann was having a lot of fun with Strelka and my guess is that he has plans for using Strelka for many fun and exciting purposes.

I haven't known anything about those plans, I simply came on and started writing about what I had seen.

So what really happened is that I accidentally stepped onto Dann's "Home Turf." Dann has some serious territory that he is now defending.

Since Dann is all angry that I accidentally am standing on his land, he is following some sort of primal instinct now to kick me off of his turf.

Hey Dann I'm not standing on your land. What is this turf that you claim?

Do you think I came here to get between you and your fun? Yes it is apparent that you have big plans for Strelka.

I am going to continue with my proof that Strelka includes a pure rip-off copy of the logic in Rybka. I will give out the proof.

In the mean time Dann you should stop trying to initiate a flame war.

Have you seen how these things turn out? These things never end, they just go on and on... Is this what you want?

The way to stop a flame war is to have all parties dampen their comments somewhat. Dampen down the rhetoric. Turn down the gain of this amplification.
Your imagination has carried you away here. Otherwise I'd have to assume that it is you who wants to generate a flame war. Please stop the talking, present the proofs instead.
What turf is he talking about?? Dann simply said that his claim about Strelka being 100% same as Rybka 1.0 beta is wrong. I have never seen a flame war started by Dann, and since it is Rick who is new around here he should refrain from making such bold claims.
Certainly there is some difference between strelka and rybka1.0 beta because they do not generate the same output and Rick also did not deny it.

The output of strelka1.8 was more similiar to rybka relative to the output of strelka2.0 but it also was not the same.

2.0 is clearly an improvement relative to 1.8 and unlike 1.8 the target with 2 was not to have output that is very close to rybka(except nodes per second) but to have better version than 1.8

Uri
I agree that the goal of Mr Usipov was to have something that plays very much like Rybka and he did surprisingly well at it.

Anyway, the cat is now out of the bag with the Strelka ideas:
1. Fruit ideas, but changed to bitboard, so it will scale well on modern CPUs
2. Material imbalance analysis from Rybka.

I think it was a mistake for Strelka also to copy the Rybka mistakes. I guess he did that on purpose but it makes more sense to me simply to fix them.

In the final analysis, I think we see what we already knew. Fruit was a big revolution in computer chess. Material imbalance is important -- more important than most people thought. Well designed code can be compact and efficient.

To Rick Fadden:
I think we got off on the wrong foot. You are probably a good programmer and all of that, but I think you are way overboard on your charges.

I have no plans whatsoever for the Strelka code except to understand it. My chief interest in computer chess is to see what makes the engines go and also to see what I can do to improve them. If I do improve them, or get what I think is a good idea (quite often I am wrong) I send my idea back to the original authors.

I will absolutely never write a commercial chess engine. That would definitely take *all* the fun out of chess programming for me. I am already paid handsomely as a programmer and I think that chess programmers are probably among the most underpaid programmers in the world. I guess that all (or nearly all) serious chess programmers are doing it for the fun. *If* I ever do release a chess engine it will definitely be open source and contain many of my own ideas. The ideas I have used from other engines will be used in a legal way and clearly documented. I have nothing to gain from one chess engine compared to another, and I learn things from every chess engine source code that I read (including TSCP).

The one problem that I have with Rick's statements is that they contain exaggeration. That is normally fine, but not when you are accusing someone of something. In that context it is simply wrong to do it.

IMO-YMMV
1)I doubt if material imbalance in strelka are really productive in the way that they are implemented and one of the things that I plan to try is to delete them and change the value of the pieces and see if strelka performs worse.

2)I doubt if strelka contains fruit's idea thats are not in rybka and
I guess that fruit simply helped osipov to reverse engineer rybka.

3)I doubt if Osipov could avoid copying the mistakes of rybka
and it is possible that he simply did not understand part of what he copied.

4)I am not sure if Rick's statements contain exaggeration.
I understood that
he expects to change strelka to give the same output as rybka and I guess that we are going to know better later.

If Rick can do small changes to the source of strelka and get the same output as rybka then it is going to prove that he is right.

Uri
I only object to this:
"If Rick can do small changes to the source of strelka and get the same output as rybka then it is going to prove that he is right."

That is not a proof that he is right. It is a proof that he has constructed the same output as Rybka. And it is only a proof if tested with every possible input. I guess that it is not possible to test every input. If, eventually, he got a 100% binary duplicate with small changes it would be better evidence, but then why were the changes needed? The only think I think that can be proven is what we already know. So why bother trying to prove it?

Of course, I am speaking of a formal proof. If he could accomplish his goal it would be evidence that he was largely correct. But that is not proof.
I agree that the word proof here is wrong and it was better to say evidence.

Testing with every possible input is impossible but if we play many games with fixed depth or fixed number of nodes both with rybka and strelka and practically always get the same result even after thousand of games then for me it is enough evidence to say that one program is derived from the other program(there may be some differences in the code but no important difference and the same algorithm and the same evaluation is used maybe except some rate cases).

Uri
rfadden

Re: Strelka 2.0 -- TO Dann Corbit

Post by rfadden »

Dann Corbit wrote:
Uri Blass wrote:
Certainly there is some difference between strelka and rybka1.0 beta because they do not generate the same output and Rick also did not deny it.

The output of strelka1.8 was more similiar to rybka relative to the output of strelka2.0 but it also was not the same.

2.0 is clearly an improvement relative to 1.8 and unlike 1.8 the target with 2 was not to have output that is very close to rybka(except nodes per second) but to have better version than 1.8

Uri
I agree that the goal of Mr Usipov was to have something that plays very much like Rybka and he did surprisingly well at it.

Anyway, the cat is now out of the bag with the Strelka ideas:
1. Fruit ideas, but changed to bitboard, so it will scale well on modern CPUs
2. Material imbalance analysis from Rybka.

I think it was a mistake for Strelka also to copy the Rybka mistakes. I guess he did that on purpose but it makes more sense to me simply to fix them.

In the final analysis, I think we see what we already knew. Fruit was a big revolution in computer chess. Material imbalance is important -- more important than most people thought. Well designed code can be compact and efficient.

To Rick Fadden:
I think we got off on the wrong foot. You are probably a good programmer and all of that, but I think you are way overboard on your charges.

I have no plans whatsoever for the Strelka code except to understand it. My chief interest in computer chess is to see what makes the engines go and also to see what I can do to improve them. If I do improve them, or get what I think is a good idea (quite often I am wrong) I send my idea back to the original authors.

I will absolutely never write a commercial chess engine. That would definitely take *all* the fun out of chess programming for me. I am already paid handsomely as a programmer and I think that chess programmers are probably among the most underpaid programmers in the world. I guess that all (or nearly all) serious chess programmers are doing it for the fun. *If* I ever do release a chess engine it will definitely be open source and contain many of my own ideas. The ideas I have used from other engines will be used in a legal way and clearly documented. I have nothing to gain from one chess engine compared to another, and I learn things from every chess engine source code that I read (including TSCP).

The one problem that I have with Rick's statements is that they contain exaggeration. That is normally fine, but not when you are accusing someone of something. In that context it is simply wrong to do it.

IMO-YMMV
I started posting the information in a thread created specifically for this purpose.

This is in: Programming and Technical Discussions

Title: Strelka Reverse Engineered from Rybka: Details Examined

I'm writing to everyone when I mention that the details, evidence, that I'm putting into this Thread should likely go on for quite a bit, so as you read the first post keep in mind we don't know how many more posts of this much information that we will have in the next few days, but I may end up with one or two posts per day of this size.

The first post is just the first example. The set of material to select from is massive so I hope we hold off on conclusions for a while since it will take many days for the posts to add up and show more of the big picture.

Thanks.
rfadden

Re: Strelka 2.0 -- TO Dann Corbit

Post by rfadden »

geots wrote:
SzG wrote:
rfadden wrote: It looks to me like Dann was having a lot of fun with Strelka and my guess is that he has plans for using Strelka for many fun and exciting purposes.

I haven't known anything about those plans, I simply came on and started writing about what I had seen.
Your imagination has carried you away here. Otherwise I'd have to assume that it is you who wants to generate a flame war. Please stop the talking, present the proofs instead.

AMEN to that, Gabor. Well said.
I started posting the information in a thread created specifically for this purpose.

This is in: Programming and Technical Discussions

Title: Strelka Reverse Engineered from Rybka: Details Examined

I'm writing to everyone when I mention that the details, evidence, that I'm putting into this Thread should likely go on for quite a bit, so as you read the first post keep in mind we don't know how many more posts of this much information that we will have in the next few days, but I may end up with one or two posts per day of this size.

The first post is just the first example. The set of material to select from is massive so I hope we hold off on conclusions for a while since it will take many days for the posts to add up and show more of the big picture.

Thanks.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: Strelka 2.0 -- TO Dann Corbit

Post by ozziejoe »

I only object to this:
"If Rick can do small changes to the source of strelka and get the same output as rybka then it is going to prove that he is right."

That is not a proof that he is right. It is a proof that he has constructed the same output as Rybka. And it is only a proof if tested with every possible input. I guess that it is not possible to test every input. If, eventually, he got a 100% binary duplicate with small changes it would be better evidence, but then why were the changes needed? The only think I think that can be proven is what we already know. So why bother trying to prove it?

Of course, I am speaking of a formal proof. If he could accomplish his goal it would be evidence that he was largely correct. But that is not proof.
"Proof" is an ubsurdly high standard. Dan, are you saying that if could replicate rybka's behaviour almost exactly, with only a few modifications to strelka, this would not constitute strong evidence. I mean, since when did you need a higher level of evidence than this to show something is a clone?


And as for why the code is slighltly different. I would say opsirov made some minor modifications, either in an attempt to improve it or more likely in an attempt to hide what he was doing.

I wonder if people are pissed at vas for not sharing with the community (and i am not directing this at you dan), and are a little blinded to what has seemed incredibly obvious from early on. Strelka is rybka beta 1 with a few attempts to hid its origin. Whether you like vas or not, or think he did the right thing, it is hard to get around this conclusion....I am of course open to contrary evidence....but am not seeing it.




[/quote]
User avatar
GenoM
Posts: 910
Joined: Wed Mar 08, 2006 9:46 pm
Location: Plovdiv, Bulgaria

Re: Strelka 2.0 -- TO Dann Corbit

Post by GenoM »

ozziejoe wrote:Strelka is rybka beta 1 with a few attempts to hid its origin.
The first and most important of these few attempts to hide this was naming the engine JUST like the Rybka [in the name of the first Strelka there was only 5 letters that differ from the name of the free Rybka -- there was Strel- instead of Ryb-] So I must agree with you -- yes, this was very serious attempt to hide the origin of Strelka.
take it easy :)
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: Strelka 2.0 -- TO Dann Corbit

Post by slobo »

GenoM wrote:
ozziejoe wrote:Strelka is rybka beta 1 with a few attempts to hid its origin.
The first and most important of these few attempts to hide this was naming the engine JUST like the Rybka [in the name of the first Strelka there was only 5 letters that differ from the name of the free Rybka -- there was Strel- instead of Ryb-] So I must agree with you -- yes, this was very serious attempt to hide the origin of Strelka.
:D :D :D

Very good answer!
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
Uri Blass
Posts: 10412
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Strelka 2.0 -- TO Dann Corbit

Post by Uri Blass »

GenoM wrote:
ozziejoe wrote:Strelka is rybka beta 1 with a few attempts to hid its origin.
The first and most important of these few attempts to hide this was naming the engine JUST like the Rybka [in the name of the first Strelka there was only 5 letters that differ from the name of the free Rybka -- there was Strel- instead of Ryb-] So I must agree with you -- yes, this was very serious attempt to hide the origin of Strelka.
I totally agree with you that there was no serious attempt to hide the origin of strelka.

I suspected that it is based on rybka even in the beginning because of the name.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: Strelka 2.0 -- TO Dann Corbit

Post by ozziejoe »

ok, this is my very last email on anything related to strelka, and indeed the last time i view any strelka thread. It looks like there are a hard core two or three people who seem determined to defend strelka, and this defense is hardly based on evidence or any sort of ethical system.


Let me summarize the defense of the strelka author. Then, just so we can look at the logic, I will place the argument in the context of another domain

1) ARgument 1: Yes, Osipov reverse engineered rybka (unethical behaviour), but look Vas stold Rybka from fruit . The latter point was later refuted by the author of fruit.

reasoning structure: Yes, I beat my wife, but look Vas beats his wife too. Oh, there is no evidence that vas beats his wife? I don't agree, he does beat his wife


2) Argument 2: Yes, osipov reverse enginered rybka, but look, he made little effort to hide it.

reasoning structure: I beat my wife but at least i don't try to hide it.

3) Osipov is a kind of robin hood, taking from the rich and giving to the poor

Who is rich in this scenario: Vas? Who are the poor? The other programers who shared there ideas with vas and than vas had the "nerve" to not give them his creative ideas? People are allowed to learn from others (e.g., university, reading people's books), and then to come up with their own ideas. People are allowed to "stand on the sholders of giants." Vas is able to develop his wonderful engine and future GUI full time because he can make a living at it. Take away his ability to make a living, e.g., by steeling his stuff, and you take away the future developments that are dear to us folks on this list serve.




To the people defending osipov (is this a pen name for one of the people here)?. What is the principle you are putting into play? In what way has Osipov acted with dignity and character? Did Osipov's long and intensive work actually help the poor,as did robin hood? Or could he have used his time and intelligence to do something more decent for humanity than stealing a piece of software and trying to destroy Vas' career?



ps. Whilst I don't see it as a moral imperative for an author to make his ideas open source, I do have tremendous respect for folks who do this (e.g., Bob Hyatt).


best

J