Monday, July 30, 2012

iCE 0.2 last and final fight

As I published now the new iCE in version 0.3 there will probably no more matches where iCE 0.2 participates in. Very likely the Division 5 of WBEC Ridderkerk 19 was it's final fight. Here almost 100 engines played, first in 4 groups and the best 5 in each group went into a playoff. The best 7 in the playoff qualify for Division 4 then.

Little iCE did excellent and finished the playoff at number 2. So it would have earned iCE a spot in Division 4, which is not played anymore. Leo Dijksman has unfortunately decided to stop its tournaments as he lost his interest because of the many engine clones that appear. Very sad!

Here is the final cross table

WBEC Ridderkerk, 5th division FINAL.

AMD-PHENOM-3100, 2012.07.04 - 2012.07.21
                               Score     Di iC At If Be TJ Me Sj Ev Ay 
-----------------------------------------------------------------------
 1: DiscoCheck 3.61-x64      29.5 / 36   XX 01 10 11 11 10 10 01 01 11 
 2: iCE 0.2-b1092            26.5 / 36   10 XX =0 0= 10 10 11 =1 01 =1 
 3: Atlas 3.20-x64           25.5 / 36   01 =1 XX 10 01 01 =1 11 =1 11 
 4: Ifrit m1.8-x64-JA        25.0 / 36   00 1= 01 XX 00 == 1= =1 1= 11 
 5: Bearded Neural 44.5-x64  24.5 / 36   00 01 10 11 XX 0= 10 00 11 11 
 6: TJchess 1.1-x64          23.5 / 36   01 01 10 == 1= XX 01 =0 =1 01 
 7: Mediocre 0.4-JA          22.0 / 36   01 00 =0 0= 01 10 XX =0 0= 10 
 8: Sjakk 1.1.9              21.5 / 36   10 =0 00 =0 11 =1 =1 XX 01 00 
 9: EveAnn 1.67-b11          20.5 / 36   10 10 =0 0= 00 =0 1= 10 XX 01 
10: Ayito 0.2.994            17.5 / 36   00 =0 00 00 00 10 01 11 10 XX 

Thursday, July 12, 2012

My Chess Engine iCE 0.3 is out

Quite some time has passed since I released the last version of my little chess engine project. So I'm happy to announce that finally iCE 0.3 is seeing the light of the day. It's available from my homepage.

In the development of iCE 0.3 a lot of ideas have been tried, most of them failed, some worked. I introduced new functionality and added tons of endgame chess knowledge. My initial tests indicate some ELO gain compared with iCE 0.2. But it is to early to tell how big it is. I'll know when it has played its first official 200 tournament games.

Major changes in iCE 0.3
  • some new evaluation terms (e.g. pawns islands)
  • Understands the draw by fifty move rule and tries to avoid it when leading
  • Improved endgame knowledge. Better understanding of drawn positions especially if one side is ahead in material like king and 2 minors vs king and 1 minor or king and rook vs king and 2 minors.
  • Implements a small internal opening book if no external book is supplied.
  • Support for external opening books in a proprietary format.
  • Changed node counting rule (horizon nodes not counted twice anymore)
  • Algorithm improvements to speed up the code.
  • Draw by Repetition detection bug fix (was not really working)
  • New smarter time management, varies time for move depending on position and search progress. Leaves a safety buffer on the last move before time control to avoid time losses. Engine is now able to play very fast games with less than 100 ms per move without losing on time anymore. 
  • Implements a special move generator for "getting out of check" moves. Got some speedup.
The engine is still only available as 32 bit version, as I don't own a 64 bit system yet. Most of its evaluation weights are not tuned at all, because I don't have the computing resources available to tune them. I used my intuition to pick a hopefully not so bad number. So tuning is definitely on the todo list for version 0.4 but this will required also some significant changes to the engine to make it tunable.