It seems the news are spreading already so I don't wait till the weekend and give some details about the new release 1.0 this morning.
The complete evaluation has been rewritten.
The old version used constant weights to evaluate certain features in a
position. This helped the compiler to generate efficient code however
every change to a weight required a recompliation of the program. For my
later tuning efforts this was to inflexible.
Added endgame knowledge.
Knowledge that helps iCE to understand drawn positions in KRKP and KQKP endgames.
Evaluation of passed pawns
The potential of passed pawns is now better evaluated. iCE 0.3 was here
to optimistic and often traded its pieces to get a passed pawn that had
little chances of promoting. Additionally a recognizer to spot
unstoppable passers is now part of the evaluation.
All earlier prototypes used evaluation weights that were not tuned. If a
new term was not able to improve the engine with an untuned weight it
was removed again. This was against the principle of only adding
features if you can't improve the engine with existing ones anymore. For
the tuning itself I implemented my own tuning framework using a genetic
algorithm that worked on all weights in parallel. Some tests with
positional EPD testsets showed that the positional understanding of iCE
was improved by this.
Search Parameter Tuning
The same framework was used to tune the search control parameter. The
framework itself was not changed. However as most of the control
parameters were set to new values it behaves now completely different.
64 bit Versions
All prototype versions were only available as 32 bit versions. Some code
changes were necessary to implement 64 bit versions of basic bit
operations. The 64 bit version (/w popcount) runs about 70% faster than
the 32 bit version on the same HW.
iCE is still a CLOP free zone (who trusts negatives Hessians) 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. Some won endgames take a bit
longer especially if the opponent has access to table bases and knows
the optimal defense. But the moves played are probably more natural.
Everything related to opening books is unchanged and still works the same with 1.0
As already noticed iCE still uses hashes of fixed size (4 * 2^21 slots
for the main hash + some for additional hashes - in total about 200 MB).
I will change that in the next version.
In self tests and at short time controls the new version plays
significantly stronger than the old one. Its LOS was 100%. And it did
not took a lot of games to see that.
So comments, bug reports or suggestions for improvement are highly welcome.