Friday, June 29, 2012

The fifty-move rule

Most of my recent attempts to improve my engine failed, any possible improvement stayed within the error bar, so no breakthrough yet.

As I'm running out of ideas for the moment to improve iCE without any major effort (e.g. major changes to eval and tuning the evaluation weights) I think I will release the current version of the code soon. It has at least functional enhancements compared with iCE 0.2 like using an opening book or better endgame knowledge.

One of the missing functional features so far was the implementation of the DRAW by the 50 move rule. It is no big deal to implement but as I did not see any major benefit for playing strength in it I just thought I will implement it later when the time is right.

It is right now and iCE does now know it.

To demonstrate it consider the following position: 8/5k2/8/8/1R6/R6K/7P/8 w - - 96 200

48 moves have been played without pawn move or capture. The old version of iCE here announces a Mate in 3, trying to mate with the rooks right away. This would fail because the game would be adjudicated as draw by the 50 move rule before Black is Mated.

The new version of iCE is now seeing the way out.

info depth 14 seldepth 24 time 13797 nodes 38389600 pv h3g2 f7e6 h2h3 e6e5 a3a5 e5d6 b4b6 d6c7 b6h6 c7b7 a5g5 b7c7 g5g7 c7d8 h6h8 nps 2782459 score mate 8

So it is first moving the king and the pawn and mating with the rooks later.

So one more source of possible embarrassment removed.