Should SF solve these positions at lower depths?

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

Moderators: hgm, Rebel, chrisw

User avatar
Ajedrecista
Posts: 1969
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Should SF solve these positions at lower depths?

Post by Ajedrecista »

Hello:

I played a game at LiChess a few days ago:

https://lichess.org/fipcnsrA

[pgn]
[Event "Casual Blitz game"]
[Site "https://lichess.org/fipcnsrA"]
[Date "2020.06.26"]
[Round "-"]
[White "Anonymous"]
[Black "Anonymous"]
[Result "0-1"]
[UTCDate "2020.06.26"]
[WhiteElo "?"]
[BlackElo "?"]
[Variant "Standard"]
[TimeControl "300+0"]
[ECO "D05"]
[Opening "Colle System"]
[Termination "Normal"]
[Annotator "lichess.org"]

1. d4 d5 2. e3 Nf6 3. Nf3 e6 { D05 Colle System } 4. Ne5 a6 5. g4 c5 6. g5 Nfd7 7. h4 Nxe5 8. dxe5 Nc6 9. f4 b5 10. a4 Bb7 11. axb5 axb5 12. Rxa8 Qxa8 13. Bxb5 Qa5+ 14. Nc3 d4 15. Bxc6+ Bxc6 16. exd4 Bxh1 17. dxc5 Bxc5 18. Ke2 Qa8 19. Qf1 Bd5 20. h5 Bc4+ { White resigns. } 0-1
[/pgn]

I was black so I won. I want to bring some positions: after 12.- ..., Qxa8; after 13.- Bxb5; after 13.- ..., Qa5+; and after 14.- Nc3.

[d]q3kb1r/1b3ppp/2n1p3/1pppP1P1/5P1P/4P3/1PP5/1NBQKB1R w Kk - 0 13

[d]q3kb1r/1b3ppp/2n1p3/1BppP1P1/5P1P/4P3/1PP5/1NBQK2R b Kk - 0 13

[d]4kb1r/1b3ppp/2n1p3/qBppP1P1/5P1P/4P3/1PP5/1NBQK2R w Kk - 1 14

[d]4kb1r/1b3ppp/2n1p3/qBppP1P1/5P1P/2N1P3/1PP5/2BQK2R b Kk - 2 14

The online analyzer of LiChess, SF 10+ ASMJS, has problems with these positions.

- First position: it brings +0.1 (13. Bxb5 Be7) at depth 18/18.
- Second position: it realizes that black is better only after depth 16/18.
- Third position: jumps from -0.2 (depth 16) to -2.0 (depth 17).
- Fourth position: jumps from +0.4 (depth 15/18) to -1.9 (depth 16/18).

In my own analysis with SF 11 (Multi-PV = 7) with one thread for being deterministic and hash cleared between moves, the evolution of the eval:

a) Of 13.- Bxb5 is:

Code: Select all

From white POV:

[...]
d9/17  ev=+0.49 (rank 1)
d10/17 ev=+0.70 (rank 1)
d11/18 ev=+0.58 (rank 1)
d12/20 ev=+0.45 (rank 1)
d13/20 ev=+0.44 (rank 1)
d14/24 ev=+0.24 (rank 1)
d15/24 ev=+0.18 (rank 1)
[...]

Rank > 7 for depth > 15.
(Eval < -0.69 for depth = 15).
------------

b) Of 13.- ..., Qa5+ is:

Code: Select all

From white POV:

[...]
d9/14  ev=+0.52 (rank 3)
d10/18 ev=+0.44 (rank 3)
d11/19 ev=+0.06 (rank 1)
d12/20 ev=-0.36 (rank 1)
d13/22 ev=+0.11 (rank 2)
d14/30 ev=-0.61 (rank 1)
d15/25 ev=-0.63 (rank 1)
d16/27 ev=-0.82 (rank 1)
d17/31 ev=-0.89 (rank 1)
d18/33 ev=-2.92 (rank 1)
d19/26 ev=-3.46 (rank 1)
d20/36 ev=-2.96 (rank 1)
d21/40 ev=-3.00 (rank 1)
d22/37 ev=-3.55 (rank 1)
The jump from -0.89 to -2.92 in one depth looks a little unusual for me in this kind of position. Furthermore, the depth needed to see that black is winning seems high.

------------

c) Of 14.- Nc3 is:

Code: Select all

From white POV:

