Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Interesting bug or regression.

Let’s take the very famous game Kasparov - Topalov, Wijk aan Zee 1999 and look at the position just after Topalov accepts Kasparov’s Rook Sacrifice:

https://samboy.github.io/blog/Kasparov.html#RookSacAccepted - https://lichess.org/lwiPq9wB#48 - White to move

FEN: b2r3r/k4p1p/p2q1np1/Np1P4/3p1Q2/P4PPB/1PP4P/1K2R3 w - - 0 25

Run the above position in Stockfish 18 with a depth of 25: [1] It shows that White is 3.53 pawns ahead—i.e. White is clearly winning.

Run the above position in Stockfish 19, however, and Stockfish 19 at depth 25 says that, while White is ahead, it’s only a 1.2 pawn edge—Black supposedly still has good drawing chances.

At a depth of 35 ply, Stockfish 19 sees that it’s a clear White victory (6.79 pawns ahead), but it takes far deeper search for Stockfish 19 to see the win compared to Stockfish 18.

[1] To run the position, I type the following commands:

  position fen b2r3r/k4p1p/p2q1np1/Np1P4/3p1Q2/P4PPB/1PP4P/1K2R3 w - - 0 25
  d
  go depth 25
I also see the issue on Lichess’s GUI by going to this URL:

https://lichess.org/lwiPq9wB#48

 help



Evaluation doesn't matter as far as I understand. If 19 beats 18 in a match on billion playouts then it's a feature.

Any usability of stockfish evaluation for human analysis is collateral.

Unfortunately there seem to be no serious fork of stockfish that would care about usability for human analysis.

I was recently doing some larger study and I stumbled upon a bug/feature of stockfish where it accepts small number of invalid cache reads for a lot of speed.

It would result in infrequent blunders which however affected my analysis, so I removed this optimization in my fork.


Usability for human analysis will likely be more successful going a similar direction Maia is going with the lc0 like net trained to make human moves. SF is inherently so far removed from the human approach to chess (relatively speaking), that it would likely require a lot more work than just tuning it to work well on some positions.

There would be value in prep if one had an engine that automatically understood what positions are challenging for humans, as right now a big part of high level prep is finding opening lines that look like they lose by a bit in stockfish vs stockfish, but are full of landmines for a top GM to step on. That's where a lot of time goes nowadays, past the pure memorization. The issue is that value drops a lot when other players have access to the same tools, because then they will also pay attention to those lines. The value is in the information imbalance, but everyone has the same tools.

It might help young players learning without a coach, but my understanding is that most are just looking at engine evaluation anyway, as tactical speed is a typical advantage of the youth.


Is your fork public? Have an example of where Stockfish does not blunder with your change?

However, Stockfish 19 has gotten better at understanding fortresses:

https://lichess.org/analysis/1b3r2/8/4P3/2pP2k1/3nB2p/3P3P/5... (now finds 1...Rxf2 = immediately, the evaluation is closer to 0.0)

https://lichess.org/analysis/8/kp2q3/1Np5/pPPp1b2/P2Pp1p1/4P... (finds 1.Nc8+ = quicker (let it ponder four lines), the evaluation is closer to 0.0)

https://lichess.org/analysis/rk6/1p1b4/pBp5/PPPp4/3Pp3/4Pp1p... (The evaluation is closer to 0.0, though still far away)

https://lichess.org/analysis/7k/4p3/5p2/1p1p1p2/1PpP1PpB/1pP... (Evaluation is closer to 0.0)


Here is what I see typing this is Stockfish 18 and Stockfish 19:

  position fen 1b3r2/8/4P3/2pP2k1/3nB2p/3P3P/5PP1/5KRR b - - 0 1
  d
  go depth 35
In Stockfish 18: Black is 3.9 pawns ahead, and it wants to play Bg3

In Stockfish 19: Black is 1.2 pawns ahead, and it wants to play Rxf2!

So, yes, here Stockfish 18 can’t find Rxf2!, but Stockfish 19 does starting at depth 13.


> I also see the issue on Lichess’s GUI by going to this URL:

> https://lichess.org/lwiPq9wB#48

When I go to that link it shows Black is winning with -1.9 eval at depth 32 with SF19 1MB NNUE! It looks like it got this evaluation from the cloud database.


Click on the switch to the left of the evaluation to run a local Stockfish 19 eval of the position.

Showing Black winning in that position is clearly a bug; at 20 ply Stockfish 19 sees a +0.3 edge for White (which is also wrong; it’s about +5 for White, i.e. clearly winning) and only a +0.6 edge at 24 ply.

To be fair, Topalov, right after this game (1999, so before modern computer analysis), analyzed the game for hours with his second and thought Black still had strong drawing chances after accepting the rook sacrifice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: