I improved MadChess 3.0 Beta’s Principal Variation Search (PVS) by consolidating two separate re-searches into one. In addition, I changed the null move implementation so it reduces the search horizon more aggressively if the current position’s static score far exceeds beta.
Previously, if a PVS search failed high, the engine would confirm the fail high first by restoring beta from
bestScore + 1 to its original value and re-searching. If that also failed high, it restored the search horizon from a reduced value to its original value and re-searched. If that failed high the engine took a beta cutoff.
I simplified the code to a single re-search.
Null move now reduces more aggressively if the current position’s static score far exceeds beta.
This increased the playing strength of MadChess 3.0 Beta by 20 ELO.
|PVS and Null Move||Search||2021 Feb 09||f231dac||285||2550||+20|
|Remove Aspiration Windows||Search||2020 Dec 20||4b7963b||290||2530||+9|
|Time Management||Search||2020 Dec 19||d143bb5||286||2521||+8|
|Crash Bug||Search||2020 Aug 29||2d855ec||288||2513||+0|
|King Safety||Evaluation||2020 Aug 16||6794c89||288||2513||+63|
|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|
Material and Piece Location
|Baseline||2018 Nov 08||58||269||2096||0|
- GitHub (hash) or Subversion (integer) source code revision
- Win At Chess position test, 3 seconds per position
- Bullet chess, 2 min / game + 1 sec / move