[...]
d9/15  ev=+1.13 (rank 1)
d10/16 ev=+0.25 (rank 1)
d11/18 ev=+0.32 (rank 1)
d12/19 ev=+1.33 (rank 1)
d13/21 ev=+0.78 (rank 1)
d14/24 ev=+0.16 (rank 1)
d15/26 ev=-0.31 (rank 1)
d16/30 ev=-0.60 (rank 1)
d17/33 ev=-0.23 (rank 1)
d18/29 ev=-0.30 (rank 1)
d19/34 ev=-0.33 (rank 1)
d20/40 ev=-2.69 (rank 1)
d21/38 ev=-2.90 (rank 1)
Eval jumps are wild again.

------------

d) Of 14.- ..., d4 is:

Code: Select all

From white POV:

[...]
d9     ev>+1.26 (rank>7)
d10    ev>+1.29 (rank>7)
d11/16 ev=+0.03 (rank 3)
d12/18 ev=-1.75 (rank 1)
d13/14 ev=-2.61 (rank 1)
d14/19 ev=-2.74 (rank 1)
d15/21 ev=-3.02 (rank 1)
d16/28 ev=-3.15 (rank 1)
d17/30 ev=-3.03 (rank 1)
d18/36 ev=-3.22 (rank 1)
More wild jumps.

------------

Any opinions? Other engines behaves in the same way?

Regards from Spain.

Ajedrecista.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Should SF solve these positions at lower depths?

Post by zullil »

Ajedrecista wrote: Sun Jun 28, 2020 1:49 pm Hello:


c) Of 14.- Nc3 is:

Code: Select all

From white POV:

[...]
d9/15  ev=+1.13 (rank 1)
d10/16 ev=+0.25 (rank 1)
d11/18 ev=+0.32 (rank 1)
d12/19 ev=+1.33 (rank 1)
d13/21 ev=+0.78 (rank 1)
d14/24 ev=+0.16 (rank 1)
d15/26 ev=-0.31 (rank 1)
d16/30 ev=-0.60 (rank 1)
d17/33 ev=-0.23 (rank 1)
d18/29 ev=-0.30 (rank 1)
d19/34 ev=-0.33 (rank 1)
d20/40 ev=-2.69 (rank 1)
d21/38 ev=-2.90 (rank 1)
Eval jumps are wild again.

------------

Ajedrecista.
[d]4kb1r/1b3ppp/2n1p3/qBppP1P1/5P1P/4P3/1PP5/1NBQK2R w Kk - 1 14

I'm not sure why you are using MultiPV = 7. You can restrict the search to a particular move using UCI's searchmove option. In any case, here's a deterministic search by Stockfish-dev of the position above, with the search restricted to consideration of Nc3:

Code: Select all

$ ./stockfish 
Stockfish 240620 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
uci
id name Stockfish 240620 64 BMI2
id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott

option name Debug Log File type string default 
option name Contempt type spin default 24 min -100 max 100
option name Analysis Contempt type combo default Both var Off var White var Black var Both
option name Threads type spin default 1 min 1 max 512
option name Hash type spin default 16 min 1 max 33554432
option name Clear Hash type button
option name Ponder type check default false
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Move Overhead type spin default 10 min 0 max 5000
option name Slow Mover type spin default 100 min 10 max 1000
option name nodestime type spin default 0 min 0 max 10000
option name UCI_Chess960 type check default false
option name UCI_AnalyseMode type check default false
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 1350 min 1350 max 2850
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 100
option name Syzygy50MoveRule type check default true
option name SyzygyProbeLimit type spin default 7 min 0 max 7
uciok
position fen 4kb1r/1b3ppp/2n1p3/qBppP1P1/5P1P/4P3/1PP5/1NBQK2R w Kk - 1 14
d

 +---+---+---+---+---+---+---+---+
 |   |   |   |   | k | b |   | r | 8
 +---+---+---+---+---+---+---+---+
 |   | b |   |   |   | p | p | p | 7
 +---+---+---+---+---+---+---+---+
 |   |   | n |   | p |   |   |   | 6
 +---+---+---+---+---+---+---+---+
 | q | B | p | p | P |   | P |   | 5
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   | P |   | P | 4
 +---+---+---+---+---+---+---+---+
 |   |   |   |   | P |   |   |   | 3
 +---+---+---+---+---+---+---+---+
 |   | P | P |   |   |   |   |   | 2
 +---+---+---+---+---+---+---+---+
 |   | N | B | Q | K |   |   | R | 1
 +---+---+---+---+---+---+---+---+
   a   b   c   d   e   f   g   h

