The Knightmate Challenge 2010

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

One question:

Does Jabba understand time controls like 4:30. I have not tested this yet, but Lime did not, which is why I ask. Because of the time odds, it will have to play some games with non-integer minutes...
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

It has the code below... so should do.

Code: Select all


//convert the level time control string to integers
void cEngine::xboardlevel(string str, int pos)
{
   int val1=0,val2=0,val3=0,val4=0;
   str.erase(0, pos);

   //deal with time in "0:10" format
   if(str.find(':')!=-1)
   {
    string space = " ";
    str.replace(str.find(':'),1,space);
    istringstream iss(str);
    iss >> val1 >> val2 >> val3 >> val4;
    val2 = val2*60*1000 + val3*1000;
    val3 = val4*1000;
   }
   else
   {
    istringstream iss(str);
    iss >> val1 >> val2 >> val3;
    val2 = val2 * 60 * 1000;
    val3 = val3 * 1000;
   }

   //moves per session
   tree.timer.setmovestogo(val1,cW);
   tree.timer.setmovestogo(val1,cB);
   tree.timer.setmodemps(val1);
   options.moves = val1;

   //black and white time for session
   tree.timer.setsessiontime(val2,cW);
   tree.timer.setsessiontime(val2,cB);

   //increment
   tree.timer.setinc(val3,cW);
   tree.timer.setinc(val3,cB);

    //reset depth limiter
    tree.timer.setdepth(maxply);
    tree.timer.setdepthlimit(false);
}
Let me know if you have problems.

Richard
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

After adding Jabba, the post-final results are:

Code: Select all

Cross table, sorted by score percentage, Buchholz, SB

                              Jok Lim Ger Fai Jab Van Fai CCC Dab MSK Fim
 1. Joker KM / 16             ### 101 011 ==1 011 111 110 111 111 111 111
                              ### 01= 111 011 =01 111 011 111 111 111 111   83%  50.0 (1680.0, 1307.8)

 2. Lime KM 62 / 7            010 ### 101 111 111 1=0 =11 110 011 110 111
                              10= ### 100 111 111 111 111 111 111 111 111   81%  48.5 (1689.0, 1271.3)

 3. Gerbil-KM 0.2 / 4         100 010 ### =00 =11 =11 111 11= 100 111 111
                              000 011 ### =11 111 111 1=0 101 111 =11 111   71%  42.5 (1725.0, 1056.8)

 4. Faile KM 1.4.4 / 5        ==0 000 =11 ### =1= 1=1 011 ==1 111 111 =11
                              100 000 =00 ### =10 1=1 011 =1= =11 011 111   62%  37.5 (1755.0, 899.0)

 5. Jabba 1.0KM / 4           100 000 =00 =0= ### 101 101 =10 111 011 111
                              =10 000 000 =01 ### ==1 110 010 111 111 111   55%  33.0 (1782.0, 745.5)

 6. Vanilla Knightmate 2.6g   000 0=1 =00 0=0 010 ### 001 011 101 010 111
                              000 000 000 0=0 ==0 ### 111 101 101 111 111   45%  27.0 (1818.0, 571.5)

 7. Fairy-Max 4.8v / 4        001 =00 000 100 010 110 ### =11 0=0 101 111
                              100 000 0=1 100 001 000 ### 011 100 110 1=1   42%  25.5 (1827.0, 605.5)

 8. CCCP new / 4              000 001 00= ==0 =01 100 =00 ### 110 11= 111
                              000 000 010 =0= 101 010 100 ### 001 =1= 111   42%  25.0 (1830.0, 549.5)

 9. Dabbabba 2.62 wb / 4      000 100 011 000 000 010 1=1 001 ### 101 111
                              000 000 000 =00 000 010 011 110 ### 111 111   40%  24.0 (1836.0, 485.0)

10. MSKCP 1.4.4               000 001 000 000 100 101 010 00= 010 ### 000
                              000 000 =00 100 000 000 001 =0= 000 ### 111   22%  13.0 (1902.0, 318.8)

11. Fimbulwinter KM 5.00      000 000 000 =00 000 000 000 000 000 111 ###
                              000 000 000 000 000 000 0=0 000 000 000 ###    7%   4.0 (1956.0,  70.5)
