Yesterday I uploaded the new release of iCE to my website and released it into the wild. Again more than 1 year development and tuning went into this release. The last release was dominated by changes to the evaluation and weight
tuning. Most of the committed changes in this release are now related to
the search framework.
Of course it has no established rating yet but I'm confident that it is stronger than iCE 1. I have not really an idea by how much. I tried to pair it with some free engines but I got contradicting results. Against some engines iCE ended up only as crushed iCE while it was able to really freeze some other engines despite the fact that all those engines are close together in their CCRL rating. Probably the time control I test with or my test setup is just bad so I leave the actual testing to the experts.
Here a summary of the changes for this release.
Changes:
Bugfixes: Bugs related to recognizing a trapped rook and to the 50 move rule were fixed
Pawn Hash Handling: King position is
now stored into the pawn hash which allows the hashing of additional
eval terms while the hit rate goes down a bit.
Endgame Knowledge: Some special code to handle certain 5 piece endgames was added. iCE now uses the material hash to recognize the endgame types.
The ugly list of if ... then ... statements that checks for piece combinations is now gone.
Evaluation: Some changes to the
evaluation to understand certain positions better. An example are
positions with an isolated queens pawn. Tests showed only limited impact
on the strength. I
kept them because I hope the overall playing style of iCE
looks more natural now in those positions. Some minor terms have been
dropped or have been replaced by others.
My pawn structure evaluation is still clumsy, all attempts to
improved it failed.
Table Bases: iCE is not using
external table bases during play. iCE 1 had the DTM data for all the
3-men TB built into the executable. Those tables were removed in iCE 2.
They are calculated on the
fly when the engine starts. The calculation is fairly
optimized and takes less than 100 ms on a decent 1 core system.
Search Changes: Added History
Heuristics, Late Move Pruning, Razoring and Counter Move Heuristics.
Change LMR to be less aggressive. Lazy eval removed. Added LMR at the
root node. And tuning, tuning, tuning ...
Code Cleanup: A lot of code was
refactored and simplified. Especially similar code for WHITE and BLACK
was merged using C++ templates. Overall from iCE 1 to iCE 2 5600 lines
of code were removed while 3800 lines were added.
Unchanged iCE is still a CLOP free zone and does not access endgame tablebases in play. However the new endgame knowledge was
verified against Gaviota table bases. Tribut and thanks for providing them goes to Miguel Ballicora. Also everything related to opening books
is unchanged and still works the same with iCE 2.
I recorded my work on iCE over the last years in this Blog. It contains all the dirty details. So someone interested to learn about my approach to automated parameter tuning using an GA might find something interesting here
No comments:
Post a Comment