Page 1 of 2

Monte Carlo

Posted: Mon Nov 29, 2010 2:30 am
by BB+
In another thread, some initial experiments with the new IvanHoe Monte Carlo function were reported.

Here is another example:
r1b2rk1/2qn1ppp/p1p1pn2/1p4N1/3PP3/2N5/PPQ1BPPb/R1B2R1K b - - 0 13

As KLO did, I used "go montecarlo depth 10 cpus 4 moves c6c5 h7h6" -- in a "normal" search, IvanHoe will bobble between these moves (favouring h7h6 a tad it seems).

After just a few minutes (about the "normal" search time, perhaps), it was fairly clear which was doing better:

Code: Select all

c6c5  +36  -36 =225 50%
h7h6  +23 -104 =160 36%
The sample is a bit small (about 300 games each), but this already quite significant.

Some more comments: firstly, the position is notably drawish (75% for c5), even at these speeds (I do not know why, maybe it's just the way the Semi-Slav is). Also, it is not that clear to me that 10 ply searches are that trenchant here. But it's a result, at least.

Re: Monte Carlo

Posted: Mon Nov 29, 2010 2:44 am
by BB+
I ran another 5-minute sample on the same position and got:

Code: Select all

c6c5  +30 -37 =189  49%
h7h6  +21 -79 =134  38%
There also seems to be some way to limit the length of the Monte Carlo analysis (and also a min/max window as a "resignation" criterion), which could be useful in making the runs go faster. I used 256MB hash for this, though I don't know influence that has.

EDIT: Another possible move is b5b4 (IvanHoe likes this at a few smaller depths), but it does not do as well (+66-104=368 for 46% -- with the draw ratio so high, the error margins are likely such that c6c5 is distinctly better).

Re: Monte Carlo

Posted: Mon Nov 29, 2010 3:40 am
by kingliveson
BB+ wrote:The Rybka conversion table by George Tsavdaris is in the thread http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=6012

Code: Select all

Rybka's eval | % expected score
       0.01         50.43 %
       0.10         54.3 %   
       0.20         58.5 %   
       0.30         62.7 %    
       0.40         66.6 %   
       0.50         70.3 %    
       0.80         79.9 %    
       0.90         82.6 %    
       1.00         84.9 %    
       1.10         87.0 %     
       1.20         88.8 %    
       1.30         90.4 %    
       1.40         91.8 %    
       1.50         93.0 %    
       1.60         94.1 %    
Tables are based on the assumptions:
•Rybka's evaluation score is proportional to the ELO rating difference.
•It is true that 3 ELO difference corresponds to 0.01 evaluation score of Rybka.

VR says: "[...] based on 8 ply monte carlo data [...] roughly we can say that each centipawn of Rybka eval is worth 3 Elo points on average. My earlier work on opening evals of the different versions used 2.5 Elo per centipawn, but this value was pretty much just based on the opening position, so I would have much more confidence in the 3 Elo figure."
.
.
.
Snipped your post from the other thread. When I have some time coming in the next 2 weeks, perhaps it would be interesting to see if the centi-pawn to win % conversion table can be mirrored with IvanHoe or create it's own table. Using Monte Carlo, not sure what depth would be appropriate and how much sample data would produce the most "accurate" results.

Re: Monte Carlo

Posted: Mon Nov 29, 2010 4:48 am
by kingliveson
r1b2rk1/2qn1ppp/p1p1pn2/1p4N1/3PP3/2N5/PPQ1BPPb/R1B2R1K b - - 0 1

Analysis by IvanHoe 9.49b x64 Analyzer:

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Na4 g4
= (-0.12) Depth: 6 00:00:00 8kN

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Na4 g4
= (-0.12) Depth: 6 00:00:00 9kN

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Ne4 Nxe4 5.Qxe4 Nf6
= (-0.14) Depth: 7 00:00:00 9kN

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Ne4 Nxe4 5.Qxe4 Nf6
= (-0.14) Depth: 7 00:00:00 11kN

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Ne4 Nxe4 5.Qxe4 Nf6
= (-0.06 --) Depth: 8 00:00:00 14kN

1...h6 2.e5 hxg5 3.Kxh2 b4 4.Ne4 Nxe4 5.Qxe4 Nf6
= (0.02 --) Depth: 8 00:00:00 16kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 dxc3 6.fxg7
= (0.11) Depth: 8 00:00:00 17kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 dxc3 6.fxg7
= (0.11) Depth: 8 00:00:00 20kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 dxc3 6.fxg7
= (0.03 ++) Depth: 9 00:00:00 27kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 dxc3 6.fxg7
= (-0.05 ++) Depth: 9 00:00:00 29kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 dxc3 6.fxg7 Kxg7 7.Bf3 Bb7 8.Bxb7 Qxb7 9.Qxc3+ Kg6
= (-0.17 ++) Depth: 9 00:00:00 32kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 Nxf6 6.Bf3 Bb7 7.Bxb7 Qxb7 8.Ne2
= (-0.13) Depth: 9 00:00:00 34kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 Nxf6 6.Bf3 Bb7 7.Bxb7 Qxb7 8.Ne2
= (-0.13) Depth: 9 00:00:00 47kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 Nxf6 6.Bf3 Bb7 7.Bxb7 Qxb7 8.Ne2
= (-0.21 ++) Depth: 10 00:00:00 64kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 Nxf6 6.Bf3 Bb7 7.Bxb7 Qxb7 8.Ne2
= (-0.05 --) Depth: 10 00:00:00 136kN

1...h6 2.e5 hxg5 3.Kxh2 c5 4.Kg1 cxd4 5.exf6 Nxf6 6.Bf3 Bb7 7.Bxb7 Qxb7 8.Ne2
= (0.07 --) Depth: 10 00:00:00 159kN

1...h6 2.Nf3 b4 3.Nxh2 bxc3 4.bxc3 c5 5.e5 Nd5 6.Ba3 cxd4 7.Bxf8 Nxf8
= (0.15) Depth: 10 00:00:00 163kN

1...h6 2.Nf3 b4 3.Nxh2 bxc3 4.bxc3 c5 5.e5 Nd5 6.Ba3 cxd4 7.Bxf8 Nxf8
= (0.15) Depth: 10 00:00:00 185kN

1...b4
= (0.07 ++) Depth: 11 00:00:00 226kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 h6 6.Bd2 Bb7 7.Qe4
= (0.03) Depth: 11 00:00:00 252kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 h6 6.Bd2 Bb7 7.Qe4
= (0.03) Depth: 11 00:00:00 300kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 h6 6.Bd2 Bb7 7.Qe4 a5
= (0.11 --) Depth: 12 00:00:00 424kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 12 00:00:00 481kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 12 00:00:00 481kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 13 00:00:00 560kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 13 00:00:00 666kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 14 00:00:00 829kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5
= (0.07) Depth: 14 00:00:00 1028kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5 9.Qh4 h6
= (0.15 --) Depth: 15 00:00:00 2273kN

1...b4 2.Na4 Bf4 3.e5 Bxg5 4.Bxg5 Nd5 5.Rac1 Bb7 6.Qe4 Rae8 7.Bd2 f6 8.Bd3 f5 9.Qh4 h6
= (0.23 --) Depth: 15 00:00:00 2957kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Nb6 7.a3 Nd5 8.Nc5 Rd8 9.Nd2 Nf4
= (0.18) Depth: 15 00:00:01 4068kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Nb6 7.a3 Nd5 8.Nc5 Rd8 9.Nd2 Nf4
= (0.18) Depth: 15 00:00:01 4068kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Nb6 7.a3 Rd8 8.Nc5 Nd7 9.Nxb7 Qxb7 10.Qc2 Rc8 11.Bd3 c5 12.Bh7+ Kh8
= (0.10 ++) Depth: 16 00:00:01 4712kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Nb6 8.Nc5 Nd5 9.Bd3 Nf4 10.Qb4
= (0.09) Depth: 16 00:00:01 4948kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Nb6 8.Nc5 Nd5 9.Bd3 Nf4 10.Qb4
= (0.09) Depth: 16 00:00:01 5384kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Nb6 8.Nc5 Nd5 9.Bd3 Nf4 10.Qb4 Nxd3 11.Nxd3 a5 12.Qd2
= (0.17 --) Depth: 17 00:00:01 6945kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 c5 8.Nxc5 Nxc5 9.Rxc5 Qd7 10.Rd1 Nc7 11.Rdc1 Nd5
= (0.23) Depth: 17 00:00:02 7639kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 c5 8.Nxc5 Nxc5 9.Rxc5 Qd7 10.Rd1 Nc7 11.Rdc1 Nd5
= (0.23) Depth: 17 00:00:02 9830kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.Bd3 Nc7 9.Nd6 Nd5 10.Qc2 f5 11.a3 Nf4 12.Qd2
= (0.17) Depth: 18 00:00:03 14173kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.Bd3 Nc7 9.Nd6 Nd5 10.Qc2 f5 11.a3 Nf4 12.Qd2
= (0.17) Depth: 18 00:00:03 15826kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.Rfe1 Nc7 9.Bf1 Nd5 10.Nd6 c5 11.dxc5 Nxc5 12.Qc2 Nd7
= (0.19) Depth: 19 00:00:05 27724kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.Rfe1 Nc7 9.Bf1 Nd5 10.Nd6 c5 11.dxc5 Nxc5 12.Qc2 Nd7
= (0.19) Depth: 19 00:00:06 34415kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Qe4 fxe5 12.Nxe5 Nxe5 13.Qxe5 Rf6
= (0.16) Depth: 20 00:00:09 46508kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Qe4 fxe5 12.Nxe5 Nxe5 13.Qxe5 Rf6
= (0.16) Depth: 20 00:00:10 53882kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Nxb7 Qxb7 12.Qxc6 Qxc6 13.Rxc6 fxe5 14.Rxa6 e4 15.Ne5 Nxe5 16.dxe5
= (0.16) Depth: 21 00:00:12 67395kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Nxb7 Qxb7 12.Qxc6 Qxc6 13.Rxc6 fxe5 14.Rxa6 e4 15.Ne5 Nxe5 16.dxe5
= (0.16) Depth: 21 00:00:15 80925kN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Nxb7 Qxb7 12.Qxc6 Qxc6 13.Rxc6 fxe5 14.Rxa6 e4 15.Ne5 Nxe5 16.dxe5
= (0.16) Depth: 22 00:00:20 108mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Qb6 8.a3 Nc7 9.Nd6 Nd5 10.Qc2 f6 11.Nxb7 Qxb7 12.Qxc6 Qxc6 13.Rxc6 fxe5 14.Rxa6 e4 15.Ne5 Nxe5 16.dxe5
= (0.16) Depth: 22 00:00:25 139mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qa5 9.Bd3 Nc7 10.Bb1 Nd5 11.Nd6 f5 12.Rfe1 Qb6 13.Qc2 Qc7 14.g4 Ne7 15.Ba2
= (0.15) Depth: 23 00:00:49 279mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qa5 9.Bd3 Nc7 10.Bb1 Nd5 11.Nd6 f5 12.Rfe1 Qb6 13.Qc2 Qc7 14.g4 Ne7 15.Ba2
= (0.15) Depth: 23 00:00:59 333mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qa5 9.Bd3 Nc7 10.Bb1 Nd5 11.Nd6 f5 12.Rfe1 Qb6 13.Qc2 Qc7 14.g4 Ne7 15.Ba2
= (0.15) Depth: 24 00:01:12 412mN

1...c5
= (0.07 ++) Depth: 24 00:02:20 828mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 c2 8.Nf2 Rd8 9.b4 Rd4 10.Bb2 Qxf4 11.Qxf4 Rxf4 12.Bxf6 Rxf6 13.Rac1 Bb7 14.Rxc2 Rd8 15.a3 Rg6 16.Bg4 f5 17.Rc7 Bd5 18.Bf3 Bxf3 19.gxf3 Rd2 20.Kh2
= (0.12) Depth: 24 00:02:41 955mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 c2 8.Nf2 Rd8 9.b4 Rd4 10.Bb2 Qxf4 11.Qxf4 Rxf4 12.Bxf6 Rxf6 13.Rac1 Bb7 14.Rxc2 Rd8 15.a3 Rg6 16.Bg4 f5 17.Rc7 Bd5 18.Bf3 Bxf3 19.gxf3 Rd2 20.Kh2
= (0.12) Depth: 24 00:02:56 1041mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Nd5 14.Nd1 Re4 15.Kg1 Re2 16.Rf2 Re4 17.Rb1 Ra4 18.Rb2
= (0.14) Depth: 25 00:03:42 1319mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Nd5 14.Nd1 Re4 15.Kg1 Re2 16.Rf2 Re4 17.Rb1 Ra4 18.Rb2
= (0.14) Depth: 25 00:04:17 1519mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Nd5 14.Nd1 Re4 15.Kg1 Re2 16.Rf2 Re4 17.Rb1 Ra4 18.Rb2 Re4
= (0.15) Depth: 26 00:05:50 2086mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Nd5 14.Nd1 Re4 15.Kg1 Re2 16.Rf2 Re4 17.Rb1 Ra4 18.Rb2 Re4
= (0.15) Depth: 26 00:06:58 2479mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Rd8 14.Be1 Nd5 15.Rd1 Rdc8 16.f5 Nxc3 17.Bxc3 Rxc3 18.Rxc3 Rxc3 19.fxe6 fxe6 20.Rd8+ Kh7 21.Rd7 Rc2
= (0.20) Depth: 27 00:09:39 3468mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb6 9.Rfe1 a5 10.Qc2 Nc7 11.Bd3 Nd5 12.Nd6 f5 13.Qd2 b4 14.Bc4 c5 15.axb4 axb4 16.Ra1 Bc6 17.b3 cxd4
= (0.15) Depth: 27 00:21:09 7649mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb6 9.Rfe1 a5 10.Qc2 Nc7 11.Bd3 Nd5 12.Nd6 f5 13.Qd2 b4 14.Bc4 c5 15.axb4 axb4 16.Ra1 Bc6 17.b3 cxd4
= (0.15) Depth: 27 00:21:15 7685mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb7 9.Qe3 Qb8 10.Bd1 a5 11.Nfd2 f5 12.exf6 Nexf6 13.Nxf6+ Nxf6 14.Bb3 Qd6 15.Bxe6+ Kh8 16.Nf3 Rfe8 17.Rfe1 b4 18.axb4 axb4
= (0.19) Depth: 28 00:24:09 8730mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb7 9.Qe3 Qb8 10.Bd1 a5 11.Nfd2 f5 12.exf6 Nexf6 13.Nxf6+ Nxf6 14.Bb3 Qd6 15.Bxe6+ Kh8 16.Nf3 Rfe8 17.Rfe1 b4 18.axb4 axb4
= (0.19) Depth: 28 00:27:30 9924mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb6 9.Rfe1 a5 10.Bd3 b4 11.Rc4 Nc7 12.Bc2 Nd5 13.Nd6 g6 14.Qd3
= (0.18) Depth: 29 00:37:40 13660mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Rd8 7.Kg1 Ba8 8.a3 Qb6 9.Rfe1 a5 10.Bd3 b4 11.Rc4 Nc7 12.Bc2 Nd5 13.Nd6 g6 14.Qd3
= (0.18) Depth: 29 00:44:10 15997mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Qd8 7.Qa3 Rb8 8.Bd3 a5 9.Bb1 b4 10.Qb3 Qe7 11.Rfe1 Rc8 12.a3 f5 13.exf6 Nexf6 14.Nxf6+ Rxf6 15.Be4 Qd6 16.Qa4 bxa3 17.bxa3
= (0.19) Depth: 30 00:57:09 20817mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Rac8 10.Bf3 Bxf3 11.Rxf3 Rc4 12.Nf2 Rfc8 13.Bd2 Rd8 14.Be1 Nd5 15.Rd1 Rdc8 16.f5 Nxc3 17.Bxc3
= (0.10 ++) Depth: 30 01:34:51 35024mN

1...c5 2.e5 cxd4 3.exf6 Nxf6 4.f4 Bg3 5.Qd3 dxc3 6.Qxg3 h6 7.Nh3 Bb7 8.Qxc3 Qxc3 9.bxc3 Ne4 10.Rf3 Rac8 11.c4 bxc4 12.Nf2 Nxf2+ 13.Rxf2 Rfd8 14.Kg1 c3 15.Rf1 c2 16.Re1 Rb8 17.a4 a5 18.Kf2 Kh7 19.Ke3 g6
= (0.24) Depth: 30 01:43:19 38161mN

1...h6 2.Nf3 Bf4 3.e5 Bxc1 4.Raxc1 Ne8 5.Ne4 Bb7 6.Qb3 Qd8 7.Qa3 Rb8 8.Bd1 f5 9.Nd6 Nxd6 10.exd6 Nf6 11.Bb3 Re8 12.Qc5 g6 13.Bc2 Nd7 14.Qa3 Qf6 15.Qe3 f4 16.Qe4
= (0.14) Depth: 30 02:09:41 47862mN

Re: Monte Carlo

Posted: Tue Nov 30, 2010 3:14 am
by kingliveson
After 30k+ games, here are the results. If we use analysis of the positions and the table posted above, the results are not far off. I used 64/8 MB Hash, PawnsHash respectively.
Monte Carlo Result

Move: c6c5
Occurrence: 15548
1-0: 4761 = 30.62%
1/2-1/2: 10307 = 66.29%
0-1: 480 = 3.09%
--------------
Move: h7h6
Occurrence: 15559
1-0: 3959 = 25.45%
1/2-1/2: 10387 = 66.76%
0-1: 1213 = 7.80%
--------------
*Final Result*

Games: 31107
1-0: 8720 = 28.03%
1/2-1/2: 20694 = 66.53%
0-1: 1693 =  5.44%
--------------
position fen r1b2rk1/2qn1ppp/p1p1pn2/1p4N1/3PP3/2N5/PPQ1BPPb/R1B2R1K b - - 0
go montecarlo depth 12 cpus 4 moves c6c5 h7h6
It would be nice if Crafty had such feature to see how these results correlate. Furthermore, this is a great feature for IvanHoe to have included. They said the next plan is implementing output of the stats in the upcoming GUI.

Re: Monte Carlo

Posted: Tue Nov 30, 2010 3:27 am
by BB+
I used 64/8 MB Hash, PawnsHash respectively.
My understanding would be that this should suffice for games this fast. Admittedly, you are really only getting 16MB per cpu when you use 4 cpus, but it would take around a 1-second search to fill up that much hash, and a "depth 10" search is typically takes less than 1/10 of that.

Oh, I just remembered, for the quotation from VR about "8 ply monte carlo data", recall that you need the add 3 to his number to get typical depths.

Re: Monte Carlo

Posted: Tue Nov 30, 2010 3:31 am
by kingliveson
BB+ wrote:
I used 64/8 MB Hash, PawnsHash respectively.
My understanding would be that this should suffice for games this fast. Admittedly, you are really only getting 16MB per cpu when you use 4 cpus, but it would take around a 1-second search to fill up that much hash, and a "depth 10" search is typically takes less than 1/10 of that.

Oh, I just remembered, for the quotation from VR about "8 ply monte carlo data", recall that you need the add 3 to his number to get typical depths.

Yes, that's why I used depth 12. 11 and 15 were considered, but settled on 12. I might redo the positions from the other thread as well.

Re: Monte Carlo

Posted: Tue Nov 30, 2010 3:41 am
by BB+
Now that I read your post fully, I see that the results for c6c5 and h7h6 over 30K games at depth 12 are in discrepancy to what I found at depth 10.

You have h7h6 is +1213 - 3959 =10387 for 41.7%, while c6c5 is now worse at +480 -4761 =10307 for 36.2%. So I guess the "depth" parameter can have some significance.

Re: Monte Carlo

Posted: Tue Nov 30, 2010 5:34 am
by BB+
The IvanHoe Monte Carlo seems much different than that in R3 as described here by Steven Lopez. My understanding is that R3 is doing some sort of "likelihood analysis" in forming a tree. I'm not sure how Monte Carlo relates to the "sampled search" and/or the "Randomizer" (a related blurb is here though I don't think any documentation yet exists). At least for sampled search, the messages look like:

