Monday, January 2, 2012

KBNKN improvement and next step

I thought before I move on to the next step I try an early exit idea in the KBNKN recognizer. As the position is more likely a DRAW if defender king and knight have good mobility I added 2 rules (1 for black and 1 for white) that classify a position as DRAW if King and Knight have 4 or more safe squares to move to.

Those rules are on top of all the other rules, so if their conditions are met I get an early exit. Measurement shows that about 16% of recognizable draws are already recognized by the early exit rule. An additional benefit is that I get a slight improvement in the number of recognized draws as a small number of positions is now correctly announced as draw that would otherwise be announced as unknown because they are covered by one of the "not draw" patterns.

                          Old           New
Incorrect Draws :           0             0                                     
Spotted   Draws :  64.403.306    65.560.677
Missed    Draws : 117.746.021   116.588.650
Spotted   Wins  :  37.532.061    37.532.061

So this is enough now for KBNKN and I move on.

When I started with 5 man endgames I implemented a simple recognizer for KRPKR because I read this is the most common endgame of all and I wanted iCE to recognize the Philidor and Lucena positions. As I had no 5 man tablebase I was not able to verify whether the recognizer works correctly I just had some sample positions where it did.

I now checked it against the table base and its performance is terrible. It misses most of the DRAWs and has a 5% error rate where it announces a DRAW which is in fact not a DRAW. This requires definitely some immediate fixing. I hope it is not as difficult as the the previous one, having no knights certainly helps but then again having a pawn now on the board makes it more difficult.