Page 1 of 1

What Strelka tells about Rybka's nodecount and depth

Posted: Mon Jul 09, 2007 5:10 pm
by ernest
We get a confirmation that

Rybka nodecount = "real nodecount" divided by 10 to 20
(reverse analysis performed on Rybka by John L. Jerz found: divided by 14)

Rybka depth = "real depth" minus 2


Using for instance test #2 from Michael Gurevich's WM-Test(100):
r1q2rk1/p2bb2p/1p1p2p1/2pPp2n/2P1PpP1/3B1P2/PP2QR1P/R1B2NK1 b - -

Engine: Rybka 1.0 Beta 32-bit (256 MB) by Vasik Rajlich
8.00 0:00 +0.23 1...Nf6 2.Nd2 Qc7 3.b3 Kg7 (55.808) 191
9.00 0:00 +0.25 1...Nf6 2.Nd2 Qc7 3.b3 a5 4.Bb2 (76.032) 207
10.00 0:00 +0.23 1...Nf6 2.Nd2 Kg7 3.b3 Qa6 4.Bb2 Ne8 (126.848) 218
11.01 0:01 +0.26 1...Nf6 2.Nd2 a5 3.Nb1 Nxg4 4.fxg4 Bxg4 5.Rf3 Bh5 6.Nd2 (234.277) 228
12.01 0:02 +0.23 1...Nf6 2.Nd2 a5 3.a4 Qc7 4.b3 Kg7 5.Bb2 Ng8 (567.133) 233
13.01 0:04 +0.21 1...Nf6 2.Nd2 Kg7 3.b3 Qa6 4.Bb2 Qa5 5.Rff1 a6 6.a3 (1.036.076) 237
13.02 0:05 +0.73 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.Bh6 (1.276.837) 224
14.01 0:07 +0.78 1...Bxg4 2.fxg4 f3 3.Qc2 Qxg4+ 4.Kh1 Bh4 5.Bh6 Bxf2 6.Qxf2 (1.518.522) 220
15.01 0:11 +0.90 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.a3 (2.259.528) 225
best move: Bd7xg4 time: 0:29.640 min n/s: 202.752 nodes: 5.677.056

Engine: Strelka 1.8 UCI (256 MB) by Jury Osipov
10.00 0:00 +0.25 1...Nf6 2.Nd2 Qa6 3.Nb3 Ba4 4.Qd1 b5 5.g5 Nh5 6.cxb5 Bxb5 (493.065) 1853
11.35 0:00 +0.25 1...Nf6 2.Nd2 Qc7 3.b3 a5 4.Bb2 a4 5.Rff1 axb3 6.axb3 Kg7 7.g5 (748.970) 1844
12.35 0:00 +0.21 1...Nf6 2.Nd2 Qc7 3.b3 a5 4.Bb2 a4 5.Rff1 Kg7 6.g5 Nh5 7.Qg2 axb3 8.axb3 (1.204.763) 1792
13.35 0:01 +0.26 1...Nf6 2.Nd2 a5 3.Nb1 Nxg4 4.fxg4 Bxg4 5.Rf3 Bh5 6.Nd2 Qd7 7.b3 a4 8.Ba3 Bxf3 9.Nxf3 axb3 10.axb3 (2.058.031) 1829
14.35 0:02 +0.24 1...Nf6 2.Nd2 a5 3.a4 Qc7 4.b3 Kg7 5.Rf1 h6 6.Bb2 Rh8 7.Bc3 h5 8.g5 (4.559.434) 1870
15.35 0:05 +0.73 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.Bh6 Rf6 7.Qd2 Nf4 8.Bxf4 exf4 9.Qc3 Re8 10.Re1 (11.734.770) 1981
16.35 0:07 +0.91 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.a4 Nf4 7.Bxf4 exf4 8.Ra3 Rae8 9.a5 bxa5 10.Rxa5 Rf7 (14.525.551) 1999
17.35 0:08 +0.93 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.a4 Nf4 7.Bxf4 exf4 8.Ra3 Rae8 9.a5 Rf7 10.axb6 axb6 11.Rd2 Bf6 (18.240.777) 2037
18.35 0:27 +1.25 1...Bxg4 2.fxg4 f3 3.Qc2 Qxg4+ 4.Kh1 Bh4 5.Bh6 Rf7 6.h3 Qxh3+ 7.Rh2 Qg4 8.Bd2 Raf8 9.Qd1 Bg3 10.Ne3 Qd7 11.Rxh5 gxh5 (56.260.524) 2062
best move: Bd7xg4 time: 0:33.609 min n/s: 2.090.260 nodes: 70.251.553

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Mon Jul 09, 2007 5:17 pm
by mclane
what is the intention to divide the NPS ? or to change the search-depth into something else.
that sounds very strange to me.

