LeelaChessZero / lc0

The rewritten engine, originally for tensorflow. Now all other backends have been ported here.
GNU General Public License v3.0
2.45k stars 530 forks source link

Add Syzygy50MoveRule UCI option #856

Open killerducky opened 5 years ago

killerducky commented 5 years ago

Syzygy50MoveRule Disable to let fifty-move rule draws detected by Syzygy tablebase probes count as wins or losses. This is useful for ICCF correspondence games.

Some other engines have this, e.g. Stockfish.

Relevant SF code: https://github.com/official-stockfish/Stockfish/blob/master/src/search.cpp#L660

MelleKoning commented 5 years ago

Does #861 help?

Naphthalin commented 4 years ago

@killerducky is this still relevant, or was it implemented/solved in another way?

Freiheiter commented 4 years ago

In short: This is still relevant, and important for serious correspondence chess analysis.

It has nothing to do with #861, which deals with reaching the 50 move rule from within the game, while the present issue is about how to read the result of a TB query under modified corr rules:

TBs contain positions where mate can be forced, but even the best move sequence will trigger the 50 move rule (frustrated win/blessed loss). For chess on the board, such position is effectively drawn. But for correspondence chess, rules exist that override 50mr specifically for tablebase positions. Thus, such TB query result should be evaluated as a win/loss. Which is what Stockfish does if the option mentioned above is unset. This way, Stockfish will provide analysis which is more correct than Leela's if the ICCF ruling is ineffect.