strelka 2.0

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

Moderator: Ras

rfadden

Re: Strelka 2.0

Post by rfadden »

Dann Corbit wrote:
rfadden wrote:
slobo wrote:
"And then there is the attempt of the author of strelka to spoil vasik's reputation"

Ask Crafty´s author about Rybka´s author reputation.

"Stealing programming from another and then making it public is morally repugnant to me."

It is your interpretation, but it is not universal. On the contrary: it is rather ethnocentric.

It´s a pity to see that there are a lot of people who consider Robin Hood a simple stealer.

Let´s put a little light on the problem:

You are a stealer when you steal something from people who are NOT in debt with anyone.

You are probably a kind of stealer when you steal something from people who ARE in debt with others, and use stolen things for your proper benefits.

But, when you "steal" someone who is in debt with others, and you share "stolen things" with others, you are Robin Hood.


Of course, you are not obliged to accept my logic, but you should, at least, think a little more about other models of thinking and seeing the world, before blaming people you don´t like.
The fraud is due to the fact that Jury Osipov implemented the author strings to say that he is the author. He did not credit Vasic. He also entered his program in at least one computer chess tournament in Russia, and from the posts that I have seen he continues to deny that he reverse engineered Rybka. He wants to be known as an author of a great chess program and yet I have seen that there are no original lines of code in Strelka, everything is exactly matching Rybka (except for the addition of PV display).
This is just as untruthful as the most outrageous thing Mr. Osipov has ever said.
So Jury has tried to benefit from this theft of intellectual property.
He denys that it is theft. He is on record in interviews as saying this is his own work.

This continued defense of Jury Osipov looks "political" to me. This looks like a typical "gang" or "clique" mentality. Slobodan perhaps identifies with Jury in some way outside of computer chess, and so Jury is to be defended at all costs. That's my guess.

So this is not an intellectual angle, I think this is an example of typical politics.

Here is an example of this "alignment" or gang or group thinking: I happen to like Bob Hyatt. He helped me years ago, and he has been great to me... So if Bob belches in public (just an example) I am going to come on and defend belching in public. I will tell you all of the reasons why belching means nothing and how this is no issue relating to character. If anyone attempts to say something bad about Bob, I will defend him instinctively, because I either am, or I consider myself to be in his "posse." He might not even know that I am in his "posse" but I *think* I am, or I think this way, so I instinctively defend Bob.

I suspect that Slobodan thinks of himself as part of Jury Osipov's "posse" and so he defends Jury no matter what.

If Jury commits a crime then Slobodan would instinctively write that it is not a crime.

I believe this is all politically motivated and so Slobodan does not look very "intellectual" here as he defends his friend/buddy Jury...

My friend/buddy is Bob, so don't anyone even *think* about saying anything bad about Bob. I'm in his posse...


Keep in mind I'm writing my opinion. I have described the pattern that I see. I have encountered a lot of this "political bias" over the years and generally I don't like dealing with politics.
What Mr. Osipov did as far as reverse engineering was questionable in nature. However, this false image of what occurred is also bad behavior.

IMO-YMMV
I read a fairly extensive interview with Jury Osipov that was posted on the Internet. Jury gave his background in writing some initial, simple game programs and then he described his development of Strelka as original.
The point of the interview was Jury defending Strelka as totally original work, with no copying of Rybka.

I found the source to Strelka and I started comparing the details internally by looking at the X86 code of Rybka. Within minutes I started unraveling all of the Rybka binary code. Seconds into starting I was finding unique constants in Rybka that had been taken exactly as is and put into Strelka. There were completely unambigous demonstrations of direct and perfect copying and this just continued and continued, so I started linearly going through everything, while labeling all variables, functions, structures in Rybka. It was like solving a jigsaw puzzle. I could see blanks in the variables of Rybka and I would sometimes just be so curious so I would resolve those variable at the time as follows:

I would pick an "unknown" Rybka global variable location and then list all of the functions where the variable was used. Then I would look in the functions in Strelka and see a variable that seemed to be used in the same functions there, so that became a candidate, and then I would dive in deeper.

I could look at all of the calculations that referenced that one variable in Rybka, and then find in Strelka the exact same calculations that referenced variable X. I would cross check and see there were no calculations in Strelka for variable X beyond the exact match with the calculations in Rybka.

Every unique angle I pursued, whether it was going through the code sequentially, identifying 100% match, or switching to an approach where I pick one variable at a time... in all such final resolving everything exactly matched.

