Thursday, November 13, 2014

Computer chess

Today the internet provides us an abundance of information. If you follow Chessbase (and I don't mention on purpose Chessvibes, which after the acquisition by only remains a shadow of the initial site) then you know what I mean. There are not only the toptournaments which are successive but there are also national and local events, twic and many other blogs and sites. I forget the DVD's, chessmagazines, books which have some more or less some lasting value.

Currently the 7th season of TCEC is ongoing, and the games can be watched live. For people not yet familiar with TCEC, it is the unofficial WC for engines in tournament-chess. In the previous years this format earned credibility, the tournaments run smoothly and the site is exemplary. With the worldchampionship ahead (I wrote this article on 6-7th of November), it will be a difficult choice. In the previous WC between Anand and Carlen I did follow some games live (this was possible considering the time-difference with India as it was after office hours) and I really enjoyed it. Especially the game in which Carlsen in a rook-endgame sacrificed 2 pawns to challenge Anand with the advanced king and pawn made live a big impression. Running an engine in the background allows the kibitzer to easily understand the ongoing events. This is the big asset of live watching grandmaster-games.

Maybe some people will consider evaluating a position with a single number too simplistic for chess but for many modest players - and I am one of them- this evaluation plays the role of a grandmaster-commentator.
Recently - in fact still ongoing- I am following the 7th season of TCEC. We are now in stage 2 and I catch myself that I daily do a quick check how the ongoing game is folding out. The tournament is extremely strong - Carlsen would not have any chance as all engines are stronger than him. E.g. the average calculation-depth is 25-30 plies and it often happens that at the end of a main-line we have an endgame on the board, while the opening isn't finished yet. Another example: Chiron announced against Naum mate in 93 moves. It is not a record (in the Lomonosov database there are mate-sequences of more than 500 moves), but still it is impressive how deep chess-software gets. The fun part is that they play this time without real openings - engines have to invent theory themselves and try to achieve nice positions (engines better have to use some early middlegame-knowledge which otherwise is only necessary if the opponent leaves book early).

The 4 top-engines (Komodo, Stockfish, Houdini and newcomer Gull) have their own characteristics. Especially Komodo's analysis of his game against Houdini impressed me a lot.
[Event "TCEC Season 7 - Stage 2"] [Site ""] [Date "2014.11.04"] [Round "9"] [White "Houdini 4"] [Black "Komodo 1318"] [Result "0-1"] [ECO "D12"] [WhiteElo "3224"] [BlackElo "3230"] [PlyCount "219"] [EventDate "2014.10.24"] 1. d4 d5 2. c4 c6 3. Nf3 Nf6 4. e3 Bf5 5. Nc3 e6 6. Nh4 Bg6 7. Nxg6 hxg6 8. Qb3 Qc7 9. g3 Be7 10. Bg2 O-O 11. O-O Rd8 12. Rd1 Nbd7 13. a3 Nb6 14. c5 Nbd7 15. Qc2 e5 16. f3 Nf8 17. b4 b6 18. Rb1 Ne6 19. Ne2 e4 20. fxe4 Nxe4 21. Bxe4 dxe4 22. Rf1 Rab8 23. Qxe4 Bf6 24. Qc2 Qd7 25. Bd2 Re8 26. Nf4 Bg5 27. Nxe6 Rxe6 28. Rfe1 Rbe8 29. Qd3 b5 30. Qb3 Re4 31. Rbc1 R8e6 32. Rc3 Rf6 33. Qd1 Qh3 34. Qe2 Rfe6 35. Qg2 Qg4 36. h3 Qf5 37. a4 a6 38. axb5 axb5 39. Qf1 Qd5 40. Ra3 Qd7 41. Qf3 Qe7 42. Kh1 Rf6 43. Qe2 Qe8 44. Rd3 Rfe6 45. Qf3 Qa8 46. Rb1 Re7 47. Rbb3 Re8 48. Be1 Qc8 49. Kg2 Qe6 50. Bf2 Rd8 51. Ra3 Rd5 52. Kh2 Rf5 53. Qe2 Bh6 54. Qa2 Rd5 55. Kg2 Kh7 56. Qb3 g5 57. Ra1 g4 58. h4 Qf6 59. Qc2 Qf3 60. Kg1 g6 61. Qd1 Qf6 62. Ra2 Rf5 63. Re2 Rh5 64. Qf1 Qf5 65. Be1 Qe6 66. Bd2 Kg8 67. Rf2 Bxe3 68. Bxe3 Rxe3 69. Rf6 Qxf6 70. Qxf6 Rxd3 71. Qxc6 Rxg3 72. Kf2 Rb3 73. Qc8 Kg7 74. Qxg4 Rf5 75. Ke2 Rxb4 76. Qg1 Rc4 77. Qa1 Rd5 78. Kf3 b4 79. Ke3 Rh5 80. Kd3 Rc3 81. Ke4 Rc2 82. d5 f6 83. d6 Rcxc5 84. Kd4 Rhd5 85. Ke4 Ra5 86. Qc1 Rdc5 87. Qd1 Re5 88. Kf3 Rf5 89. Kg2 Rfd5 90. Qe1 Ra2 91. Kg3 Rd3 92. Kf4 Kh6 93. Qe7 Rf2 94. Ke4 Rff3 95. Qd8 Kh5 96. Qb6 Kg4 97. Qg1 Rg3 98. Qc1 b3 99. Qf4 Kh5 100. Qf2 f5 101. Ke5 Rge3 102. Kf6 Rxd6 103. Kg7 Rd7 104. Kf8 Rc3 105. Ke8 Rb7 106. Kd8 Rb8 107. Kd7 Rc4 108. Qe2 Rg4 109. Qb2 Rb7 110. Kd6 0-1
Komodo sacrificed a pawn for permanent pressure on the whites position and you could notice that Houdini never would escape out of it unless returning the material. Here Komodo showed constantly a minimal plus for white (despite the pawn extra for white) and kept this evaluation stable( the position did not change during 30 moves). Houdini evaluated the positions bit differently, although nothing substantially changed. It was clear that Komode made a much more 'human' evaluation of the position and surpassed the pure calculations of (in this case useless) small advantages. In the end Komodo broke through. I don't really care if this had to do with a better evaluation or a better calculation. Anyway Komodo evaluated the position more accurate and therefore deservedly won the game. Such improvement is a big advantage for each player and this is exactly the main asset of using Komodo for analysis.

This was only 1 example in favor of Komodo. In Komodo - Protector, the engine punished superbly an inferior queen-move in the endgame ( I wonder if somebody like Carlsen or Caruana would notice such opportunity). At move 54 Protector plays Qd7 instead of the anticipated Qb8 by Komodo. What follows is a long line in which black gets out of balance (Komodo's evaluation raises to maximally 0,85) but the advantage is not large enough to win as insufficient material remains on the board. So immediately also a counter-example but nevertheless a very instructive and epic game.
[Event "TCEC Season 7 - Stage 2"] [Site ""] [Date "2014.11.05"] [Round "10"] [White "Komodo 1318"] [Black "Protector 1.8b1"] [Result "1/2-1/2"] [ECO "E11"] [WhiteElo "3230"] [BlackElo "3000"] [SetUp "1"] [FEN "2r5/5pk1/1nnqp1p1/1N1p3p/3P3P/4QPP1/R4PK1/5B2 b - - 0 54"] [PlyCount "253"] [EventDate "2014.10.24"] 54... Qd7 {(Db8 was expected by Komodo. It is instructive to see how this little mistake is exploited but is just not sufficient for the win.)} 55. Qf4 Nc4 56. Bxc4 dxc4 57. Nd6 Rb8 58. Rc2 Rd8 59. Ne4 Qxd4 60. Rd2 Qa1 61. Rxd8 Nxd8 62. Qc7 Qa8 63. Nd6 Kg8 64. Nc8 Nb7 65. Nb6 Qa7 66. Nd7 Qa8 67. Qc6 c3 68. Qxc3 Qd8 69. Nf6 Kf8 70. Qb4 Qe7 71. Nh7 Ke8 72. Qb5 Kd8 73. Ng5 Kc7 74. Ne4 Qd8 75. Qc4 Kb6 76. Qc3 Kb5 77. Qb3 Kc6 78. Qb4 Kc7 79. Qc3 Kd7 80. Qd4 Kc6 81. Qa4 Kc7 82. Qa3 Kd7 83. Kg1 Kc7 84. Qa6 Qd4 85. Kg2 Qb4 86. Qa1 Qe7 87. Qa7 Qd8 88. Qa6 Qd4 89. Qa3 Kd7 90. Qf8 Nd8 91. Ng5 Qf6 92. Qb4 Qe7 93. Qa4 Nc6 94. Qb5 Kc7 95. Qc4 Kd7 96. Qa4 e5 97. Qb3 Nd8 98. Qb6 Ke8 99. Nh7 Qe6 100. Qb4 Qc6 101. Qf8 Kd7 102. Ng5 Qd5 103. Ne4 Qd4 104. Qa3 Nb7 105. Qb3 Nd8 106. Qb8 f5 107. Ng5 Qd6 108. Qa7 Kc6 109. Qe3 Kb5 110. Qe2 Kb6 111. Qa2 Kb5 112. Qb3 Kc5 113. Qa3 Kc6 114. Qa5 Kb7 115. Qc3 Kb6 116. Qc4 Ka5 117. Qb3 Ka6 118. Kf1 Ka5 119. Kg1 Ka6 120. Kg2 Ka5 121. Qc4 Kb6 122. Qa4 Nc6 123. Qb3 Kc7 124. Qc4 Kb6 125. Nf7 Qe7 126. Qb3 Kc5 127. Ng5 Qe8 128. Qc3 Kd5 129. Qc2 Qe7 130. Qb3 Kc5 131. Qa2 Qf6 132. Ne6 Kd6 133. Nf8 Ke7 134. Qa3 Kd8 135. Nh7 Qe7 136. Qa6 Kc7 137. Ng5 Qd6 138. Qb5 Nd8 139. Qe8 Kb7 140. Qg8 Ka6 141. Kh3 Nc6 142. Qc4 Kb6 143. Qb3 Kc7 144. Kg2 Nd8 145. Qg8 Kb7 146. Nh7 Nc6 147. Nf8 Ne7 148. Qf7 Ka6 149. Qb3 Ka7 150. Nh7 Nc6 151. Ng5 Nd8 152. g4 hxg4 153. fxg4 fxg4 154. Ne4 Qd4 155. Nc3 Qc5 156. Kg3 Nc6 157. Qf7 Ne7 158. Kxg4 Ka6 159. Qf3 Ka5 160. Ne4 Qc1 161. Ng3 Qc5 162. Qe3 Qd6 163. Kg5 Nd5 164. Qd2 Kb6 165. Qb2 Ka5 166. Qa2 Kb5 167. Qb1 Ka5 168. Qxg6 Qf8 169. Qe6 Qf4 170. Kg6 Qd4 171. Ne2 Qe4 172. Kg5 Nb4 173. Ng3 Qf4 174. Kh5 Qf3 175. Kg6 Nd3 176. Kg7 Qxf2 177. Qd5 Nc5 178. Qxe5 Kb4 179. h5 Ne6 180. Qxe6 Qxg3 1/2-1/2
A second remarkable aspect which I noticed for Komodo, is that the program starts to calculate faster when the game proceeds. No other engine shows such behavior. In the game against Houdini Komodo starts at 17.000 knps and finishes at 40.000 knps – Houdini stayed for a very long time just below 30.000 knps during the complete game. It seems Komodo is programmed in such way that the number of parameters to be calculated are decreased in the endgame without a negative impact on the playing-strength. If you add a very clever searching-algorithm (Komodo often calculates much deeper than the other engines which calculate faster) then apparently you have a top-engine. Often a new engine is promoted as indispensable or a big step forwards but in the last years we can count the game changers on one hand:Fruit, Rybka, Houdini and maybe now also Komodo. In a world in which we can easily analyze with free engines, it is maybe again worth buying Komodo.

Stockfish has become less extreme in his evaluation, but at the moment of writing Komodo was still the only engine unbeaten. I am a fan of Stockfish, if only because it is a freeware project - an example of the force of cooperation on the internet. Besides it was the first program considered as stronger than Houdini on the CCRL-site. Cheng (nbr 46 on the CCRL-list) almost lost childishly in their mutual game -only 34 moves which is a bit like grandmaster against amateur.

Houdini is a known force but we don't see any big improvements anymore. The engine made moderate progression since version 1.5 and misses the consistent small steps of improvement which the Komodo-team demonstrates already in several releases (late Don Daily mentioned before his dead that he still had several ideas to improve the engine). Nonetheless the engine still plays super-human and almost wins every time against weaker engines. An occasional loss against an almost equivalent opponent (Komodo, Chiron) seems to be the price which must be paid. If people think that on a level of +3000 that combinations are not possible and a win/loss is only bad programming, must surely replay the game Naum - Houdini in which Houdini plays the temporarily exchange-sacrifice 19...Rxb3. It wins the white queen for the 2 rooks, shatters the white pawns and finally picks them up one by one.
[Event "TCEC Season 7 - Stage 2"] [Site ""] [Date "2014.10.30"] [Round "5"] [White "Naum 4.6"] [Black "Houdini 4"] [Result "0-1"] [ECO "B80"] [WhiteElo "3074"] [BlackElo "3224"] [PlyCount "151"] [EventDate "2014.10.24"] 1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be3 e6 7. Qf3 Qc7 8. a3 Nbd7 9. O-O-O b5 10. Qe2 h5 11. Bg5 Rb8 12. Qe1 Be7 13. f3 Nc5 14. h4 O-O 15. g4 b4 16. axb4 Rxb4 17. gxh5 Bd7 18. Rg1 Rfb8 19. b3 Rxb3 {(A temporary exchange-sacrifice after which black wins the queen for 2 rooks, shatters the white pawns and finally picks them up one by one.)} 20. Nxb3 Nxb3 21. cxb3 Rxb3 22. Rd3 d5 23. Kd1 Ba4 24. Nxa4 Rb1 25. Ke2 Rxe1 26. Kxe1 Qa5 27. Nc3 d4 28. Bd2 dxc3 29. Bxc3 Qxh5 30. Kd2 Qxh4 31. Rg2 Nh5 32. Kc2 a5 33. Be2 Qh1 34. Rg4 Nf4 35. Rxg7 Kf8 36. Rd2 Nxe2 37. Rxe2 Qxf3 38. Rgg2 a4 39. Rgf2 Qg4 40. Rh2 Bg5 41. Bd2 Bh4 42. Bb4 Ke8 43. Bc3 Bg3 44. Rhg2 Qf3 45. Kb2 a3 46. Kb3 Ke7 47. Rc2 Bd6 48. Rgd2 Qxe4 49. Rd4 Qh1 50. Rcd2 Qb7 51. Kc4 Qc6 52. Kb3 Bc5 53. Rc4 Qb6 54. Ka4 Bd6 55. Rcd4 Qa6 56. Kb3 Qb5 57. Bb4 Bxb4 58. Rxb4 Qa6 59. Ra4 Qb6 60. Ka2 f5 61. Rxa3 f4 62. Rb2 Qc6 63. Rbb3 Qc2 64. Ka1 e5 65. Ra7 Ke6 66. Rb6 Kf5 67. Rf7 Ke4 68. Rff6 f3 69. Rb4 Kd5 70. Rb5 Kd4 71. Rb2 Qc1 72. Ka2 e4 73. Rf5 Qc4 74. Rb3 Qe6 75. Rf4 Qa6 76. Kb1 0-1
The 3 engines split the final places of the previous TCEC seasons - over their supremacy there is no discussion.

Gull is the new star - on CCRL40 (probably the most reliable reference for defining the strength of engines), it was already positioned at spot 4 - but here it seems to confirm. Some games it seems to win with luck but engine-chess exactly distinguishes from "human" chess that luck is absent (no bad day, no chess-blindness, no tiredness). Personally I don't know the engine well but it is surely has potential and maybe it can still bring surprises in the next steps (it is allowed to introduce a newer release in the later tournament-phases).

Junior is the number 5 - the program has a big collection of world-titles (although we can argue that some titles were obtained while not all top-engines were present). It also played a few fine games, in which his evaluation (which I always considered as very neutral - a bit like Komodo today) was often more accurate. A striking example was Junior-Chiron, in which the h-file (and the weak position of the black king) was of a higher importance than the 2 connected black pawns in the center.
[Event "TCEC Season 7 - Stage 2"] [Site ""] [Date "2014.10.31"] [Round "6"] [White "Junior 13.3"] [Black "Chiron 2"] [Result "1-0"] [ECO "D45"] [WhiteElo "3000"] [BlackElo "3049"] [PlyCount "120"] [EventDate "2014.10.24"] 1. d4 d5 2. Nf3 Nf6 3. c4 e6 4. Nc3 c6 5. e3 Nbd7 6. Be2 b6 7. O-O Bb7 8. b3 Bd6 9. Qc2 O-O 10. Bb2 Qe7 11. h3 Rfd8 12. Rfd1 Rac8 13. Rac1 a6 14. Bd3 c5 15. cxd5 exd5 16. dxc5 bxc5 17. Na4 Re8 18. Qe2 Ra8 19. Qd2 g6 20. Ba1 Bc6 21. Bf1 Bxa4 22. bxa4 c4 23. Qd4 Rac8 24. g4 h6 25. Bg2 Rb8 26. h4 g5 27. hxg5 hxg5 28. Kf1 Kf8 29. a5 Rb5 30. Qd2 Ne4 31. Qc2 Ndf6 32. Bxf6 Nxf6 33. Nd4 Rc5 34. Bf3 Qd7 35. Kg2 Be5 36. Rh1 Nxg4 37. Nf5 Nf6 38. Rh8 Ng8 39. Rh7 Rb8 40. Bg4 Rc7 41. Nh6 Qc6 42. Nxg8 Kxg8 43. Rh5 d4 44. Bf3 Qf6 45. Qh7 Kf8 46. Rch1 d3 47. Rh6 Qg7 48. Qf5 Re8 49. Rxa6 d2 50. Rh7 Qg8 51. Bd1 g4 52. Rah6 c3 53. a6 g3 54. f4 Bg7 55. Qd3 Rce7 56. Qd6 Rc8 57. a7 Rce8 58. Rh5 Rc8 59. Bc2 d1=Q 60. Bxd1 c2 {(Resiged because of Rc5.)} 1-0
Engine-chess boring? Well it won't be covered in detail in the chess-history but as it is represented on TCEC, it surely is enjoyable. And as all games are downloadable in the analysis-section (pretty redundant as the site already provides the service to replay them) it completes the fun. With this we arrived at the beginning: computer-chess-sites generate hundreds of extra games daily - games of a (very) high quality. Again an extra source to check materials for games ...


No comments:

Post a Comment