the only explanation i would have is , that somebody does not want to be related with someone else' program.

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Mon Jul 09, 2007 6:57 pm
by Werner
ernest wrote:We get a confirmation that

Rybka nodecount = "real nodecount" divided by 10 to 20
(reverse analysis performed on Rybka by John L. Jerz found: divided by 14)

Rybka depth = "real depth" minus 2


Using for instance test #2 from Michael Gurevich's WM-Test(100):
r1q2rk1/p2bb2p/1p1p2p1/2pPp2n/2P1PpP1/3B1P2/PP2QR1P/R1B2NK1 b - -

13.02 0:05 +0.73 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.Bh6 (1.276.837) 224


Engine: Strelka 1.8 UCI (256 MB) by Jury Osipov

15.35 0:05 +0.73 1...Bxg4 2.fxg4 f3 3.Qd1 Qxg4+ 4.Kh1 Bh4 5.Rc2 Qh3 6.Bh6 Rf6 7.Qd2 Nf4 8.Bxf4 exf4 9.Qc3 Re8 10.Re1 (11.734.770) 1981
Hi Ernest,
please show me how to compare the nodecounts in this example:
1.276.837 -> 11.734.770

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Tue Jul 10, 2007 4:15 am
by tiger
From what I have seen with my experiences on Rybka 1.0 beta:

real depth = Rybka depth + 3.

This way, the author of Rybka can hide the end of the PV so static evaluations cannot be associated with positions (the evaluation of a line is the static evaluation of the last position in the line). This makes understanding how the program evaluates positions more difficult.

Dividing the number of positions searched by a large value (10 to 20) can be done in order to have people believe that your program is "slow" (has a low node per second value), which is generally popular. It also make it harder to understand the search algorithm.

Now assuming that you can create a "clone" of Rybka, why not use different masquerading values, like display a depth that is 2 less than the real depth and divide the number of position searched by some random value between 10 and 20?


// Christophe

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Tue Jul 10, 2007 6:25 am
by Gandalf
tiger wrote:From what I have seen with my experiences on Rybka 1.0 beta:

real depth = Rybka depth + 3.
No, looking at the Rybka 1.0 Beta executable you can see that the instruction at 0040d7c9 subtracts 2 from the depth before sending it to output.

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Tue Jul 10, 2007 1:28 pm
by ernest
Werner wrote: Hi Ernest,
please show me how to compare the nodecounts in this example:
1.276.837 -> 11.734.770
Hi Werner,
You are right here (factor is x9), but looking at more examples on the WM-Test (#1, #3, ...) you find factors from x8 to x25

By the way, Jerz's paper (not so easy to read...) is
http://mysite.verizon.net/vzesz4a6/current/id18.html

Of course all this has to take in account that Strelka is only "partly" :) a clone of Rybka 1.0 Beta.

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Tue Jul 10, 2007 7:25 pm
by tiger
ernest wrote:
Werner wrote: Hi Ernest,
please show me how to compare the nodecounts in this example:
1.276.837 -> 11.734.770
Hi Werner,
You are right here (factor is x9), but looking at more examples on the WM-Test (#1, #3, ...) you find factors from x8 to x25

By the way, Jerz's paper (not so easy to read...) is
http://mysite.verizon.net/vzesz4a6/current/id18.html

Of course all this has to take in account that Strelka is only "partly" :) a clone of Rybka 1.0 Beta.

In this paper you can see in the disassembled code that Vas subtract 3 from the real ply depth before it prints it. There is a comment in the assembler listing so it is easy to find. Actually he apparently count plies with a half ply counter (this allows for 0.5 ply extensions), so this value is first divided by 2, then 3 is subtracted from it.

This confirms that

Rybka's depth = real ply depth - 3

and

Strelka's depth = real ply depth - 1



// Christophe

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Wed Jul 11, 2007 4:37 am
by Gandalf
The article talks about Rybka 1.2f, while you mentioned that this was the case with Rybka 1.0 Beta. It seems they do two different things.

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Wed Jul 11, 2007 9:21 am
by tiger
Gandalf wrote:The article talks about Rybka 1.2f, while you mentioned that this was the case with Rybka 1.0 Beta. It seems they do two different things.

The 3 plies difference comes from my experience by looking at the output of the program (Rybka 1.0 beta) and letting it play against mine at fixed depth.


// Christophe

Re: What Strelka tells about Rybka's nodecount and depth

Posted: Wed Jul 11, 2007 4:31 pm
by Dr.Wael Deeb
tiger wrote:
Gandalf wrote:The article talks about Rybka 1.2f, while you mentioned that this was the case with Rybka 1.0 Beta. It seems they do two different things.

The 3 plies difference comes from my experience by looking at the output of the program (Rybka 1.0 beta) and letting it play against mine at fixed depth.


// Christophe
It's all clear now,it's a Rybka clone almost....