Hobbes 2.0
Hobbes 2.0 is here!
The main change since 1.0 is the introduction of a multilayer neural network, along with several net-related features and optimisations. In search, it's a grab-bag of small improvements, the highlights being 'mini-probcut' TT pruning, low-depth singular extensions, and reducing the RFP margin if the opponent is worsening.
Progress tests against 1.0 indicate a strength improvement of around 50 elo:
Elo | 50.23 +- 6.20 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 3002 W: 925 L: 494 D: 1583
Penta | [3, 180, 714, 591, 13]
https://openbench.nocturn9x.space/test/6978/
What's Changed
A curated selection of pull requests; for a comprehensive list, consult the changelog: 1.0...2.0
⚖️ Evaluation
- Multilayer neural network (#316)
- Increase L1 size to 1536 (#346)
- Sparse matrix multiplication (#344)
- Re-permute net for sparsity (#370)
- Merged king planes (#364)
🔍 Search
- SF-style probcut TT pruning ('mini-probcut') (#319)
- Low-depth singular extensions (#330)
- Low-depth singular double extensions (#359)
- Adjust RFP margin if opponent is worsening (#366)
- Only TT cutoff if
(tt_score < alpha || cutnode)(#358) - Don't instantly prune in LMP (#310)
- Fractional NMP (#311)
- Fix insufficient material detection (#313)
- Use improvement in LMP (#315)
- Allow LMR extensions (#324)
- Tweak s_beta formula (#333)
- Move singular extensions outside move loop (#337)
- Use singular move score in LMR (#338)
- Reduce LMR depth in cut nodes (#342)
- Add a bunch of LMR fail-yellows + SPSA tune (#354)
- Add more terms to mini probcut + 80k SPSA tune (#363)
- SPSA 80k LTC (#329)
Acknowledgements
As always, I am extremely grateful to the community of engine developers for sharing their knowledge and expertise, without which Hobbes would still be languishing in the dark ages. For Hobbes 2.0 I especially am thankful to @JonathanHallstrom for guiding me through the multilayer NNUE journey. And finally, a big thanks to engine testers for testing the stuff we write, and keeping the leaderboards up to date.