Author: Hamza Inan, Rating Chess Engines Diary CEDR=2376
CeeChess 2.0 what's new?
This release comes with a complete rewrite to the tuning mechanism - I hand-wrote SPSA with a newish optimizer seen here: https://arxiv.org/abs/2010.07468. It also comes with a rewrite to the move generator and the board representation, as it is now a bitboard engine. It uses magic bitboards to generate sliding moves, and now the evaluation is much more robust, including mobility, king safety, and threat detection. The self play results are below:
STC:
Results of 2.0 vs 1.4 (10+0.1, NULL, 16MB, chess.epd):
Elo: 161.81 +/- 9.65, nElo: 207.92 +/- 10.77
LOS: 100.00 %, DrawRatio: 27.30 %, PairsRatio: 7.03
Games: 4000, Wins: 2371, Losses: 632, Draws: 997, Points: 2869.5 (71.74 %)
Ptnml(0-2): [38, 143, 546, 588, 685], WL/DD Ratio: 3.11
LTC:
Results of 2.0 vs 1.4 (60+0.6, NULL, 16MB, chess.epd):
Elo: 174.55 +/- 13.35, nElo: 234.55 +/- 15.23
LOS: 100.00 %, DrawRatio: 23.80 %, PairsRatio: 8.65
Games: 2000, Wins: 1188, Losses: 260, Draws: 552, Points: 1464.0 (73.20 %)
Ptnml(0-2): [12, 67, 238, 347, 336], WL/DD Ratio: 2.45
The coming updates (up to 3.0) will involve the following:
A refactor of the board representation, move generation, and other internal representations (currently bitboards work and pass all tests, but a lot of indices are kind of hacky and not clear or efficient)
A complete rewrite of the search, including new move ordering, pruning, and other search improvements (SEE is planned, much better history heuristic is planned, and so on)
Other QoL things, including switching to UCI only, implementing multiPV, and potentially LazySMP or some form of multithreading
After 3.0 I will focus on writing a from scratch NNUE implementation, but I would like to make it to 2800 CCRL (or potentially 3000) without using it.
Comments
Post a Comment