Just to add this table (GenoM post on the rybka forum, from ccrl)
Ponder hit: Most similar pairs (different families only)
# Pair Ponder hit Moves counted
1 Loop 13.6 32-bit – Toga II 1.2.1a 32-bit 70.5 562
2 Loop 13.5 32-bit – Toga II 1.2.1a 32-bit 69.7 1504
3 Rybka 1.0 Beta 32-bit – Strelka 1.0b 32-bit 69.4 3572
4 LoopMP 12.32 2CPU – Toga II 1.2.1a 32-bit 69.3 4695
5 Rybka 1.0 Beta 32-bit – Strelka 1.8 32-bit 68.7 3736
6 Rybka 1.0 Beta 32-bit – Loop 12.32 66.8 1290
7 Rybka 2.3.2a 32-bit – Loop 10.32f 65.9 876
Is Belka a Rybka?
Moderator: Ras
-
matejst
- Posts: 368
- Joined: Mon May 14, 2007 8:20 pm
- Full name: Boban Stanojević
-
Tony
Re: Is Belka a Rybka?
You didn't understand.Andrej Sidorov wrote:What а silly statement. Uri Blass compiled sourcecode and get exact Strelka executable. Do you think he's idiot?Tony wrote:if Belka is Strelka, and Belka has variables that your sourcecode of Strelka does not have THEN YOU HAVE NOT BEEN GIVEN THE CORRECT SOURCECODE.
It must have been an accident, since the author is very trustworthy and there is no reason why he would have different code checked for cloning.
Tony
It means Belka != uris version of Strelka
-
Guetti
Re: Is Belka a Rybka?
In my opinion cloning is the use of code, complete or partial, and nothing else. I think we have to be careful with this ponder hit stuff, because it is not conclusive if engines with high score are in any way related. Completely different code can get to the same best move.
There is a hugh difference if engines display an identical PV, same core (+- a constant), same bugs etc in some positions. Chances for that are more like 1 to a million.
However, as long as nobody can show that Strelka uses code of Rybka (and currently only Vasik cand do that), there is no prove that Strelka is a clone. Disassembling and rewriting the code of a engine is a perfectly valid option in my oppinion, as long as the code differs in the newly written engine. By the way, can we be sure that Lang, SMK, Uniacke, Donniger etc never used a disassembler to peek in the code of a concurrent? No.
In my oppinion a good solution would be that Vasik releases the source of the Rybka1.0 beta. I think he already played with that thought. After all his current Rybka versions are around 200 Elo stronger than the beta.
That would put the people who don't have the time to mess around with a disassembler on the same level of knowledge.
Now I have to run away and hide, because I will be ripped apart because of saying that.
There is a hugh difference if engines display an identical PV, same core (+- a constant), same bugs etc in some positions. Chances for that are more like 1 to a million.
However, as long as nobody can show that Strelka uses code of Rybka (and currently only Vasik cand do that), there is no prove that Strelka is a clone. Disassembling and rewriting the code of a engine is a perfectly valid option in my oppinion, as long as the code differs in the newly written engine. By the way, can we be sure that Lang, SMK, Uniacke, Donniger etc never used a disassembler to peek in the code of a concurrent? No.
In my oppinion a good solution would be that Vasik releases the source of the Rybka1.0 beta. I think he already played with that thought. After all his current Rybka versions are around 200 Elo stronger than the beta.
That would put the people who don't have the time to mess around with a disassembler on the same level of knowledge.
Now I have to run away and hide, because I will be ripped apart because of saying that.
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
Re: Is Belka a Rybka?
I am familiar with the data that shows remarkable similarity between strelka and rybka beta, when analyzing positions (and the similarity in rating as depth changes). I am familiar with the correlation between strelka and rybka beta moves from ccrl. I am familiar with the similar, odd bugs that strelka and rybka share. Vas has now come out and said that strelka is a clone of rybka. This is the data i have. If there is something that refutes this data, or other data that overrules it, I am happy to listen to you.GenoM wrote:Its simply not true. It's irritating to me when people with little knowledge about this case make brave generalisations about computer chess. Joseph, you even did not knew that Uri has the sources of Strelka send him with the author's permission. So before making statements like this its better to make some research about the case.ozziejoe wrote:Every strelka-like engine takes away from the hard work of the true engine authors. And it hurts interest in computer chess.
Regards,
Geno
You will of course continue to express strong views in these emails. You will undoubtably make some more strong claims. I look forward to you presenting evidence with these claims in the future, or sharing the information you say I need to make an informed judgment.
As for my claim that clones hurt interst in computer chess, I confess this is only based on my own reactions and some assumptions about human nature . For example., people like to get behind chess engines the same way they get behind a team. People want to cheer for the skill of the programer. and if their is a lot of fraud (and I am not saying there is), then it gets harder to cheer for a "team" (for who do you trust).
This is my position. I remain open to contrary evidence. However, simply making emotional, angry claims, as you do, and then providing no evidence, leads nowhere. It is equivilant to yelling down someone with whom you disagree.
So, I await the contrary evidence and if it is convincing I will change my mind.
best
Joseph
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
Re: Is Belka a Rybka?
i see what you are saying. (i.e., that you can arrive at similar outcomes, even wierd bug outcomes, with very different code).
Maybe we need a word other than "clone"? We need a word that indicates when two engines behave remarkably similarly, but may differ in code. How about an "imitation." You could say strelka is an imitation of rybka beta. Would that be better/less controversial?
Then we will have to decide how similarly two engines have to behave to classify the newer one as an imitation. But at least we can base such classification on behaviour/output of the engine (rather than infering things about code)
best
joseph
Maybe we need a word other than "clone"? We need a word that indicates when two engines behave remarkably similarly, but may differ in code. How about an "imitation." You could say strelka is an imitation of rybka beta. Would that be better/less controversial?
Then we will have to decide how similarly two engines have to behave to classify the newer one as an imitation. But at least we can base such classification on behaviour/output of the engine (rather than infering things about code)
best
joseph
-
matejst
- Posts: 368
- Joined: Mon May 14, 2007 8:20 pm
- Full name: Boban Stanojević
Re: Is Belka a Rybka?
Eventually, I would like to make my point of view quite clear.
When, after the release of the code of Fruit, most of the commercial engines made tremendous jumps in strength, it was clear to me that their authors have probably used ideas found in F. L.'s code. Some of them obviously used a lot of ideas found in Fruit. But it is OK for me. Until they start using the code “as is” itself, there were no questions of illegal behavior; just a question of immoral behavior - they are making money of others work.
The same has to apply to Strelka. Until it is not proven that Osipov used Rajlich's code, it is legal. Is it moral? Not for me. But for me, immoral is also the use of Fruit code and ideas in commercial engines.
That is not proven? I agree. But the use of Rybka's code in Strelka is not proven the same way. Then, the author of Strelka had the decency to send the code to everyone who wanted it. Even to V. Rajlich. By doing that, he demonstrated he was quite sure about the originality of his own coding. By explaining how he made Strelka, he also showed that he was persuaded not to have done anything others didn’t do: at least, he had the proofs – he started with Fruit, added a table, obtained Strelka. So… make your own conclusions.
I repeat: for me, only the use of the entire code, or part of the code “as is” of another engine is dishonnest. And if someone wants to talk about morality, than, let’s talk not only about Strelka, or the engines of the poor guys that innocently released also their codes, but of others too.
I have to add that for me, an average user of computer chess programs, such a situation is great: there are more and more very strong engines to use. And the next time I'll buy a new program, I won’t care about the engine, but only about the interface.
Kind regards.
BS
When, after the release of the code of Fruit, most of the commercial engines made tremendous jumps in strength, it was clear to me that their authors have probably used ideas found in F. L.'s code. Some of them obviously used a lot of ideas found in Fruit. But it is OK for me. Until they start using the code “as is” itself, there were no questions of illegal behavior; just a question of immoral behavior - they are making money of others work.
The same has to apply to Strelka. Until it is not proven that Osipov used Rajlich's code, it is legal. Is it moral? Not for me. But for me, immoral is also the use of Fruit code and ideas in commercial engines.
That is not proven? I agree. But the use of Rybka's code in Strelka is not proven the same way. Then, the author of Strelka had the decency to send the code to everyone who wanted it. Even to V. Rajlich. By doing that, he demonstrated he was quite sure about the originality of his own coding. By explaining how he made Strelka, he also showed that he was persuaded not to have done anything others didn’t do: at least, he had the proofs – he started with Fruit, added a table, obtained Strelka. So… make your own conclusions.
I repeat: for me, only the use of the entire code, or part of the code “as is” of another engine is dishonnest. And if someone wants to talk about morality, than, let’s talk not only about Strelka, or the engines of the poor guys that innocently released also their codes, but of others too.
I have to add that for me, an average user of computer chess programs, such a situation is great: there are more and more very strong engines to use. And the next time I'll buy a new program, I won’t care about the engine, but only about the interface.
Kind regards.
BS
-
Uri Blass
- Posts: 11107
- Joined: Thu Mar 09, 2006 12:37 am
- Location: Tel-Aviv Israel
Re: Is Belka a Rybka?
My source code produce the same output as the public exe of strelka inTony wrote:Duh,Uri Blass wrote:Note that I looked at the code of strelka1.8 and did not find the stringmjlef wrote:Here is an interesting experiment. Talke Belka 1.8.13. It comes with two files. One is a header file (EvalConsts.h) describing what some variables do. Although the comments ar ein Russian, I had a Bulgarian friend translate the comments for me. Variable names are very close to what is used in the Piece Square Table (PST.cpp) file that comes with Fruit. For example:
extern int BishopLine[8];
in Fruit this is:
static const int BishopLine[8] = {
-3, -1, +0, +1, +1, +0, -1, -3,
};
In fact, most of the names appear in Fruit and have the same apparent meanings. There are som new terms (not a lot), sveral involving a more detailed passed pawn evaluation.
So, I go to thinking. the person.txt file lets you set new values to be used for any of the terms in person.txt. If you have an empty person.txt, it reverst all values to whatever the defaults are. You can quikly figure out what the default values are by putting numbers in one line like this:
BishopLine 0 0 0 0 0 0 0 0
that would set these values to all 0. You then run a short search to a fixed depth, change the values and run again. When I did this, and used the fact written here that 3399 is a "pawn", so 33.9 would be 1/100 th a pawn (used in Fruit), the values for BishopLine when divided by 33.9 come out to:
-3, -1, 0, 1, 1, 0,-1, -3
Exactly the values used in Fruit 2.1. And this is true for all the "Line" variables I tried, and many of the other constants as well. If Belka is a clone it certainly has a lot of Fruit in it.
This seems to be evidence that the author starte dwith Fruit as a model, which I think was mentioned here.
BishopLine inside of it
I also looked for [8] because it may have a different name and I found no names that are about piece square table and I found only names that are about passed pawns.
Maybe Belka include parts of fruit that strelka does not have.
Uri
if Belka is Strelka, and Belka has variables that your sourcecode of Strelka does not have THEN YOU HAVE NOT BEEN GIVEN THE CORRECT SOURCECODE.
It must have been an accident, since the author is very trustworthy and there is no reason why he would have different code checked for cloning.
Tony
analysis of the opening position.
The possibilities that I can think about are the following:
1)Belka is not strelka
2)The relevant information is written in different way(for example it is possible to have int xxx[10] instead of int BishopLine[8] when you never use xxx[8] or xxx[9] and it also may be possible to have some function instead of the array BishopLine.
I am going to look at the code of strelka later to see if there is something that is equivalent to
static const int BishopLine[8] = {
-3, -1, +0, +1, +1, +0, -1, -3,
};
It may be possible that some piece square table for 64 squares for the bishop is based on these constants.
Uri
-
Andrej Sidorov
Re: Is Belka a Rybka?
Uri Blass wrote:Tony wrote:No chance. It is modified Strelka, and Osipov, Korshunov, Nefedov (Anechka) openly discuss its modifications on Kasparovchess forum.Uri Blass wrote: The possibilities that I can think about are the following:
1)Belka is not strelka
Uri
-
Albert Silver
- Posts: 3026
- Joined: Wed Mar 08, 2006 9:57 pm
- Location: Rio de Janeiro, Brazil
Re: Is Belka a Rybka?
So, *if* Strelka had been made using portions of Rybka's code "as is", you would consider it immoral, illegal, and dishonest?matejst wrote:Eventually, I would like to make my point of view quite clear.
(...)
The same has to apply to Strelka. Until it is not proven that Osipov used Rajlich's code, it is legal. Is it moral? Not for me. But for me, immoral is also the use of Fruit code and ideas in commercial engines.
That is not proven? I agree. But the use of Rybka's code in Strelka is not proven the same way. Then, the author of Strelka had the decency to send the code to everyone who wanted it. Even to V. Rajlich. By doing that, he demonstrated he was quite sure about the originality of his own coding.
(...)
I repeat: for me, only the use of the entire code, or part of the code “as is” of another engine is dishonest.
Albert
-
GenoM
- Posts: 915
- Joined: Wed Mar 08, 2006 9:46 pm
- Location: Plovdiv, Bulgaria
- Full name: Evgenii Manev