mhurd wrote:I think it was meant as a best variation after Rxh2. Rxh2 is in Rainbow Serpent's movelist continuously near the top but never considered very long. Apparently not enough compensation to compete with Qc5, but that does not get a winning score so in the end it is still a positional decision, unless the score for Rxh2 is losing, have not really tried the move but I don't think it is losing?
That is correct, I used stockfish to see what might have been played after Rxh2 perhaps I should have made this clear.
Mike
Thanks Louis and Mike!
As a follow up just some more computer analysis I made, to see if the computer can look deep enough in the Rook endgame after the Qc5 choice, I think it may be won but a computerprogram would have to look very very deep indeed to show enough progress, and maybe there are some side variations that would actually save White, but anyway looking deeper the score is reasonably steady going up for Black. Shaving off some bits of the search in Rainbow Serpent in the process hoping this version can look a bit deeper even with limited resources. There were some stupid bugs in the nextBestMove code eliminated. Version 044:
Engine: Rainbow Serpent 1.8(s)dc Build 044 (Athlon 2009 MHz, 256 MB)
by Tord Romstad, Marco Costalba, Joona Kiiski
1.00 0:00 -0.44 1...gxf4 (5.410) 21
2.00 0:00 -0.44 1...gxf4 2.Bxf4 (5.479) 21
2.00 0:00 -0.41 1...Qc5 2.Rhf1 (8.855) 35
3.00 0:00 0.00 1...Qc5 2.Qf3 Kb7 (16.713) 63
4.00 0:00 0.00 1...Qc5 2.Qf3 Nf2 3.Bg1 (32.208) 114
5.00 0:00 +0.32 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 Rxh2 6.Bxc6 (51.723) 165
6.00 0:00 +0.20 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 Rxh2 6.Bf3 (69.652) 203
6.00 0:00 +0.29 1...Rxh2 2.Rxh2 gxf4 3.Qf3 Re8 (218.969) 369
7.00 0:00 +0.33 1...Rxh2 2.Rxh2 gxf4 3.Qe1 Rc8 (232.429) 371
7.00 0:00 +0.70++ 1...Qc5 2.Qxc5 (243.876) 381
7.00 0:00 +0.92++ 1...Qc5 2.Qxc5 (245.347) 374
7.00 0:00 +1.30++ 1...Qc5 2.Qxc5 (249.164) 379
7.00 0:00 +1.85 1...Qc5 2.Qe2 Nf2 3.fxg5 Nxd1 4.Qxd1 (261.922) 389
8.00 0:00 +2.07 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxf4
7.Rd4 Rh3 (359.763) 426
9.00 0:00 +1.11 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.fxg5 Rxh2
7.Rd8+ Kb7 8.b4 (400.453) 442
10.01 0:01 +2.31 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Re1 Bf2
7.Rf1 Rh4 (497.999) 468
11.01 0:01 +2.07 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxf4
7.g4 Bc1 (645.152) 497
12.01 0:01 +1.49 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Rf1 Rf8 9.b3 f3 10.Kb2 (770.865) 513
13.01 0:01 +1.49 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Rf1 Rf8 9.b3 f3 10.Kb2 fxg2 (1.023.440) 545
14.01 0:02 +1.29 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Rf1 Rf8 9.Kc1 e3
10.Rh1 Rg8 11.Rh4 (1.197.998) 563
15.01 0:02 +1.59 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Rf1 e3 9.Ka2 Rh2
10.Rxf4 Rh3 (1.494.713) 579
16.01 0:03 +1.41 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Rf1 e3 9.Kc1 e2 10.Rg1 Rh5
11.Re1 Rh2 (2.018.995) 601
17.01 0:04 +1.46 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Kb7 9.Rf1 e3
10.Kd1 Rd8+ 11.Ke1 Rd2 12.Rxf4 c5 (3.009.046) 621
18.01 0:06 +1.57 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.b3 e3 11.Kd1 Kb7 12.Ke1 Kb6
13.Rh1 (4.087.876) 632
19.01 0:08 +1.53 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.b3 Kc8 11.a4 Kd7 12.Kb2 Ke7
13.Kc3 (5.490.307) 633
20.01 0:11 +1.73 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 Rg4
10.Re1 e3 11.Rf1 Kb7 12.g3 fxg3
13.Ke2 Rh4 14.Kf3 (7.466.059) 647
21.01 0:17 +1.65 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 Rg4 (11.456.744) 661
22.01 0:25 +1.45-- 1...Qc5 2.Qxc5 (17.248.464) 669
22.01 0:37 +1.49 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 Rg4
10.Re1 e3 11.Rf1 Kb7 12.g3 fxg3
13.Rg1 Rg5 14.Ke2 Kb6 (25.061.939) 676
23.01 0:40 +1.61 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 Rg5
10.Rf1 Rg4 11.Ke1 Kb7 12.Kf2 Rg5
13.Re1 (27.585.251) 678
24.01 1:03 +1.47 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 Rg5
10.Rf1 Rg4 11.Ke1 Kb7 12.Kf2 Rg5
13.Re1 (43.542.395) 688
25.01 1:50 +1.88++ 1...Qc5 2.Qxc5 (75.160.800) 680
25.01 1:57 +2.08++ 1...Qc5 2.Qxc5 (79.751.078) 680
25.01 2:00 +2.14 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rd8 9.Rf1 e3 10.b4 Rd5
11.c4 Rxe5 12.Kc2 Kb7 13.Kd3 e2
14.Re1 Re3+ (82.016.735) 680
26.01 2:56 +1.85 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 f3
10.Ke1 e3 11.Rf1 fxg2 12.Rg1 Rg3
13.Ke2 Kb7 14.b4 Kb6 (119.647.747) 677
27.01 4:17 +1.93 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 f3
10.Ke1 e3 11.Rf1 fxg2 12.Rg1 Kb7
13.Ke2 Rg3 (174.432.754) 676
28.01 6:57 +1.93 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd1 f3
10.Ke1 e3 11.Rf1 fxg2 12.Rg1 Kb7
13.Ke2 Rg3 (280.568.733) 672
29.01 10:02 +1.85-- 1...Qc5 2.Qxc5 (405.982.822) 673
29.01 18:24 +1.77-- 1...Qc5 2.Qxc5 (744.536.928) 674
29.01 21:21 +2.10++ 1...Qc5 2.Qxc5 (861.677.648) 672
29.01 21:24 +1.77 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.Kd1 Kb7 11.Re1 e3 12.Rf1 Kb6
13.g3 fxg3 14.Ke2 g2 (863.883.703) 672
30.01 22:51 +2.10++ 1...Qc5 2.Qxc5 (919.187.271) 670
30.01 23:18 +2.10 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd2 Rg5
10.g4 Kb7 11.c4 a5 12.b3 Kb6 13.Kc3 c5
14.Kd2 Kc6 (938.841.890) 671
31.01 28:21 +2.10 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd2 Rg5
10.g4 Kb7 (1.137.853.987) 668
32.01 48:50 +2.06 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Kd2 Kb7
10.Ke2 Kb6 11.Kf2 Kc5 12.Rd1 Rg5
13.b4+ Kc4 14.Rd7 Rg3 (1.945.091.445) 663
33.01 99:31 +2.22++ 1...Qc5 2.Qxc5 (3.963.881.623) 663
33.01 100:25 +2.18 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.Kd1 Kb7 11.Ke1 Kb6 12.Kf2 Kc5
13.Rd1 Rg5 14.b4+ Kc4 (4.003.038.738) 664
34.01 183:30 +2.02-- 1...Qc5 2.Qxc5 (7.296.921.475) 662
34.01 369:21 +2.32 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.Kd1 Kb7 11.Ke1 Kb6 (14.570.963.075) 657
35.01 438:38 +2.34 1...Qc5 2.Qxc5 Bxc5 3.Bxe4 Be3+
4.Kb1 Rxd1+ 5.Rxd1 fxe4 6.Bg1 Bxg1
7.Rxg1 gxf4 8.Kc1 Rg8 9.Rf1 Rg4
10.Kd1 Kb7 11.Ke1 Kb6 12.Kf2 Kc5
13.Rd1 Rg5
{[D]8/p1p5/2p1p3/2k1P1r1/4pp2/P7/1PP2KP1/3R4 w - - 0 1
This may be won for Black but only slow progress is
visible. F.e. 14. c3 Rxe5 15. Rd4 Kb5 16. Rb4+ Ka6
17. Ra4+ Kb7 18. Rb4+ Kc8 19. Ra4 c5 is possible
[D]2k5/p1p5/4p3/2p1r3/R3pp2/P1P5/1P3KP1/8 w - - 0 1
This is evaluated -2.94 for White but starting a new
search here Rainbow Serpent gives 20. Rc4 Kb7 21. b4 Kc6
and this is evaluated -3.63 at 32 plies} (17.352.194.857) 659
best move: Qe7-c5 time: 547:17.203 min n/s: 658.963 nodes: 21.638.512.215
Version 041 was:
Code: Select all
// Step extra. pv search (only in PV nodes)
// The first move in list is the expected PV
if (PvNode && (moveCount == 1 || (move == nextbestMove && !singularExtended)))
{
if (newDepth < 10*OnePly)
value = - search<NonPV>(pos, ss+1, -Max(alpha+1, excValue+1), -Max(alpha, excValue), newDepth + 4*OnePly, ply+1);
if (moveCount == 1)
value = newDepth < OnePly ? -qsearch<PV>(pos, ss+1, -beta, -alpha, Depth(0), ply+1)
: - search<PV>(pos, ss+1, -beta, -alpha, newDepth, ply+1);
}
else
{
// Step 14. Reduced depth search
// If the move fails high will be re-searched at full depth.
Changed it to
Code: Select all
// Step extra. pv search (only in PV nodes)
// The first move in list is the expected PV
if (PvNode && (moveCount == 1 || move == nextbestMove))
{
if (newDepth < 10*OnePly || move == nextbestMove)
value = - search<NonPV>(pos, ss+1, -Max(alpha+1, excValue+1), -Max(alpha, excValue), newDepth + 4*OnePly, ply+1);
if (moveCount == 1 || value > alpha)
value = newDepth < OnePly ? -qsearch<PV>(pos, ss+1, -beta, -alpha, Depth(0), ply+1)
: - search<PV>(pos, ss+1, -beta, -alpha, newDepth, ply+1);
}
else
{
// Step 14. Reduced depth search
// If the move fails high will be re-searched at full depth.
because in the old version, only if newDepth was smaller than 10 plies there actually was a search done for nextbestMove and if the nextbestMovemove failed high, result of the deep nullwindow search > alpha, there would be no re-search! So this should be a bit more accurate