Code: Select all

info sample isworse %s %s
info sample %s isbetter
info sample %s issearching
info sample %s isunclear
info sample %s %s
info sample %s %s [ isbetter %s ] %s
info sample %s %s %s
info sample %s %s [ %s isunclear ] %s
There is also "ismuchbetter" I think.

See also http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=6232
LK: "MC uses the basic Rybka engine to do the playouts, but there are some differences in the implementation in ChessBase. I believe that ChessBase made some changes to the implementation that I recommended, which I think should result in a higher quality of moves that qualify for the MC playouts."
And http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=5226
LK: "I believe that the way MC is done in Rybka 3, it will only try moves in the initial position that appear to be within some margin of the best move. There are just three options for this margin, narrow, medium, and wide. I don't know the exact number of centipawns each corresponds to. If you really want to try all legal moves from some position, you can always play them one by one and have the randomizer evaluate each one. For me the MC is more useful for getting an evaluation of a non-tactical position than for finding the right move."

Re: Monte Carlo

Posted: Tue Nov 30, 2010 5:47 am
by BB+
In the last link of above:
LK: "For now, I can give you one clear use. Let's say that you are analyzing some position in two variation mode on Rybka 3, and you want to know the best move. If the two choices show as almost the same value (let's say 1 or 2 centipawns different), then run the MC on the two positions arising after each of those two moves, at whatever depth will allow you a few hundred games in the time you want to allot for this. If the MC shows a much better score for one position than the other, it is probably a better move."
AS: "How sure are you that this is better than flipping a coin?"
LK: "99%. The one percent doubt is because I haven't spent that much time with MC yet."

Given that KLO and I compiled rather distinct MC results at 10 and 12 ply for the main position of this thread (c6c5 won easily at 10 ply, while h7h6 won almost as easily at 12 ply), there probably needs to be more codification of its exact acumen

Slightly before that exchange:
LK: "Each extra ply beyond five nearly doubles the time, so cuts the sample size in half for any set time. In general, I would go with bigger sample size given this tradeoff, at least up to a couple hundred games. Of course for overnight analysis you can use much deeper searches and still get big samples."
[I really miss LK's opinion/insights (even if I disagree often)].

More discussion appears in: http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=5030
A quasi-technical post is: http://rybkaforum.net/cgi-bin/rybkaforu ... ?pid=78794
VZ: "2) Some work at the root of the tree GUI makes itself. It is really more effective than to run the same moves from root position again and again. [...] The major difference of IDeA method that it builds tree evaluating positions while Monte-Carlo gathers statistics. In most cases evaluating is more right way. But there are number of positions with long play where Randomizer can give interesting results."

A pre-R3 discussion is: http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=3061