I continued this effort until all of Rybka was decoded.

I then used the decoded Rybka to implement my Node Count Patch.

One of the key items which Jury left out of Strelka is the Node Count Obfuscation that Vasic put into Rybka 1.0 Beta. I have written separately about my patches that remove all of this obfuscation from the Rybka 1.0 beta binary...

So I have gone through weeks worth of proof but here I have written about my experience 9only) and I have not yet delivered the first batch of the proof of what I have seen, here. I should probably just get started gathering and displaying this proof of what I've seen so others can understand the accuracy of the exact match between Rybka and Strelka.

When I ran into small pieces of Rybka that were not in Strelka that really got my attention. Since I have the "primer", everything is visible so I started expressing the missing logic in C/C++ myself, and I could see why Strelka searches and does Eval while skipping a couple of steps from Rybka, and so yes this explains why in tests from Chess positions, Strelka gives different answers.

So every piece of Rybka, x, y, or z that is missing in Strelka happens to be the key material that I remain most interested in. Naturally in my notes I write the C code of x, y, and z in order to really look at it and to make sure I see everything that is going on.

By adding x, y, and z to Strelka (and by removing Jury's Multi-PV addition) I would then have a complete Rybka to look at, and that's an interesting goal. When I compile this program (and I will add the appropriate Author strings to this - credit goes to Vasic Rajlich) then this binary will make moves and play chess exactly matching Rybka 1.0 beta.

For testing and further proof I suppose one idea is to use Rybka 1.0 beta, plus a renamed version of the Rybka 1.0 beta .exe file, plus the "Rip-ka" that I compile. The renamed .exe should correlate with Rybka in the same way as "Rip-ka" (Rip-ka is "Rip Off" Rybka).

-----------

My main interest is understanding Rybka, and so as I work on x, y, z, I end up completing the initial, key part of this pursuit of knowledge.

Next I will instrument Rip-ka so I can gather statistics and measure what is going on inside the program while it runs. I have a number of original (as far as I know) ideas for viewing what goes on inside a chess program.

In my Graphics Hardware R&D work I developed a relatively straightforward technique that I intend to reuse for visualizing Rip-ka.

I would love to write about this technique now, but I sense a potentially hostile audience here...

So I'll continue writing on this subject in another thread and roughly I'll be writing with other folks who are not defending their original turf.

So in any case, I think the topic will continue with interesting results coming out of these developments. I think there is more to learn from Instrumented Rip-ka.
ernest
Posts: 2046
Joined: Wed Mar 08, 2006 8:30 pm

Re: Strelka 2.0

Post by ernest »

rfadden wrote: I read a fairly extensive interview with Jury Osipov that was posted on the Internet...
Hi Rick,
Which of Osipov's Strelka versions is closest to Rybka 1.0 beta:
Strelka 1.0 beta (the 1st one, no multivariation)?
Strelka 1.8 UCI?
Strelka 2.0 Beta (the latest one, with source code)?

Shouldn't it be Strelka 1.0 beta, if Strelka is a copy of Rybka?
User avatar
GenoM
Posts: 911
Joined: Wed Mar 08, 2006 9:46 pm
Location: Plovdiv, Bulgaria
Full name: Evgenii Manev

Re: Strelka 2.0 -- TO Dann Corbit

Post by GenoM »

ernest wrote:
rfadden wrote: I read a fairly extensive interview with Jury Osipov that was posted on the Internet...
Hi Rick,
Which of Osipov's Strelka versions is closest to Rybka 1.0 beta:
Strelka 1.0 beta (the 1st one, no multivariation)?
Strelka 1.8 UCI?
Strelka 2.0 Beta (the latest one, with source code)?

Shouldn't it be Strelka 1.0 beta, if Strelka is a copy of Rybka?
And a request to Dann Corbit -- he saw the source of the first Strelka -- can he share his opinion how close are these two sources?
take it easy :)
IWB
Posts: 1539
Joined: Thu Mar 09, 2006 2:02 pm

Re: strelka 2.0

Post by IWB »

hawkeye wrote:will strelka be tested on time controls aside from 40/4?
Hello Hawkeye,

Part of my private list (no betas): Time= 6 + 3 (average game 16 min), Ponder on, Starting positions (no book), changing colors, no learning, 256 MB Hash, only 4 pc TBs and just one single thread for all. Overall 66000 games.