Fen: 4kb1r/1b3ppp/2n1p3/qBppP1P1/5P1P/4P3/1PP5/1NBQK2R w Kk - 1 14
Key: 0C098BD82F6C8667
Checkers: a5 
go depth 24 searchmoves b1c3
info depth 1 seldepth 1 multipv 1 score cp 54 nodes 1 nps 1000 tbhits 0 time 1 pv b1c3
info depth 2 seldepth 2 multipv 1 score cp 75 nodes 3 nps 3000 tbhits 0 time 1 pv b1c3 c5c4
info depth 3 seldepth 3 multipv 1 score cp -17 nodes 10 nps 10000 tbhits 0 time 1 pv b1c3 c5c4 b5c6 b7c6
info depth 4 seldepth 4 multipv 1 score cp 153 nodes 33 nps 33000 tbhits 0 time 1 pv b1c3 c5c4
info depth 5 seldepth 5 multipv 1 score cp 141 nodes 123 nps 61500 tbhits 0 time 2 pv b1c3 h7h6 c1d2 h6g5 f4g5
info depth 6 seldepth 6 multipv 1 score cp 167 nodes 256 nps 128000 tbhits 0 time 2 pv b1c3 h7h6 h4h5 h6g5 f4g5
info depth 7 seldepth 9 multipv 1 score cp 174 nodes 1630 nps 543333 tbhits 0 time 3 pv b1c3 h7h6 g5h6 h8h6 e1f2 e8e7
info depth 8 seldepth 10 multipv 1 score cp 220 nodes 2368 nps 592000 tbhits 0 time 4 pv b1c3 h7h6 g5h6 h8h6 e1f2
info depth 9 seldepth 15 multipv 1 score cp 157 nodes 19795 nps 1237187 tbhits 0 time 16 pv b1c3 e8d8 e1g1 f8e7 d1h5 g7g6 h5e2 h7h6 c1d2 h6g5 h4g5
info depth 10 seldepth 17 multipv 1 score cp 172 nodes 36099 nps 1388423 tbhits 0 time 26 pv b1c3 e8d8 b5e2 h7h6 e1f2 h6g5 h4g5 h8h1 d1h1
info depth 11 seldepth 18 multipv 1 score cp 144 nodes 79172 nps 1466148 tbhits 0 time 54 pv b1c3 e8d8 b5e2 c6e7 e3e4 d5d4 e1g1 h7h6 h4h5 h6g5 f4g5 a5c7
info depth 12 seldepth 20 multipv 1 score cp 123 nodes 158835 nps 1512714 tbhits 0 time 105 pv b1c3 e8d8 b5e2 d8c8 c1d2 c5c4 e2h5 g7g6 h5f3 f8b4 e1f2 h7h6
info depth 13 seldepth 21 multipv 1 score cp 56 nodes 277471 nps 1567632 tbhits 0 time 177 pv b1c3 f8e7 c1d2 e8g8 b5c6 b7c6 c3d5 a5d8 d5e7 d8e7 h1h2 f8a8 d1c1 e7d7 h4h5 a8d8 h5h6
info depth 14 seldepth 24 multipv 1 score cp -34 nodes 550098 nps 1603784 tbhits 0 time 343 pv b1c3 f8e7 e1g1 e8g8 b5e2 d5d4 c3e4 f8d8 e2d3 c6b4 d1f3 b4d3 c2d3 d4e3 f3e3 b7a6
info depth 15 seldepth 21 multipv 1 score cp -20 nodes 655130 nps 1609656 tbhits 0 time 407 pv b1c3 f8e7 e1g1 e8g8 b5e2 d5d4 c3b5 f8d8 b5a3 a5a8 a3c4 d4e3 d1e1 c6d4 c4e3 d4f3 e2f3 b7f3
info depth 16 seldepth 27 multipv 1 score cp -56 nodes 1133661 nps 1626486 tbhits 0 time 697 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 f8d8 b5c6 b6c6 h4h5 e7c5 h5h6 d5d4 e3d4 c5d4 h6g7
info depth 17 seldepth 30 multipv 1 score cp -1 nodes 1234257 nps 1628307 tbhits 0 time 758 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 f8d8 b5c6 b7c6 c3d1 d5d4 e3d4 d8d4 d2e3 d4e4 h2g3 e7c5 e3c5
info depth 18 seldepth 29 multipv 1 score cp 0 nodes 1314926 nps 1627383 tbhits 0 time 808 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 e7c5 b5c6 b7c6 f1b1 b6d8 e2f3 d8b6 f3e2
info depth 19 seldepth 33 multipv 1 score cp -1 nodes 2038662 nps 1614142 hashfull 758 tbhits 0 time 1263 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 e7c5 b5c6 b7c6 f1b1 f8b8 h2g3 d5d4 e3d4 c5d4 h4h5 b6d8 h5h6 d8d7
info depth 20 seldepth 28 multipv 1 score cp 0 nodes 2242531 nps 1620325 hashfull 798 tbhits 0 time 1384 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 e7c5 b5c6 b7c6 f1b1 f8b8 h2g3 d5d4 e3d4 c5d4 b1d1 b6a5 d1b1
info depth 21 seldepth 36 multipv 1 score cp 0 nodes 2816536 nps 1642295 hashfull 883 tbhits 0 time 1715 pv b1c3 f8e7 e1g1 e8g8 d1e2 f8d8 c1d2 c6b4 b2b3 d5d4 c3a4 a5a7 f1c1 b7a8 b5c4 b4a2 c1e1 a2b4 e1c1
info depth 22 seldepth 40 multipv 1 score cp 0 nodes 3374424 nps 1652509 hashfull 933 tbhits 0 time 2042 pv b1c3 f8e7 c1d2 a5b6 d1e2 c5c4 e1g1 e8g8 g1h2 e7c5 b5c6 b7c6 f1b1 d5d4 e3d4 c5d4 h2g3 h7h6 c3d1 h6g5 h4g5 d4e5 f4e5 b6g1 g3h3 g1h1 h3g3
info depth 23 seldepth 40 multipv 1 score cp -322 nodes 5972790 nps 1736276 hashfull 995 tbhits 0 time 3440 pv b1c3 d5d4 e3d4 c5d4 d1f3 a5b6 c3d5 e6d5 f3b3 d4d3 c2d3 f8c5 b5a4 b6b3 a4b3 c6d4 b3d1 e8g8 c1d2 f8a8 d2c3 d4e6 d1f3 e6f4 e1d2 b7c6 d2c2 a8a2 c3d2
info depth 24 currmove b1c3 currmovenumber 1
info depth 24 seldepth 35 multipv 1 score cp -332 upperbound nodes 6605380 nps 1743764 hashfull 998 tbhits 0 time 3788 pv b1c3 d5d4
info depth 24 currmove b1c3 currmovenumber 1
info depth 24 seldepth 37 multipv 1 score cp -322 lowerbound nodes 7192199 nps 1753767 hashfull 999 tbhits 0 time 4101 pv b1c3
info depth 23 currmove b1c3 currmovenumber 1
info depth 24 seldepth 37 multipv 1 score cp -309 lowerbound nodes 7239674 nps 1754221 hashfull 999 tbhits 0 time 4127 pv b1c3
info depth 22 currmove b1c3 currmovenumber 1
info depth 24 seldepth 38 multipv 1 score cp -320 nodes 7569021 nps 1758193 hashfull 999 tbhits 0 time 4305 pv b1c3 d5d4 d1f3 a5b6 e3d4 c5d4 c3d5 e6d5 b5d3 f8c5 e1g1 e8g8 f3e2 f8e8 g1g2 g7g6 h4h5 c6b4 f4f5 g6f5 d3f5 b7a6 f5h7 g8h7 f1f7 h7g8 e2f3 e8e5
bestmove b1c3 ponder d5d4
quit
User avatar
Ajedrecista
Posts: 1969
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Should SF solve these positions at lower depths?