It turns out that the handicp of a time-odds factor 4 I assigned to Jabba was justified; it performed better than all other similarly handicapped engines except Gerbil (which was clearly deserved a higher handicap at these rapid time controls), while the more heavily handicapped Faile still ended above it.

Jabba was more friendly to Lime than to Joker, so the margin with which Joker won the event shrunk to only 1.5 point! (Note, however, that Joker had to face more than twice heavier time-odds than all others, and that despite of this, it did get the better of each of its individual opponents.)
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

Using BayesElo, with offset 2000, the performance ratings for this tourney where:

Code: Select all

Rank Name                      Elo    +    - games score oppo. draws
   1 Joker KM / 16            2303  101   87    60   83%  1970    7%
   2 Lime KM 62 / 7           2278   98   86    60   81%  1972    5%
   3 Gerbil-KM 0.2 / 4        2168   84   79    60   71%  1983   12%
   4 Faile KM 1.4.4 / 5       2097   75   73    60   63%  1990   25%
   5 Jabba 1.0KM / 4          2051   77   76    60   55%  1995   13%
   6 Vanilla Knightmate 2.6g  1975   77   79    60   45%  2002   10%
   7 Fairy-Max 4.8v / 4       1941   80   82    60   43%  2006    8%
   8 CCCP new / 4             1936   76   78    60   42%  2006   17%
   9 Dabbabba 2.62 wb / 4     1919   80   83    60   40%  2008    3%
  10 MSKCP 1.4.4              1758   86   97    60   22%  2024    7%
  11 Fimbulwinter KM 5.00     1574  105  140    60    7%  2043    3%
Corrected for the time odds, and ~70 Elo per time doubling (i.e. 100*log(T), where natural logarithms of base e are used ), this predicts for the unhandicapped engines:

Code: Select all

Rank Name                      Elo    +    - games score oppo. draws
   1 Joker KM / 16            2442  101   87    60   83%  1970    7%
   2 Lime KM 62 / 7           2334   98   86    60   81%  1972    5%
   3 Gerbil-KM 0.2 / 4        2168   84   79    60   71%  1983   12%
   4 Faile KM 1.4.4 / 5       2119   75   73    60   63%  1990   25%
   5 Jabba 1.0KM / 4          2051   77   76    60   55%  1995   13%
   6 Fairy-Max 4.8v / 4       1941   80   82    60   43%  2006    8%
   7 CCCP new / 4             1936   76   78    60   42%  2006   17%
   8 Dabbabba 2.62 wb / 4     1919   80   83    60   40%  2008    3%
   9 Vanilla Knightmate 2.6g  1836   77   79    60   45%  2002   10%
  10 MSKCP 1.4.4              1619   86   97    60   22%  2024    7%
  11 Fimbulwinter KM 5.00     1435  105  140    60    7%  2043    3%
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

Jabba still seems to have some problems:

Code: Select all

[Event "Computer Chess Game"]
[Site "SCHAAK_PC"]
[Date "2010.01.20"]
[Round "1.9"]
[White "Jabba 1.0KM / 4"]
[Black "Faile KM 1.4.4 / 5"]
[Result "1/2-1/2"]
[TimeControl "40/1440"]
[Variant "knightmate"]
[Number "18"]
[Annotator "1. +0.00   1... +0.02"]

