MadChess 3.0 Beta bef88d5 (Tweak Search, Tune Eval)

I’ll let my Pull Request notes (PR 3) explain where I began and where I finished (hint: not where I expected) with my latest code improvements to MadChess 3.0 Beta:

Originally, I intended this PR to add Static Exchange Evaluation (SEE) to MadChess’ search method to reorder or skip evaluation of captures and / or quiet moves that enable the opponent to profitably capture the most recently moved piece. After numerous attempts to write a method that evaluates piece exchanges- either statically (without actually moving pieces) or dynamically (move pieces and search), and integrate it into the search, I could not find any technique that improved the engine’s playing strength. I decided to leave in the Search.GetExchangeScore method (dynamic evaluation of piece exchanges) and associated exchangescore and analyzeexchangepositions UCI commands even though exchange score is not considered by the main search nor the quiet (quiescence) search.

I could not find any SEE technique that improved the engine’s playing strength.

In addition, this PR contains numerous tweaks to search logic and tuned evaluation parameters; and it contains numerous code performance and clarity improvements. Together, these changes account for a 30 Elo improvement in playing strength. MadChess 3.0 Beta, even with its primitive evaluation function (simple endgames, material, piece location, passed pawns, and piece mobility) now plays stronger (2450 Elo) than MadChess 2.2 (2443 Elo), at least at bullet time control.


Feature Category Date Commit1 WAC2 Elo Rating3 Improvement
Eval Param Tuning Evaluation 2020 Jul 23 bef88d5 283 2450 +30
Late Move Pruning Search 2020 Feb 08 6f3d17a 288 2420 +29
Piece Mobility Evaluation 2020 Feb 01 5c5d4fc 282 2391 +62
Passed Pawns Evaluation 2018 Dec 27 103 279 2329 +119
Staged Move Generation Search 2018 Dec 15 93 275 2210 +39
History Heuristics Search 2018 Dec 03 84 275 2171 +28
Eval Param Tuning Evaluation 2018 Nov 24 75 272 2143 +47
Sophisticated Search
Material and Piece Location
Baseline 2018 Nov 08 58 269 2096 0
  1. GitHub commit (hash) or Subversion source code revision (integer)
  2. Win At Chess position test, 3 seconds per position
  3. Bullet chess, 2 min / game + 1 sec / move
Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *