lichess-org / lila

♞ lichess.org: the forever free, adless and open source chess server ♞
https://lichess.org
GNU Affero General Public License v3.0
15.57k stars 2.28k forks source link

make fishnet use tablebase - on lila side #2290

Closed ornicar closed 8 years ago

dlbbld commented 1 year ago

The following are examples where the computer analysis goes wrong, which would not occur with tablebases. I hope this helps to assess the priority of using tablebases.

Moves wrongly marked as blunder

Example 1.1

The computer analysis says 4. Ne4 is a blunder. But 4. Ne4 is an optimal move according to the tablebase, so not a blunder.

image

[Variant "From Position"]
[FEN "8/8/3k4/8/8/3B4/3N4/3K4 w - - 0 1"]

1. Ke2 Ke6 2. Ke3 Kf6 3. Kf4 Ke6 4. Ne4

Example 1.2

The computer analysis says 54. Bd3+ is a blunder for losing the forced checkmate. But according to the tablebase, forced checkmate is not lost.

Consecutively the computer analysis marks 54... Kc1 as a blunder. But this move is not a blunder, the checkmate is already forced before the move.

image

[Variant "From Position"]
[FEN "8/8/B7/8/8/8/5B2/3k2K1 w - - 7 52"]

52. Bd4 Kc1 53. Kf2 Kb1 54. Bd3+ Kc1

Blunders which are not marked as blunders

Example 2.1

White is winning according to the tablebases after 3... Ng6. But not anymore after 4. Kb6 for the fifty-move rule. Therefore the computer analysis should say that 4. Kb6 is a blunder.

image

[Variant "From Position"]
[FEN "8/3kn3/8/8/2BBK3/8/8/8 w - - 0 1"]

1. Bc3 Nc6 2. Kd5 Ne7+ 3. Kc5 Ng6 4. Kb6

Example 2.2

White is winning according to the tablebases after 3... Nf7. But after 4. Bd1 White has no forced mate anymore. Therefore the computer analysis should say that 4. Bd1 is a blunder not inaccuracy.

image

[Variant "From Position"]
[FEN "3n4/8/4k1B1/4B3/3K4/8/8/8 w - - 0 1"]

1. Be4 Kf7 2. Bd5+ Ke7 3. Bf3 Nf7 4. Bd1
dav1312 commented 1 year ago

Maybe this can be reconsidered? Especially for 5-man positions since Lila has DTM, which is obviously much better than any engine. It seems like a pretty clear waste of resources and as pointed out in the comment above, sometimes analysis mistakes can happen like having an optimal move marked as a blunder. Maybe if in the future hash is reused between positions it makes sense to let the engines analyze but still, the evaluations presented to the client can be replaced with the DTM scores?