Unfortunately I can not format correctly.

Have a look at position 5 and 6.

Program Elo + - Games Score Av.Op. Draws

1 Rybka 2.3.2a mp : 2721 9 9 3900 70.6 % 2568 36.2 %
2 Rybka 1.2f : 2671 7 7 6500 66.0 % 2556 32.9 %
3 Zappa Mexico II x64 : 2619 13 13 1600 55.8 % 2578 40.1 %
4 Deep Shredder 11 x64 : 2600 12 12 2200 56.2 % 2557 35.0 %
5 Strelka 2.0 B x64 : 2597 16 16 1000 52.8 % 2578 43.5 %
6 Rybka 1.0 Beta x64 : 2593 11 11 2300 53.5 % 2569 36.7 %
7 Zappa Mexico I X64 : 2591 9 9 3600 53.2 % 2568 40.4 %
8 Naum 3 x64 : 2589 13 13 1800 51.2 % 2581 38.5 %
9 Toga II 1.4 beta5c BB : 2579 15 15 1200 51.2 % 2570 43.2 %
10 HIARCS 12 MP : 2578 15 15 1200 48.2 % 2590 39.6 %
11 Naum 2.2 : 2542 10 10 2700 43.5 % 2588 42.9 %
12 Rybka 1.0 Beta 32-bit : 2541 8 8 4400 50.1 % 2540 33.2 %
13 HIARCS 11.2 : 2535 7 7 6600 45.5 % 2567 36.3 %
14 Fruit 2.3 : 2530 22 22 600 51.9 % 2517 39.2 %
15 Fruit 05/11/03 : 2530 9 9 3800 43.1 % 2578 39.7 %
16 DS 10 Balmung : 2529 10 10 2600 49.9 % 2530 42.5 %
17 Loop 13.5 : 2524 8 8 4400 44.2 % 2564 37.6 %
18 LoopMP 12.32 : 2523 9 9 3800 49.3 % 2528 34.8 %
19 Loop M1-P : 2521 24 24 500 49.2 % 2527 39.6 %
20 Toga II 1.2.1a : 2519 7 7 6600 46.6 % 2542 35.2 %
21 ListMP 11.64b : 2516 12 12 2200 44.0 % 2558 35.9 %
22 Deep Shredder 10 x64 : 2510 7 7 5300 44.8 % 2546 37.9 %
23 HIARCS 11 MP : 2505 19 19 800 44.9 % 2541 36.4 %
24 Naum 2.1 NoLearn : 2504 9 9 3700 44.6 % 2542 36.4 %
25 Toga II 1.3x4 : 2497 19 19 800 44.6 % 2535 38.9 %
26 Hiarcs X54 64bit UCI NORM : 2495 22 22 600 43.9 % 2537 36.5 %
27 Spike 1.2 Turin : 2476 7 7 6200 39.4 % 2550 36.0 %
28 DS 9.02 1T : 2465 16 16 1400 37.9 % 2551 29.1 %
29 Deep Sjeng 2.7 : 2457 13 14 1800 31.7 % 2590 33.8 %
30 Glaurung 2-epsilon/5 : 2445 16 16 1300 34.8 % 2554 30.9 %
31 Deep Sjeng 2.5 : 2385 20 20 900 29.9 % 2532 30.6 %


Bye
Ingo

PS: As Strelka is 90% Fruit the whole excitement deserves 10% of the attention it actualy gets!
IWB
Posts: 1539
Joined: Thu Mar 09, 2006 2:02 pm

Re: strelka 2.0

Post by IWB »

SzG wrote:
IWB wrote: PS: As Strelka is 90% Fruit the whole excitement deserves 10% of the attention it actualy gets!
The more posts I read about the matter the more confused I get.

If the statement of the above PS is true and Rick Fadden's statement (Strelka is equivalent to Rybka) is also true then it follows that Rybka is 90% Fruit.

As I am sure about the correctness of my reasoning, at least one of the premises must be false.
Why must one premis be wrong?

Bye
Ingo
User avatar
geots
Posts: 4790
Joined: Sat Mar 11, 2006 12:42 am

Re: strelka 2.0

Post by geots »

SzG wrote:
IWB wrote: PS: As Strelka is 90% Fruit the whole excitement deserves 10% of the attention it actualy gets!
The more posts I read about the matter the more confused I get.

