What's Strelka's Secret Sauce?

Discussion of chess software programming and technical issues.

Moderator: Ras

Andrej Sidorov

Re: What's Strelka's Secret Sauce?

Post by Andrej Sidorov »

ernest wrote: "material tables", which Strelka simply took and copied from Rybka 1.0 Beta, which bring about the great leap in strength (+100 Elo)
Please show me this tables in executable of Rybka 1.0 Beta and Strelka src.
ernest
Posts: 2047
Joined: Wed Mar 08, 2006 8:30 pm

Re: What's Strelka's Secret Sauce?

Post by ernest »

Andrej Sidorov wrote:Please show me this tables in executable of Rybka 1.0 Beta and Strelka src.
This was a discussion concerning the first Strelka (May 2007) and Strelka 1.8
See the threads:

About strelka1.8 sources
http://www.talkchess.com/forum/viewtopi ... highlight=
and
Finally I have sent Strelka's tables to Mr. Conkie
http://www.talkchess.com/forum/viewtopi ... highlight=
Andrej Sidorov

Re: What's Strelka's Secret Sauce?

Post by Andrej Sidorov »

ernest wrote:
Andrej Sidorov wrote:Please show me this tables in executable of Rybka 1.0 Beta and Strelka src.
This was a discussion concerning the first Strelka (May 2007) and Strelka 1.8
See the threads:

About strelka1.8 sources
http://www.talkchess.com/forum/viewtopi ... highlight=
and
Finally I have sent Strelka's tables to Mr. Conkie
http://www.talkchess.com/forum/viewtopi ... highlight=
So what? Nobody can find and show me any similar tables, but everybody says about
ernest wrote: "material tables", which Strelka simply took and copied from Rybka 1.0 Beta, which bring about the great leap in strength (+100 Elo),
I don't understand this contradiction, explain me please.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What's Strelka's Secret Sauce?

Post by bob »

Uri Blass wrote:
Eelco de Groot wrote:Okay thanks Uri. It is strange, not the bitbases then! Then it must be something in the search from Toga as Robert Hyatt already suggested could be the case. But I'm off topic! Re Strelka there is of course also the passed pawn handling which seems good. But I'll leave that for you to discuss, hope it is not from Rybka code!

Eelco
I agree that there is interesting stuff about passed pawn in strelka
that may help

The passed pawn stuff in strelka is hided by not significant variables and I changed them to significant variables but looking at games I find significant evaluation difference that is not about passed pawns(and also not about material imbalance) even if I looked at depth 1 games so search does not hide information from me.

Here is an example
You can see that strelka2 evaluates the position as more than 0.5 pawn for white when fruit2.1 evaluates it as close to 0.00 at small depth.

No passed pawn and no material imbalance and I even changed the position so no good capture is possible and both programs show the same pv.
Why the difference of more than 0.5 pawn in the evaluation?
The only reason is that strelka is different than fruit and all the people who think that strelka2.0 is fruit2.1 with small changes like imbalance material or passed pawn stuff or bitboards should understand that they are clearly wrong.

New game - Strelka 2.0 B, 10'/40
8 
7 
6 
5 
4 
3 
2 
1 
abcdefgh

r2q1rk1/pppbppbp/2np1np1/8/2BPPB2/5N2/PPP2PPP/RN1Q1R1K w - - 0 1

Analysis by Strelka 2.0 B:

10.Nb1-c3
= (0.22) Depth: 1 00:00:00
10.Nb1-c3 Nc6-b4
= (0.03) Depth: 2 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3
= (0.10) Depth: 3 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3 Nf6-g4
= (0.02) Depth: 4 00:00:00

New game - Strelka 2.0 B
r2q1rk1/pppbppbp/2np1np1/8/2BPPB2/5N2/PPP2PPP/RN1Q1R1K w - - 0 1

Analysis by Fruit 2.1:

10.Nb1-d2
² (0.46) Depth: 1/1 00:00:00
10.Nb1-c3
± (0.84) Depth: 1/2 00:00:00
10.Nb1-c3 Nc6-b4
² (0.60) Depth: 2/7 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3
² (0.66) Depth: 3/8 00:00:00
(, 04.02.2008)
That clears things up and I have figured it out. It is a _crafty_ clone. Here is Crafty's search output for that position:

