lynx-chess / Lynx

Chess Engine, written in C#
https://lichess.org/@/Lynx_BOT
MIT License
39 stars 3 forks source link

⚖️ Improve endgame scaling with pawn count #928

Closed eduherminio closed 1 month ago

eduherminio commented 1 month ago

Previously scaling added in https://github.com/lynx-chess/Lynx/pull/821 This improves it a bit

Test  | eval/improve-eg-scaling
Elo   | 6.48 +- 3.89 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=32MB
LLR   | 2.89 (-2.25, 2.89) [0.00, 3.00]
Games | 15020: +4392 -4112 =6516
Penta | [433, 1742, 2945, 1892, 498]
https://openbench.lynx-chess.com/test/622/

Doing it when phase < 3 makes it surprisingly ineffective:

Test  | eval/improve-eg-scaling-2
Elo   | -10.07 +- 6.21 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=32MB
LLR   | -2.30 (-2.25, 2.89) [0.00, 3.00]
Games | 5796: +1543 -1711 =2542
Penta | [178, 777, 1147, 627, 169]
https://openbench.lynx-chess.com/test/624/

Applying my own method/formula, regardless the phase, just in case this is the key and not the formula used.

Test  | eval/improve-eg-scaling-3
Elo   | -3.96 +- 5.91 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=32MB
LLR   | -1.16 (-2.25, 2.89) [0.00, 3.00]
Games | 6490: +1814 -1888 =2788
Penta | [198, 836, 1248, 768, 195]
https://openbench.lynx-chess.com/test/625/