1. f4 {+0.00/10} d6 {+0.02/11} 2. Mf2 {+0.05/11} e5 {+0.04/11} 3. fxe5
{+0.13/11} dxe5 {+0.00/11} 4. c4 {+0.05/10} Bd6 {+0.16/9} 5. e3 {+0.03/10}
Qf6 {+0.13/11} 6. Mf3 {+0.03/10} e4 {+0.88/11} 7. Mf4 {+0.03/10} Bxf4
{+0.90/11} 8. exf4 {+0.05/12} Qxf4 {+0.87/11} 9. g3 {+0.13/10} Qf2+
{+1.18/10} 10. Kc2 {+0.10/10} Mf8 {+1.10/10} 11. Qe1 {+0.12/9} Qxe1
{+1.30/12} 12. Kxe1 {+0.02/12} Me7 {+1.36/12} 13. Bg2 {+0.02/12} Bf5
{+1.44/12} 14. Mc2 {+0.00/12} Kg8 {+1.56/11} 15. b3 {+0.00/11} Re8
{+1.63/11} 16. Rf1 {+0.01/11} Mf6 {+1.62/11} 17. Rf2 {+0.04/10} a5
{+1.62/10} 18. Mc3 {+0.01/10} a4 {+1.65/10} 19. b4 {+0.01/10} Me5
{+1.61/10} 20. Md4 {+0.03/11} Mxd4 {+1.51/11} 21. Rxf5 {+0.52/12} Re7
{+1.52/11} 22. c5 {+0.69/10} a3 {+1.45/10} 23. Rg5 {+0.67/10} f6 {+1.55/11}
24. Rf5 {+0.64/10} c6 {+1.52/11} 25. Bf1 {+0.61/10} Mc7 {+1.49/10} 26. Rb1
{+0.61/10} b6 {+1.35/11} 27. Rb3 {+0.72/11} bxc5 {+1.58/11} 28. bxc5
{+0.63/11} g6 {+1.53/11} 29. Rf2 {+0.70/10} Mxc5 {+1.47/10} 30. Bxa3
{+0.83/9} Re5 {+1.47/10} 31. Bb2 {+0.77/9} Re6 {+1.35/12} 32. a3 {+0.72/10}
Rd8 {+1.42/11} 33. a4 {+0.76/9} f5 {+1.54/10} 34. a5 {+0.78/9} Ra8
{+1.47/10} 35. Bc3 {+0.87/9} Md5 {+1.48/11} 36. Ra3 {+0.78/9} Mcd6
{+1.49/10} 37. Bb2 {+0.85/9} M6c5 {+1.80/11} 38. a6 {+0.37/10} Mb6
{+1.74/11} 39. g4 {+0.53/9} fxg4 {+1.91/11} 40. Rf7 {+0.35/11 0.1} Re7
{+1.98/11 0.1} 41. Rxe7 {+0.13/11} Kxe7 {+2.14/11} 42. Be2 {+0.08/10} h5
{+2.03/11} 43. Bf6+ {+0.12/8} Kf5 {+2.03/10} 44. Ra4 {+0.17/9} g3
{+2.24/11} 45. h4 {+0.17/10} Mb5 {+2.19/10} 46. Ra3 {+0.23/11} Me6
{+1.93/10} 47. Bg5 {+0.25/11} Me5 {+1.87/11} 48. Bf1 {+0.02/10} Kg7
{+1.79/11} 49. a7 {+0.00/11} Mb4 {+1.92/11} 50. Ra6 {+0.00/11} Mc5
{+1.88/11} 51. Be3 {+0.00/11} Mcd6 {+1.26/11} 52. Bh3 {+0.04/11} Ke8
{+1.01/12} 53. Kg2 {+0.05/11} Mc7 {+1.09/11} 54. Ra5 {+0.90/11} Md5
{+0.95/11} 55. Kf4 {+1.16/12} Mcd6 {+0.68/10} 56. Ke2 {+1.21/10} Kf6
{+0.49/11} 57. Kxg3 {+1.57/10} Ke8 {+0.34/10} 58. Ke2 {+1.55/10} c5
{+0.34/10} 59. Bf4 {+1.58/10} M6c6 {+0.30/11} 60. Ra6 {+1.76/11} c4
{+0.52/12} 61. Bb8 {+2.61/12} c3 {+0.88/11} 62. dxc3 {+3.44/13} Kf6
{-1.78/11} 63. Ra1 {+3.81/11} Mdd6 {-2.97/11} 64. Rg1 {+4.38/11} Kd5
{-3.67/11} 65. Rxg6 {+4.50/13} Mdc7 {-4.19/11} 66. Bg2 {+4.51/12} Mxb8
{-4.14/11} 67. axb8=Q {+4.59/14} Rxb8 {-4.21/11} 68. Bxe4+ {+4.66/13} Ke3
{-4.21/9} 69. Bxc6 {+4.66/13} Rb2+ {-4.22/10} 70. Kf4 {+4.66/11} Kd1
{-4.22/10} 71. Kxh5 {+4.78/12} Rh2 {-4.23/10} 72. Rg4 {+4.78/11} Kxc3
{-4.19/10} 73. Bg2 {+4.78/10} Kd1 {-4.22/11} 74. Kf4 {+4.80/13} Ke3
{-4.23/10} 75. Rg3+ {+4.80/11} Kf5 {-4.28/10} 76. Rf3 {+5.00/12} Kd6
{-4.38/10} 77. Rh3 {+4.92/11} Rxh3 {-12.28/17} 78. Bxh3 {+5.59/28} Kf7
{-12.35/18} 79. Bg2 {+12.04/27} Kd6 {-12.43/17} 80. Kd5 {+12.04/16 0.1} Kf5
{-9999.71/18 0.1} 81. h5 {+12.04/15} Kh6 {-9999.77/17} 82. Bf3 {+12.04/22}
Kf7 {-9999.75/17} 83. Bh1 {+12.04/15} Kh6 {-9999.79/18} 84. Bg2 {+12.04/18}
Kg4 {-9999.77/16} 85. Be4 {+12.04/14} Kh6 {-9999.79/18} 86. Bh1 {+12.04/14}
Kf5 {-9999.77/18} 87. Bf3 {+12.04/12} Kh6 {-9999.79/18} 88. Be4 {+12.04/19}
Kf7 {-9999.79/18} 89. Bc2 {+12.04/14} Kh6 {-9999.79/17} 90. Bd3 {+12.04/26}
Kf7 {-9999.79/18} 91. Bc4 {+12.04/15} Kh6 {-9999.79/17} 92. Bb3 {+12.04/19}
Kf5 {-9999.77/17} 93. Ba2 {+12.04/21} Kh6 {-9999.79/17} 94. Bc4 {+12.04/19}
Kf7 {-9999.77/17} 95. Bb3 {+12.04/15} Ke5 {-9999.79/16} 96. h6 {+15.19/13}
Kg6 {-9999.81/14} 97. h7 {+15.19/12} Kh8 {-9999.83/14} 98. Bc4 {+15.19/17}
Kf7 {-9999.85/12} 99. Bd3 {+15.19/13} Kh8 {-9999.87/12} 100. Be4
{+15.19/15} Kf7 {-9999.85/14} 101. Bf3 {+15.30/14} Kh8 {-9999.85/14} 102.
Bg2 {+15.25/15} Kg6 {-9999.85/14} 103. Bh1 {+15.25/14} Kh8 {-9999.87/14}
104. Bf3 {+15.25/16} Kf7 {-9999.85/13} 105. Bg2 {+15.25/14} Kh8
{-9999.87/13} 106. Bh1 {+15.25/17} Kg6 {-9999.85/14} 107. Be4+ {+15.25/15}
Kh8 {-9999.85/13} 108. Bc2 {+15.25/21} Kf7 {-9999.85/14} 109. Bg6+
{+15.25/13} Kh8 {-9999.83/14} 110. Bf5 {+15.25/15} Kf7 {-9999.85/13} 111.
Bc2 {+15.25/14} Kh8 {-9999.87/14} 112. Bd3 {+15.25/21} Kf7 {-9999.85/14}
113. Bb1 {+15.25/14} Kh8 {-9999.87/13} 114. Ba2 {+15.25/18} Kg6
{-9999.85/13} 115. Ke3 {+15.25/14} Kh8 {-9999.83/14} 116. Bd5 {+15.25/18}
Kg6 {-9999.85/14} 117. Be4+ {+15.25/15} Kh8 {-9999.83/13} 118. Bc6
{+15.25/20} Kf7 {-9999.85/13} 119. Kd5 {+15.25/15} Kh8 {-9999.87/13} 120.
Bb7 {+15.25/21 0.1} Kg6 {-9999.85/14 0.1} 121. Ba8 {+15.30/14} Kh8
{-9999.87/14} 122. Bc6 {+127.93/15} Kf7 {-9999.85/14} 123. Bb7 {+127.93/14}
Kh8 {-9999.87/14} 124. Ba8 {+15.25/15} Kf7 {-9999.85/14} 125. Ke3
{+15.25/14} Kh8 {-9999.83/15} 126. Be4 {+15.25/21} Kf7 {-9999.83/14} 127.
Bf3 {+15.25/14} Kh8 {-9999.83/14} 128. Bb7 {+15.25/17} Kg6 {-9999.85/14}
129. Bg2 {+15.25/18} Kh8 {-9999.83/15} 130. Ba8 {+15.25/18} Kf7
{-9999.85/14} 131. Bh1 {+15.25/17} Kh8 {-9999.83/15} 132. Bf3 {+15.25/16}
Kg6 {-9999.85/14} 133. Kf5 {+15.25/21} Kh8 {-9999.87/12} 134. Kd4
{+15.25/22} Kf7 {-9999.85/13} 135. Ba8 {+15.25/13} Kh8 {-9999.83/14} 136.
Bb7 {+15.25/15} Kg6 {-9999.85/13} 137. Bd5 {+15.25/13} Kh8 {-9999.83/14}
138. Bc6 {+15.25/18} Kf7 {-9999.85/13} 139. Be4 {+15.25/12} Kh8
{-9999.83/15} 140. Bd5 {+15.25/20} Kg6 {-9999.85/14} 141. Bf3 {+15.25/18}
Kh8 {-9999.83/15} 142. Be4 {+15.25/16} Kf7 {-9999.83/15} 143. Bg2
{+15.25/22} Kh8 {-9999.83/15} 144. Ba8 {+15.25/23} Kg6 {-9999.85/15} 145.
Bh1 {+15.25/14} Kh8 {-9999.83/15} 146. Bg2 {+15.25/16} Kf7 {-9999.81/14}
147. Bb7 {+15.25/14}
{Xboard adjudication: 50-move rule} 1/2-1/2
Faile sees it is going to be checkmated already for a long time, but Jabba's scor never exceeds +15, so that it apparently does see it can force promotion. But it fails to execute the plan, and keeps aimlessly moving its Bishop until the 50-move axe chops it.