Post by Ajedrecista »

Hello Louis:

Very true! I forgot about searchmoves, thank you very much. I was analysing under Arena and I wanted to see how each move stands with others. Anyway, your SF search also agrees in big jumps, more than 300 cp in your case in an only depth, no less than at depth 23, which looks insane.

The pin of Nc3 with Qa5 plus d4 opening a8-h1 diagonal threatening both the h1-rook and the c3-knight does not look very complicated for me, an unrated player that might play in the range of 1700 Elo. It was a 5+0 game and it took me few seconds to see that the line was at least not bad for black. This is why I was surprised about SF performance.

Regards from Spain.

Ajedrecista.
MonteCarlo
Posts: 188
Joined: Sun Dec 25, 2016 4:59 pm

Re: Should SF solve these positions at lower depths?

Post by MonteCarlo »

The iteration at which it finds the tactic is a bit higher than I'd guess, but it's also not that surprising, given the only way the whole thing works is a (very) temporary queen sacrifice a few ply into the line.

To know that the line works, and not just guess based on the favorable geometry, you have to see that exd4 cxd4 Qxd4 fails to Qxb5 Nxb5 Nxd4 after which saving the rook loses a second piece to Nxb5 and taking back the knight on d4 loses the rook to Bxh1.

Again, without just guessing based on the favorable geometry, you also have to calculate that after Qf3 you can abandon the pin and still win material after the knight moves (although seeing this is easier for SF than seeing that exd4 is no good for white, it still takes it to iteration 11 or so with Qf3 on the board).

K13 sees that it's losing from the root at iteration 12, with the eval reached at iteration 13 stable for quite some time afterwards.

Something about SF's pruning or reductions must make Qxb5 harder to see from a few ply out. Even with cxd4 on the board, SF sticks with Qxd4 for a bit and only sees that it loses at iteration 10.