If the statement of the above PS is true and Rick Fadden's statement (Strelka is equivalent to Rybka) is also true then it follows that Rybka is 90% Fruit.

As I am sure about the correctness of my reasoning, at least one of the premises must be false.

I follow your reasoning Gabor- and i see where you are going with this. And you are 100% correct. (And if i can follow it- i cant imagine anyone else having a problem with it)


Best,
rfadden

Re: Strelka 2.0

Post by rfadden »

ernest wrote:
rfadden wrote: I read a fairly extensive interview with Jury Osipov that was posted on the Internet...
Hi Rick,
Which of Osipov's Strelka versions is closest to Rybka 1.0 beta:
Strelka 1.0 beta (the 1st one, no multivariation)?
Strelka 1.8 UCI?
Strelka 2.0 Beta (the latest one, with source code)?

Shouldn't it be Strelka 1.0 beta, if Strelka is a copy of Rybka?
Good Question. I'm looking at Strelka 2.0 source and the source for the earlier versions is not available that I know of.

I believe it was Vasic who wrote that the earlier versions directly used his lookup tables with a pass at Exclusive Or being used to "decode" the tables before they were used. In Strelka 2.0 there are functions that fill these tables

To more closely match Rybka 1.0 beta one would go back to the earlier technique. I have not yet looked inside the Strelka 1.0 binary to verify this exact use of Vasic's tables.

I did ask Jury if he would be willing to part with the source to his earlier versions on the assumption that this was a better model of Rybka 1.0 Beta.

Roughy I recall that the Strelka 1.0 either did not use UCI, or it had a problem with it's implementation.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: strelka 2.0

Post by ozziejoe »

I think some people are suggesting that rybka = fruit clone

Of course if rybka is a clone of fruit than it must be a clone on steroids.

Here is a comparison (from good ol CCRL)

Rybka 1.0 64-bit 2921

Fruit 2.1 2796


Wow, what a clone. But maybe I'm being unfair. Perhaps fruit 2.1 gets a massive speed up on a 64 bit computer. Oh wait. Fruit is not a bitboard engine. It does not benefit from 64 bit. Oh yea. Oh, but that has nothing to do with rybka's clone status (said in a sarcastic voice)..

And finally, I suppose we can all agree that vasik is an uncreative, cloning, hack (much like the noble author of strelka who says "I crack comercial software and give it to the world, but vasik is a naughty boy too!").

lately, vas has made fruit 2.1 an engine on steroids, cocain, and crack.


Rybka 2.3.2a 64-bit 4CPU 3127
Fruit 2.1 2796


Now that you critics of vasik have the uncompliled fruit/rybka, it should make it supremely easy for you to create an engine that is at least as good as rybka 1.2f.. I presume we shall see your engines shortly. I look forward to the high quality work


Or......Rybka is at the head of a chess engine revolution...Rybka and now other engines are playing qualitatively differently than they did before (e.g., in the days of fruit 2.1).





best
Joseph
Alexander Schmidt
Posts: 1235
Joined: Thu May 10, 2007 2:49 pm

Re: strelka 2.0

Post by Alexander Schmidt »

ozziejoe wrote:Of course if rybka is a clone of fruit than it must be a clone on steroids.

Rybka 1.0 64-bit 2921

Fruit 2.1 2796

Wow, what a clone.
If you have a new genuine idea in computerchess, implement this in an open source engine, and the result is a by 100 ELO improved engine it is still a clone.

About Rybka and Fruit similaries look at this:

http://talkchess.com/forum/viewtopic.ph ... ht=#154628


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

Re: strelka 2.0

Post by ozziejoe »

Back when rybka was first released, I posted a number of positions where rybka and fruit differed radically. the early rybka basically showed a strong preference for mobility over pawn structure and material..Fruit, in contrast, tended to make the ultrasound moves.

I think there are three arguments against the notion that irybka and strelka are clones of fruit

1) Fabien said that strelka was not a clone of fruit (as quoted by uri).

2) rybka plays radically different from fruit. I won't go into demonstations yet again, but there were a number of us who showed these differences.

3) Vas has shown a great deal of talent in developing rybka, and improved it massively. this is at least consistent with him having the ability to develop rybka without having to steal lines of code from fruit.


None of these arguments are 100% proof of anything, I admit. For example Fabien could just be being nice when he says strelka is not a fruit rip off.. also, Perhaps small changes in fruit code could lead to the massive differences we observe between fruit and rybka. etc.

Alas.


J