Code: Select all

              time surplus   0.00  time limit 22.50 (+0.00) (3:30)
              depth   time  score   variation (1)
                1     0.00   1.14   1. Nc3     (31Knps)             
                1->   0.00   1.14   1. Nc3     (35Knps)             
                2     0.00   0.96   1. Nc3 Ng4 (35Knps)             
                2->   0.00   0.96   1. Nc3 Ng4 (61Knps)             
                3     0.00   1.00   1. Nc3 Be6 2. Bxe6 fxe6         
                3->   0.00   1.00   1. Nc3 Be6 2. Bxe6 fxe6          
                4     0.01   0.82   1. Nc3 Na5 2. Be2 Ng4            
                4->   0.01   0.82   1. Nc3 Na5 2. Be2 Ng4            
                5     0.01   0.85   1. Nc3 Na5 2. Be2 Ng4 3. Qd3     
                5->   0.02   0.85   1. Nc3 Na5 2. Be2 Ng4 3. Qd3     
                6     0.04   0.84   1. Nc3 Ng4 2. Qd3 Nb4 3. Qe2 e6  
                6->   0.05   0.84   1. Nc3 Ng4 2. Qd3 Nb4 3. Qe2 e6  
                7     0.10   0.63   1. Nc3 Ng4 2. Bg5 Na5 <HT>       
                7->   0.13   0.63   1. Nc3 Ng4 2. Bg5 Na5 <HT>       
                8     0.21   0.60   1. Nc3 Bg4 2. Be2 Nh5 3. Be3 Qd7 4.
                                    d5 Bxc3 5. bxc3 Bxf3 6. Bxf3
                8->   0.28   0.60   1. Nc3 Bg4 2. Be2 Nh5 3. Be3 Qd7 4.
                                    d5 Bxc3 5. bxc3 Bxf3 6. Bxf3
{note to those too stupid to recognize sarcasm: this is real output, and shows how just looking at output can lead you to the wrong conclusion without _much_ more data... Very similar scores don't prove anything. Similar PVs don't prove anything. Without careful testing, similar scores _and PVs don't prove anything... There is much more to recognizing a clone than this simplistic kind of analysis...}
Uri Blass
Posts: 10801
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What's Strelka's Secret Sauce?

Post by Uri Blass »

bob wrote:
Uri Blass wrote:
Eelco de Groot wrote:Okay thanks Uri. It is strange, not the bitbases then! Then it must be something in the search from Toga as Robert Hyatt already suggested could be the case. But I'm off topic! Re Strelka there is of course also the passed pawn handling which seems good. But I'll leave that for you to discuss, hope it is not from Rybka code!

Eelco
I agree that there is interesting stuff about passed pawn in strelka
that may help

The passed pawn stuff in strelka is hided by not significant variables and I changed them to significant variables but looking at games I find significant evaluation difference that is not about passed pawns(and also not about material imbalance) even if I looked at depth 1 games so search does not hide information from me.

Here is an example
You can see that strelka2 evaluates the position as more than 0.5 pawn for white when fruit2.1 evaluates it as close to 0.00 at small depth.

No passed pawn and no material imbalance and I even changed the position so no good capture is possible and both programs show the same pv.
Why the difference of more than 0.5 pawn in the evaluation?
The only reason is that strelka is different than fruit and all the people who think that strelka2.0 is fruit2.1 with small changes like imbalance material or passed pawn stuff or bitboards should understand that they are clearly wrong.

New game - Strelka 2.0 B, 10'/40
8 
7 
6 
5 
4 
3 
2 
1 
abcdefgh

r2q1rk1/pppbppbp/2np1np1/8/2BPPB2/5N2/PPP2PPP/RN1Q1R1K w - - 0 1

Analysis by Strelka 2.0 B:

10.Nb1-c3
= (0.22) Depth: 1 00:00:00
10.Nb1-c3 Nc6-b4
= (0.03) Depth: 2 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3
= (0.10) Depth: 3 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3 Nf6-g4
= (0.02) Depth: 4 00:00:00

New game - Strelka 2.0 B
r2q1rk1/pppbppbp/2np1np1/8/2BPPB2/5N2/PPP2PPP/RN1Q1R1K w - - 0 1

Analysis by Fruit 2.1:

10.Nb1-d2
² (0.46) Depth: 1/1 00:00:00
10.Nb1-c3
± (0.84) Depth: 1/2 00:00:00
10.Nb1-c3 Nc6-b4
² (0.60) Depth: 2/7 00:00:00
10.Nb1-c3 Nc6-a5 11.Bc4-d3
² (0.66) Depth: 3/8 00:00:00
(, 04.02.2008)
That clears things up and I have figured it out. It is a _crafty_ clone. Here is Crafty's search output for that position:

Code: Select all

              time surplus   0.00  time limit 22.50 (+0.00) (3:30)
              depth   time  score   variation (1)
                1     0.00   1.14   1. Nc3     (31Knps)             
                1->   0.00   1.14   1. Nc3     (35Knps)             
                2     0.00   0.96   1. Nc3 Ng4 (35Knps)             
                2->   0.00   0.96   1. Nc3 Ng4 (61Knps)             
                3     0.00   1.00   1. Nc3 Be6 2. Bxe6 fxe6         
                3->   0.00   1.00   1. Nc3 Be6 2. Bxe6 fxe6          
                4     0.01   0.82   1. Nc3 Na5 2. Be2 Ng4            
                4->   0.01   0.82   1. Nc3 Na5 2. Be2 Ng4            
                5     0.01   0.85   1. Nc3 Na5 2. Be2 Ng4 3. Qd3     
                5->   0.02   0.85   1. Nc3 Na5 2. Be2 Ng4 3. Qd3     
                6     0.04   0.84   1. Nc3 Ng4 2. Qd3 Nb4 3. Qe2 e6  
                6->   0.05   0.84   1. Nc3 Ng4 2. Qd3 Nb4 3. Qe2 e6  
                7     0.10   0.63   1. Nc3 Ng4 2. Bg5 Na5 <HT>       
                7->   0.13   0.63   1. Nc3 Ng4 2. Bg5 Na5 <HT>       
                8     0.21   0.60   1. Nc3 Bg4 2. Be2 Nh5 3. Be3 Qd7 4.
                                    d5 Bxc3 5. bxc3 Bxf3 6. Bxf3
                8->   0.28   0.60   1. Nc3 Bg4 2. Be2 Nh5 3. Be3 Qd7 4.
                                    d5 Bxc3 5. bxc3 Bxf3 6. Bxf3
{note to those too stupid to recognize sarcasm: this is real output, and shows how just looking at output can lead you to the wrong conclusion without _much_ more data... Very similar scores don't prove anything. Similar PVs don't prove anything. Without careful testing, similar scores _and PVs don't prove anything... There is much more to recognizing a clone than this simplistic kind of analysis...}
My claim was not that strelka is a fruit clone.

I claimed that the evaluation of fruit is clearly different than the evaluation of strelka even when the material is balanced and there are no passed pawns.

I chose positions when the pv is the same not to say that strelka is a fruit clone but to show that material imbalance or passed pawns are not the only significant difference in evaluation between strelka and fruit(more than 0.5 pawn difference in position when there is no passed pawns and the material of both sides is the same).

Uri
Uri Blass
Posts: 10801
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What's Strelka's Secret Sauce?

Post by Uri Blass »

Andrej Sidorov wrote:
ernest wrote:
Andrej Sidorov wrote:Please show me this tables in executable of Rybka 1.0 Beta and Strelka src.
This was a discussion concerning the first Strelka (May 2007) and Strelka 1.8
See the threads:

About strelka1.8 sources
http://www.talkchess.com/forum/viewtopi ... highlight=
and
Finally I have sent Strelka's tables to Mr. Conkie
http://www.talkchess.com/forum/viewtopi ... highlight=
So what? Nobody can find and show me any similar tables, but everybody says about
ernest wrote: "material tables", which Strelka simply took and copied from Rybka 1.0 Beta, which bring about the great leap in strength (+100 Elo),
I don't understand this contradiction, explain me please.
This is very simple.
I understood that Strelka1.0b had the same tables

I guess that
Strelka2 also generate the same tables but strelka2 use a function to do it instead of using a big array.

Uri
Andrej Sidorov

Re: What's Strelka's Secret Sauce?

Post by Andrej Sidorov »

Uri Blass wrote: I guess that Strelka2 also generate the same tables but strelka2 use a function to do it instead of using a big array.
You guess or you know that?
What is that function? Is it copypasted from somewhere?
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: What's Strelka's Secret Sauce?

Post by Michael Sherwin »

Andrej Sidorov wrote:
Uri Blass wrote: I guess that Strelka2 also generate the same tables but strelka2 use a function to do it instead of using a big array.
You guess or you know that?
What is that function? Is it copypasted from somewhere?
The author of strelka was reported to have made the claim that he reduced Strelka's exacutable size by replacing some tables with functionals.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Uri Blass
Posts: 10801
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What's Strelka's Secret Sauce?

Post by Uri Blass »

Andrej Sidorov wrote:
Uri Blass wrote: I guess that Strelka2 also generate the same tables but strelka2 use a function to do it instead of using a big array.
You guess or you know that?
What is that function? Is it copypasted from somewhere?
The function is calc_material() and the table is the Material table.

I guess when this guess is based on the similiarity between strelka1.8 and rybka and based on the fact that I read that strelka1.0b use the same tables as rybka.

It is possible that these tables were changed in strelka2 but I do not know if they were changed.

I guess that somebody can prove it if he is interested to do it but I am not interested in proving it and I choose to believe logical assumptions.

Uri
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: What's Strelka's Secret Sauce?

Post by Bill Rogers »

Sidorov
The author of Rybka looked at Stelka's programming and told the world that it had stolen most of his code from an earlier version of Rybka.
Being that was the case as no one doubted his word right after Stelka code was released those who had posted the like as to where it could be found removed the link as it was more or less pirated software.
A few people did manage to download the Streka source before all of this could be determined and apearantly with respect to Rybka author will no longer release that code, so your request to see the source of both programs is now and most likely will be be shown.
I realize that this must be frustrating but Rybkas source was never released to the public and therefore unless the original author releases it, its secrets will remain hidden along with that portion of Strelka that copied Rybka code.
Bill
[/code]