From the position where the Pawn reaches the 7th rank (until there, no problems) the game is easiy won

[d] 7n/7P/8/3N4/8/1B6/8/8 w - - 1 98

98.Bc2 Kf7 {only move} 99.Bd3 Kh8 {or promotes} 100.Kf4 Kf7 {only move} 101.Kg6 Kg5 {say} 102.h8=Q Kf7 103.Qh5 Kd6 (103... Kd8 104.Qd5#) 104.Kh4 Kb7 105.Qd5# (104... Kc8 105.Qc5#) {checkmate} 1-0

[d] 8/1n6/8/3Q4/7N/3B4/8/8 b - - 6 8

Jabba did not see the mate, but what is worse, it did not acheive the promotion that it did see!
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

Ok, thanks.

But there was no rule broken here...?

This is more important for me at the moment... no crashes, or 50 move rule problems.

:D
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

Hmm.

I've played through the game with Jabba here... it sees the promotion, but keeps pushing the promotion down the pv... as the game progresses, the promotion is always six moves or so into the pv, with hash tables on and off.

Any ideas what this might be?

The evaluation of the position is the same here regardless of the bishop position - could this be a factor?

Richard
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

Pure minimax does not care if you promote on the first move, or on the 6th. As long as you have the Queen in the end-leaf, you get the score for it. I guess here there is some funny kind of horizon effect in operation: If you promote early, the opponent's Royal Knight has more time to flee towards the center, which presumably increases black's score. If you promote late, he will be close to the corner in the end-leaf, as he must stay in the corner to defend against promotion.

So of all lines of equal depth that do not have the checkmate within the horizon, the ones where you postponed driving the opponent's Royal Knight out of the corner, and promote, until the last possible moment probably gets a better score. The (transient) price of promotion is that you let the Royal Knight escape to the center, and it tries to push that price over the horizon.

In my engines behavior like hat is discouraged through the delayed-loss bonus. I am not sure how others solve it.
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

Yes, I see what you mean. I think this is the case, because after reading your post, I spent most of last night digging up hash table threads on this forum, and playing through test positions to check that all was ok with the hash!!

:?

Can I ask how you apply this score? A bonus for seeing it earlier (depth based?)


Regards

Richard

PS It would be nice if you ran another tournament :)
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

I will open a thread for this in the programming section, as I think this is of more general interest than just Knightmate.