Saturday, June 29, 2013

How strong is the new iCE


iCE 1.0 has not played enough games in CCRL yet to be included in the official ranking there.

But I already got some feedback from other testers that the new version is a significant improvement of more than 200 ELO.




This little tournament was run with the 32 bit version and a time control of 5 minutes a game. Lars Hallerström was so kind to give me permission to post them. Thanks again.

78 Ice 1.0 : 2703  840 (+367,=226,-247), 57.1 %


Alaric 707                    :  40 (+ 16,= 10,- 14), 52.5 %
Amyan 1.7a                    :  40 (+ 18,=  9,- 13), 56.2 %
Chepla 0.63                   :  40 (+ 28,=  8,-  4), 80.0 %
ET 8.01                       :  40 (+ 23,=  8,-  9), 67.5 %
Tao 5.6                       :  40 (+ 29,=  4,-  7), 77.5 %
Ufim 8.01                     :  40 (+ 27,=  9,-  4), 78.8 %
Cyrano 0.6b17                 :  40 (+ 15,= 12,- 13), 52.5 %
Fruit 2.3.1                   :  40 (+ 10,= 10,- 20), 37.5 %
Ktulu 9                       :  40 (+ 10,= 16,- 14), 45.0 %
Ruffian 1.0.0                 :  40 (+ 15,= 12,- 13), 52.5 %
SOS 5.1                       :  40 (+ 19,= 11,- 10), 61.3 %
WildCat 8 beta 5              :  40 (+ 18,=  8,- 14), 55.0 %
Cheng3 1.06b                  :  40 (+ 17,= 11,- 12), 56.2 %
Chronos 1.9.9 beta            :  40 (+ 11,= 17,- 12), 48.8 %
Deuterium 12.01               :  40 (+ 15,= 13,- 12), 53.8 %
Dirty Sep  5 2012             :  40 (+ 16,= 12,- 12), 55.0 %
Pharaon 3.5.1                 :  40 (+ 16,= 13,- 11), 56.2 %
Tornado 4.78                  :  40 (+ 20,= 10,- 10), 62.5 %
Texel 1.01                    :  40 (+ 19,= 10,- 11), 60.0 %
BobCat 3.25                   :  40 (+ 11,= 11,- 18), 41.2 %
Bug2 1.9                      :  40 (+ 14,= 12,- 14), 50.0 %


So here iCE gained 243 ELO points compared with iCE 0.3. This is a huge jump and I guess iCE 1.0 will now enter also the Top 100 in CCRL. So I probably need a new goal.

 78 Ice 1.0 : 2703
183 Ice 0.3 : 2460

Tuesday, June 25, 2013

It's getting hotter

After the recent release of my engine it now starts playing in tournaments replacing its previous version. Those games are usually played at much longer time controls that I had used in the development. If a chess engine has something like a personalty or style it will show itself in such games.

It looks it has a rather speculative style. It doesn't fear to give away material to improve its position. And as the positional factors in its evaluation can reach rather big values it might sacrifice a lot. Probably this is not always sound but it creates interesting games.

Here is a position after move 15 from a game it played against Delphil 2.9g 64 bit (2529 ELO in CCRL). Time Control was 40 moves in 25 minutes and its a game from the latest Division 5 tournament of Graham Banks.

iCE 1.0 vs Delphil 2.9g, position after 15. .. Bd4

  iCE is already a pawn down
   but
  iCE has its rook at the open d-file opposing blacks queen

  Black has an weak isolated double pawn at the c5 file
  Blacks knight lacks some mobility
  Blacks king safety is a bit damaged









So if down in material give away some more. 16. Rxd4 (giving the rook for a bishop and a pawn)

16. Rxd4 cxd4  17. Qxd4+ Kg8  18. Qc4 e6  19. e5 g5  20. Ne4 Rf5  21. Bd2 Rxe5

iCE 1.0 vs Delphil 2.9g, position after 21. .. Rxe5

  iCE is now down a rook and a pawn vs. a bishop

  but

  it has the bishop pair

  the white knight has good destinations
  the white king is safe

  the black bishop at d7 is not more than a big pawn
  the c6 and e6 pawns are weak
  the black knight is still at the rim
  the king is exposed

Wednesday, June 19, 2013

iCE 1.0 sees the light of the day

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.

http://www.fam-petzke.de/cp_ice_en.shtml

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.

Evaluation Tuning
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.

Unchanged
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

Still Missing
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.

Thomas...

Sunday, June 2, 2013

Move ordering competition

At Talkchess Ed Schroeder launched a not to serious move ordering competition. The idea is to find out which program is most successful in ordering a move that gives a cutoff early in the list.