- Source: TCEC Season 17
The 17th season of the Top Chess Engine Championship began on 2 January 2020 and ended on 22 April 2020. TCEC Season 16 3rd-place finisher Leela Chess Zero won the championship, defeating the defending champion Stockfish 52.5-47.5 in the superfinal.
Season 17 featured for the first time two separate leagues, one for GPU-based engines and one for CPU-based engines. TCEC also raised the computing power available to both CPU and GPU engines. The hardware for CPU engines was doubled to 88 cores, while the hardware for GPU engines was raised to 4 RTX 2080 Ti's.
Overview
In keeping with its identity as a competition run at long time controls on high-end hardware, TCEC secured a hardware upgrade for the competing CPU engines. Among other changes, the number of cores available is doubled from 44 to 88, the operating system used is now Linux, and Syzygy endgame tablebases are now cached directly in the RAM for faster access. Because this upgrade advantages CPU engines compared to GPU engines, TCEC split the qualification paths to Premier Division by introducing separate leagues for CPU and GPU engines. While an upgrade to the GPU servers is being secured, the CPU leagues are played first.
= Structure
=For CPU engines, there will first be a Qualification League consisting of 16 engines, followed by League 2 (16 engines) and League 1 (16 engines). In the Qualification League the top 6 engines promote. In League 2 the top 4 engines promote. The engines in each league are seeded based on their performances in previous seasons. For GPU engines, there will be one league only, with up to 16 competitors. The top 2 GPU engines will then contest a playoff against the top 4 CPU engines in League 1, with the four highest-placing engines promoting to Premier Division.
Premier Division is also expanded from 8 engines to 10. Six engines – Stockfish, Komodo, Houdini, Leela Chess Zero, AllieStein, and Stoofvlees – are seeded directly to Premier Division, based on their top 6 finishes in the previous season. Finally, the top two engines in Premier Division qualify for the 100-game superfinal match.
Results
= CPU Qualification League
=After not competing for five seasons, Season 11 Div 3 engine Defenchess trailblazed the qualification league. It scored 18 wins while conceding no losses, finishing 3.5 points clear at the top. It was the only undefeated engine. Demolito and Winter also locked up two of the promotion spots smoothly, but the remaining three slots were closely contested. Among the competitors, Igel was the only engine to not lose to Defenchess and Demolito, but it lost to bottom-half engines FabChess and Topple. Comparatively, iCE was whitewashed by Defenchess and Igel, but it turned in a strong performance against its other rivals, losing only one other game to Winter. Pirarucu went through a tense moment when it lost to Winter in the penultimate round; however, it pulled out a win with Black against Topple to promote. 7th-placed Minic was in a promotion spot all the way up to the final round, when it lost to Gogobello while iCE beat Counter. This left the two tied at 17.5 points. Minic had the better Sonneborn–Berger score, but it also had one crash, and the number of crashes was the first tiebreak. Nonetheless, in a stroke of good fortune for Minic (and 8th-placed PeSTO), the League Two engines chess22k and Fritz crashed three times during testing for the division. By TCEC rules, if this happened, the author(s) would have to update the engine or it is disqualified. chess22k's and Fritz's authors were not able to update the engines in time, resulting in Minic and PeSTO promoting as lucky losers.
= CPU League Two
=Former Premier Division engine Fire won League Two. It had been relegated in the previous season because its developer had submitted a drastically different neural network-based version that turned out to be significantly weaker. This season, the original, traditional engine played, and it dominated with an undefeated 22/28 (16 wins and 12 draws). It defeated seven engines, including fourth-place Vajolet, 2–0. Second-placed Defenchess also turned in a strong performance, finishing with an undefeated 20.5/28 (13 wins and 15 draws). For the other promoted engines, Winter and PeSTO performed surprisingly well, comfortably finishing above their peers in 7th and 8th respectively. The remaining five promoted engines occupied the bottom five spots and were all relegated along with Wasp (which crashed three times).
After the division concluded, in a repeat of testing for League Two, four League One engines either pulled out or did not run on the new Linux operating system, resulting in the 5th-8th placed engines in League Two promoting.
= CPU League One
=During testing for League One, three engines (Booot, Chiron, and ChessBrainVB) did not play because they did not run on Wine, the compatibility layer that TCEC is using to run Windows programs on Linux. One further engine (former champion Jonny) crashed and was not updated in time. As a result, the 5th to 8th-placed engines from League Two, Pedone, Nemorino, Winter and PeSTO, promoted as lucky losers.
In League One itself, Xiphos, which had just missed out on promotion in Season 16, vaulted to an early lead after scoring five wins with no losses. However, after this bright start, it failed to score more wins. This allowed former Division Premier engine Ethereal to seize first place, in spite of a loss to Komodo MCTS. Fellow competitors Fire and Komodo MCTS also amassed more wins than Xiphos, and by the midway point had overtaken it in the standings. By the final double round-robin, Ethereal, Fire, and Komodo MCTS had more or less secured a playoff spot. Xiphos, who had yet to lose, was barely holding on to fourth place, with rofChade and Defenchess both breathing down its neck. When it lost a crucial game to Fire, it allowed rofChade to pull even, with Defenchess half a point further back. Xiphos knocked Defenchess out of contention with a head-to-head win, but with rofChade having the superior tiebreaks (by number of wins), it needed to either hope for Fire to beat rofChade or to beat Vajolet in its last game. When both games ended drawn, Xiphos finished fifth, again just missing out on promotion.
For the other engines, Laser, which had pipped Xiphos to a playoff spot last season, was able to remain unbeaten until the final double round-robin. However, it collapsed in that round, losing three games (plus forfeited a fourth due to a crash). Winter scored likely the biggest upset of the league by defeating rofChade once, but the rest of the division was not kind to it and fellow lucky losers Nemorino and PeSTO, with all three engines placing in the bottom four. Former Division Premier engine Fizbo, which had been forced to run at a much slower speed because it was not able to utilize all the hardware available to it, finished solidly last, five points off the pace.
= GPU league
=The GPU league was cancelled because only two participants met all the uniqueness criteria: ChessFighter and ScorpioNN. Both engines automatically qualified to play against the top four engines from the CPU league one.
= Playoff
=Fire convincingly won the playoff for Premier Division in spite of no longer being under development. It finished with a +7 score, defeating all its rivals except ScorpioNN at least once. Komodo MCTS and ScorpioNN both lost two games, but finished comfortably in the top four, with wins against rofChade and ChessFighter. League One winner Ethereal stumbled badly in the playoffs, losing first to rofChade and then to Fire. As a result, the final promotion spot was closely contested. In the penultimate round rofChade temporarily pulled even with Ethereal by defeating ChessFighter, but Ethereal drew against Komodo MCTS to remain half a point ahead. It came down to the direct head-to-head encounter in the final round. rofChade needed to defeat Ethereal with the black pieces, which would've let it qualify because of its superior head-to-head score. However, it did not make any headway, and Ethereal squeaked into the Premier Division, half a point ahead of rofChade.
= Premier Division
=In an unprecedented move, TCEC played all the CPU-CPU matches first, to minimize rental costs for the GPUs.
In the CPU-CPU matches, defending champion Stockfish steamrolled its rivals. It defeated Houdini and Ethereal twice, scoring six wins in the process, one more than the rest of the division combined. Houdini, which had not been updated for over two years, was further handicapped by only being able to make use of 64 of the 176 available threads, and was last after the double round robin. Komodo MCTS was the only engine not to lose to Stockfish, but it also failed to score any wins. Fellow promoted engine Fire performed surprisingly well, scoring two wins while losing only to Stockfish. Combined with its run through the lower divisions as well as in Season 16, it set a new TCEC record of 124 games without losing.
In the CPU-GPU and GPU-GPU matches, S16 runner-up AllieStein took an early lead over S16 third-place finisher Lc0, scoring 4 wins to Lc0's 2 in the first round robin. It looked as though the season 16 result, in which AllieStein pipped Lc0 to second place in spite of the latter not losing any games, would be repeated. However, a dramatic second round robin saw Ethereal playing kingmaker. First it defeated AllieStein, then it was defeated by Lc0 after it blundered a 7-man endgame tablebase draw. After this stroke of good fortune Lc0 went on a winning streak to take the lead, defeating Stoofvlees, Komodo, and Komodo MCTS successively. However Ethereal continued to play kingmaker, this time losing to AllieStein in the reverse game and then defeating Lc0 after the latter blundered in a complicated position (diagram). Lc0 finally effectively eliminated Alliestein with a head-to-head win, which also put her ahead of Stockfish in first place, but the drama was not over as she lost another game to Komodo. This allowed Stockfish the chance to at least tie Lc0 at the top of the standings with a win over Stoofvlees, but it failed to do so. In the end, Lc0 won the premier division for the first time in spite of losing its first premier division games since Season 14, while Stockfish failed to finish first for the first time since Season 10.
In the fight to avoid relegation, Houdini, ScorpioNN and Komodo MCTS were quickly left behind, but the final slot was closely contested. Fire failed to score any more wins after its initial two, but it also only lost two more games, to AllieStein and Lc0. Ethereal, with its giant-slaying performance against Lc0 and AllieStein, had taken a surprising fourth place, ahead of traditional powerhouse Komodo. Stoofvlees had played extremely optimistically and suffered losses to the top three competitors as a result, but scored a head-to-head win against both Komodo and Ethereal while not conceding any other losses. By the final games, Ethereal had successfully reached safety, but Komodo was in real danger of relegating after finding itself in a tight position against Lc0. If it lost and Stockfish beat Stoofvlees in the final game, then it would find itself in a three-way tie with Stoofvlees and Fire, and relegated because it had the worst head-to-head score amongst the three. However, when Lc0 pushed too hard and blundered in a time scramble, the game turned into a win for Komodo that put it ahead of Ethereal and left Fire to relegate.
= Superfinal
=The superfinal was contested between Leela Chess Zero and Stockfish, with Leela Chess Zero winning by 5 points (+17 -12 = 71). After a closely contested opening 33 games, Stockfish held a 1-point advantage, but Leela Chess Zero reeled off three wins in the following five games to take control of the superfinal. After both scoring wins as white in the Scandinavian opening in games 43 and 44 respectively, there then followed an extremely tense run of 21 successive draws, with the occasional game being characterised with Leela Chess Zero outplaying Stockfish with the white pieces in the middlegame but being unable to break through Stockfish's extremely accurate defensive play. Leela Chess Zero then scored a crucial victory in game 66 to extend her lead to 3 points, but Stockfish fought back to narrow the gap to 2 points going into the final 12 games. However, Leela Chess Zero finished with a remarkable six wins in the final ten games of the superfinal, and could have won a seventh game were it not for Stockfish finding a brilliant defensive resource in game 100 that Leela did not spot, and was thus able to force a drawn endgame. Leela Chess Zero confirmed herself as champion with wins in games 95 and 96, marking the superfinal's only occurrence of one engine winning the same predetermined opening line as both black and white. Grandmaster Mykhaylo Oleksiyenko described game 96 as a 'magnificent masterpiece'.
= Notable games
=In an article published shortly after the superfinal, British GM Matthew Sadler called the Season 17 superfinal the most interesting of superfinals he has seen, with multiple interesting games to go along with high drama. The difference in playstyle – Leela favors active defense and had a better grasp of fortresses, while Stockfish preferred attritional defense – further contributed to the entertainment value. Although the two finalists are very close in strength, ultimately Leela won because there are more positions in which it can hurt Stockfish than vice versa: Leela is superior in the French Defense, the Benoni Defense, and the King's Indian, while Stockfish is superior in the Open Sicilian.
These games are selected from the many games featured by GM Sadler.
Game 1
After an unexciting opening, Black is a pawn up but is under pressure on the kingside. Leela plays the "stunning" 13...h5, returning the pawn to neutralize any chances of a long-term initiative for White. GM Sadler wrote that he probably would not have dared to consider this move in a real game, and it surprised other commentators Jan Gustafsson, Laurent Fressinet, Peter Heine Nielsen and Anish Giri as well.
Game 1: Stockfish–Leela Chess Zero, Queen's pawn game
1. d4 Nf6 2. Nf3 e6 3. c4 d5 4. cxd5 exd5 5. Bf4 Ne4 6. Nc3 Bb4 7. Rc1 Nc6 8. Nd2 g5 9. Bg3 Nxg3 10. hxg3 Nxd4 11. e3 Bxc3 12. bxc3 Ne6 13. Be2 h5 14. Rxh5 Rxh5 15. Bxh5 Qe7 16. Nb3 c6 17. c4 dxc4 18. Rxc4 Bd7 19. Na5 O-O-O 20. Qb1 Be8 21. Bf3 Qc7 22. Qb4 Qb6 23. Qa3 Nc7 24. Nb3 Bd7 25. Rb4 Nb5 26. Qb2 Qc7 27. Nc5 Qa5 28. Nxd7 Kxd7 29. Kf1 Nd6 30. Qd4 Kc7 31. Rb2 Re8 32. Rd2 Rd8 33. Rb2 Nb5 34. Qe5+ Rd6 35. Qe7+ Rd7 36. Qe5+ Rd6 37. Qe7+ Rd7 38. Qe5+ Kb6 39. Qf6 a6 40. Kg1 Qa3 41. Rc2 Qe7 42. Qb2 Ka7 43. Bg4 Rd8 44. a4 Nc7 45. Rc4 Rd3 46. Be2 Rd5 47. Bh5 f6 48. Bf3 Rd3 49. Re4 Qd6 50. Rb4 b5 51. axb5 axb5 52. Qa2+ Kb6 53. Rb1 Ra3 54. Qf7 Qe6 55. Qg7 Ra4 56. Rc1 c5 57. Kh2 c4 58. Rb1 Qe5 59. Qd7 Ka5 60. Bc6 c3 61. f4 gxf4 62. gxf4 Qh5+ 63. Kg1 Kb6 64. Bxb5 Nxb5 65. Qd6+ Kb7 66. Qd7+ Kb6 67. f5 Qe2 68. Qd6+ Kb7 69. Qc5 Ra5 70. Qe7+ Kc8 71. Qe6+ Kc7 72. Qe7+ Kc8 73. Qe6+ Kc7 1/2-1/2
Game 3
This was the first of seven openings where both engines won with the White pieces. The clashes showed another distinctive difference between the two finalists: while Stockfish goes for checkmate quickly, Leela was happy to grind, taking on average more than twice as many moves to win. In another curious feature, it is Stockfish who has the advanced pawn on h6 against its neural-network opponent (traditionally it has been neural-network engines who usually possessed this trump). In this game, the h6-pawn generated decisive mate threats after Stockfish opened the f-file with 26. f5.
Game 3: Stockfish–Leela Chess Zero, Sicilian Defense
1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. g4 a6 7. g5 Nfd7 8. a3 Nc6 9. Be3 Nde5 10. Be2 Nxd4 11. Qxd4 Nc6 12. Qd2 Be7 13. h4 b5 14. h5 Qa5 15. h6 g6 16. O-O O-O 17. f4 Qc7 18. Rf2 Rb8 19. Raf1 Bd7 20. Bg4 Rbc8 21. Bh3 Qb7 22. Na2 a5 23. Nc3 Rb8 24. b4 axb4 25. axb4 Rfc8 26. f5 Ne5 27. fxg6 fxg6 28. Bf4 Rf8 29. Qd4 Qc7 30. Nd5 exd5 31. Bxd7 Qxd7 32. Qxd5+ Nf7 33. Qd4 Bf6 34. Qxf6 Ne5 35. Qg7+ Qxg7 36. hxg7 Rfe8 37. Bxe5 dxe5 38. Rf8+ Rxf8 39. Rxf8+ Rxf8 40. gxf8=Q+ Kxf8 41. Kf1 Kf7 42. Ke2 Kf8 43. c4 bxc4 44. Kd2 Kg7 45. b5 Kf8 46. b6 Kf7 47. b7 Ke8 48. Kc3 Ke7 49. b8=Q h6 50. gxh6 Kf7 51. h7 g5 52. h8=Q Ke6 53. Qbxe5+ Kd7 1-0
Game 6
This game pair (each engine plays both sides of the same opening) featured the Mar del Plata variation of the King's Indian Defense, one of the most complicated openings in the whole of chess. Leela played one of the most critical variations, to which Stockfish responded with an exceptional defense (see diagrams).
Game 6: Leela Chess Zero–Stockfish, King's Indian Defense
1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Nf3 O-O 6. Be2 e5 7. O-O Nc6 8. d5 Ne7 9. Ne1 Nd7 10. Nd3 f5 11. Bd2 Nf6 12. f3 f4 13. c5 g5 14. Rc1 Ng6 15. Nb5 Rf7 16. Ba5 b6 17. cxd6 cxd6 18. Be1 a6 19. Nc3 a5 20. a4 Bf8 21. Nb5 g4 22. fxg4 Nxe4 23. Rc4 Nf6 24. Bf3 e4 25. Bxe4 Bxg4 26. Bf3 Bxf3 27. Qxf3 Ne5 28. Nxe5 dxe5 29. d6 Rc8 30. Rc6 Rxc6 31. Qxc6 Nd7 32. b4 axb4 33. Bxb4 Qg5 34. Kh1 Qg4 35. Qc4 Qg6 36. Qd5 Kh8 37. Nc3 Rg7 38. Ba3 Rg8 39. Re1 Qh5 40. Bb2 Qg6 41. Ba3 Rg7 42. Rd1 Nf6 43. Qf3 e4 44. Nxe4 Qxe4 45. Bb2 Qg6 46. d7 Nxd7 47. Bxg7+ Qxg7 48. Qxf4 Qf6 49. Qxf6+ Nxf6 50. g3 Kg7 51. Kg2 Kg6 52. Rd8 Be7 53. Rc8 Kf5 54. Kh3 Nd5 55. Rh8 Kg6 56. Rg8+ Kf5 57. Rh8 Nf6 58. Kg2 h5 59. Kh3 Bd6 60. Rc8 Be7 61. Kh4 Ng4+ 62. Kh3 Bf6 63. Rc6 Bd4 64. Rc4 Be3 65. Rb4 Ne5 66. Rb5 Ke4 67. Kh4 Nf3+ 68. Kh3 Bc5 69. Rb2 Kf5 70. Rc2 Nd4 71. Rf2+ Kg6 72. Rd2 Kf5 73. Rd1 Ke4 74. Rd2 Kf5 75. Rd1 Ke4 76. Re1+ Kd5 77. Rc1 Nf5 78. Rc3 Bd4 79. Rc7 Ng7 80. Rd7+ Kc5 81. Re7 Nf5 82. Rf7 Ne3 83. Kh4 Kb4 84. Kxh5 Kxa4 85. g4 b5 86. Rf4 Nc2 87. g5 b4 88. g6 Be5 89. Re4 Bf6 90. Rf4 Be5 91. Re4 Bf6 92. Kh6 Nd4 93. Rf4 Be5 94. Re4 Bf6 95. Rf4 Be5 96. Re4 Bf6 1/2-1/2
Game 14
After Stockfish demonstrated it doesn't understand what to do with its dark-squared Bishop in King's Indian / Benoni structures, Leela demonstrated a winning technique by sacrificing a pawn to increase the scope of its unopposed dark-squared Bishop, eventually pinning Stockfish down with a long-term superiority on the dark squares. However, after reaching a beautiful position (diagram), with human commentators expecting White to launch a kingside attack, Leela played the surprising 28. Bxf6. From a human perspective, trading pieces to weaken squares is difficult to do because Black gets to trade off his passive pieces, but Leela executes masterfully.
Game 14: Leela Chess Zero–Stockfish, Benoni Defense
1. d4 Nf6 2. c4 c5 3. d5 e6 4. Nc3 exd5 5. cxd5 d6 6. Nf3 g6 7. Nd2 Bg7 8. e4 O-O 9. Be2 Nbd7 10. h3 Ne8 11. O-O a6 12. a4 Rb8 13. Nc4 Qe7 14. f4 Bd4+ 15. Kh2 Ndf6 16. Bf3 Bxc3 17. bxc3 Nxe4 18. Qe1 f5 19. Nb6 N8f6 20. c4 Bd7 21. Ra3 h5 22. Kg1 Rf7 23. Re3 a5 24. Qxa5 Qd8 25. Bb2 h4 26. Rfe1 Kh7 27. Rb3 Qf8 28. Bxf6 Nxf6 29. Qd2 Qg7 30. a5 Kg8 31. Qf2 g5 32. Nxd7 Nxd7 33. Bh5 Rff8 34. Re6 Nf6 35. Qe2 Qh6 36. Bf3 g4 37. hxg4 fxg4 38. Bxg4 Qxf4 39. Bh3 Qc1+ 40. Qe1 Qxe1+ 41. Rxe1 Kg7 42. Rb6 Rfd8 43. Reb1 Ra8 44. Rxb7+ Kg6 45. Ra1 Ra6 46. Rb6 Ra7 47. a6 Kg5 48. Rf1 Nh5 49. Rf5+ Kg6 50. Re5 Nf4 51. Kh2 Kh6 52. Rf5 Nh5 53. Bg4 Ng3 54. Re5 Kg6 55. Bd1 Rf7 56. Bc2+ Kf6 57. Re6+ Kg5 58. Rbxd6 Rxd6 59. Rxd6 Ra7 60. Bd3 Kf4 61. Re6 Kg4 62. Kg1 Kg5 63. Kf2 Nh5 64. Kf3 Nf6 65. Ke3 Ng4+ 66. Kd2 Kf4 67. Be2 Ne5 68. Kc3 Rg7 69. Bf1 Ra7 70. Kb3 Ng4 71. Ka4 Ra8 72. Kb5 Ne5 73. Kxc5 Rc8+ 74. Kd4 Nd7 75. Re7 Nc5 76. a7 Nb3+ 77. Kc3 Nc5 78. Kb4 Ne4 79. g3+ Kf3 80. gxh4 Ra8 81. Bg2+ Kxg2 82. Rxe4 Rxa7 83. d6 Rb7+ 84. Kc5 Rf7 85. Re7 Rf5+ 86. Kb6 1-0
Game 21
This game illustrated Leela's active style, even when on the defense. Playing the Black side of a King's Indian Defence, Sämisch Variation, Leela sacrifices two pawns for piece activity, then maintains the initiative to equalize the position.
Game 21: Stockfish–Leela Chess Zero, King's Indian Defense
1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. f3 O-O 6. Be3 Nc6 7. Nge2 a6 8. Qd2 Rb8 9. Rc1 Bd7 10. Ng3 e5 11. d5 Nd4 12. Nge2 c5 13. dxc6 Nxc6 14. Bg5 b5 15. Nd5 bxc4 16. Rxc4 Re8 17. h4 h6 18. Nxf6+ Bxf6 19. Bxh6 d5 20. exd5 Nd4 21. b3 a5 22. Kf2 Nf5 23. Nc3 a4 24. b4 Bb5 25. Nxb5 Rxb5 26. Rc8 Qxc8 27. Bxb5 Rd8 28. Bc6 Qc7 29. g4 Qb6+ 30. Be3 Nxe3 31. Qxe3 Qxb4 32. h5 Be7 33. Kg2 Bc5 34. Qe4 Qd2+ 35. Kh3 Qg5 36. Bxa4 Rb8 37. Re1 Rb4 38. Qxe5 Qxe5 39. Rxe5 Rxa4 40. hxg6 fxg6 41. d6 Bxd6 42. Re6 Bf4 43. Rxg6+ Kf7 44. Rc6 Ke7 45. Kh4 Rxa2 46. g5 Ra4 47. g6 Kf8 48. g7+ Kg8 49. Rc8+ Kxg7 1/2-1/2
Game 33
Stockfish won this game with some excellent middlegame play culminating in a devastating kingside attack.
Game 33: Stockfish–Leela Chess Zero: King's Indian Defense
1. d4 Nf6 2. c4 g6 3. Nf3 Bg7 4. g3 d6 5. Bg2 O-O 6. Nc3 Nbd7 7. O-O e5 8. e4 c6 9. h3 Qb6 10. c5 dxc5 11. dxe5 Ne8 12. Na4 Qa5 13. Qc2 Nc7 14. Bd2 Qb5 15. Rfd1 c4 16. Nc3 Qa6 17. Be3 Nxe5 18. Nxe5 Bxe5 19. f4 Bg7 20. g4 Re8 21. Qf2 Nb5 22. Nxb5 Qxb5 23. Bd4 Bxd4 24. Rxd4 Qc5 25. f5 b5 26. Rad1 Ba6 27. a3 Rab8 28. h4 Bb7 29. h5 gxh5 30. gxh5 Qe5 31. Qh4 c5 32. Rd7 b4 33. f6 Kh8 34. Rxf7 Bc6 35. Rg7 c3 36. bxc3 Rf8 37. Rf1 bxc3 38. h6 Be8 39. f7 Bxf7 40. Rfxf7 Rxf7 41. Rxf7 c2 42. Rf1 Rg8 43. Rc1 Qd4+ 44. Qf2 Qd1+ 45. Qf1 Qd4+ 46. Kh1 Qd6 47. Rxc2 Qxh6+ 48. Kg1 Qe3+ 49. Qf2 Qxa3 50. Qf6+ Rg7 51. Rb2 Qe3+ 52. Kh1 Qe1+ 53. Bf1 Qxe4+ 54. Kh2 Qe8 55. Bh3 h5 56. Be6 Kh7 57. Qe5 Kh6 58. Rb8 Qxb8 59. Qxb8 h4 60. Qf8 c4 61. Bxc4 h3 62. Bd3 Kh5 63. Qxg7 1-0
Game 40
This game pair featured a French Defense, which usually does not bode well for Stockfish when it has the Black pieces. However, in this game, Stockfish was able to find a concrete plan to make space for its pieces. Leela countered with a kingside attack that Stockfish fended off in its typical attritional style, reaching an endgame it accurately assessed as a draw.
Game 40: Leela Chess Zero–Stockfish: French Defense
1. e4 e6 2. d4 d5 3. Nc3 Nf6 4. e5 Nfd7 5. f4 c5 6. Nf3 Nc6 7. Be3 a6 8. Qd2 b5 9. Nd1 Bb7 10. c3 b4 11. Bd3 bxc3 12. bxc3 cxd4 13. Nxd4 Nc5 14. O-O Nxd3 15. Qxd3 Qc7 16. Rb1 Be7 17. f5 Nxe5 18. Qe2 Bc8 19. Bf4 Bd6 20. Ne3 O-O 21. f6 g6 22. Qe1 Rd8 23. Kh1 h5 24. Qg3 Nc4 25. Qg5 Nxe3 26. Bxd6 Qxd6 27. Qxe3 Bd7 28. Nf3 Rab8 29. Ne5 Rxb1 30. Rxb1 Rb8 31. Rxb8+ Qxb8 32. h4 Ba4 33. Qh6 Qf8 34. Qxf8+ Kxf8 35. Kg1 Bb5 36. Kf2 Bc4 37. a3 Ke8 38. Kg3 Bb3 39. Kf4 Bc4 40. Ke3 Bb5 41. Kd4 Bf1 42. g3 Bb5 43. Kc5 Kf8 44. Kb6 Ke8 45. Kb7 Kf8 46. Ka7 Ke8 47. Kb6 Be2 48. Ka5 Bb5 49. Kb4 Bc4 50. Ka4 Bb5+ 51. Ka5 Kf8 52. Nf3 Ke8 53. Ne5 Be2 54. Ka4 Bc4 55. Nf3 Bb5+ 56. Ka5 Kf8 57. Kb4 Be2 58. Ne5 Ke8 59. Kc5 Bb5 60. Kb6 Kf8 61. Ka5 Ke8 62. a4 Be2 63. Kb6 Bd1 64. Ka5 Be2 65. Kb4 Kf8 66. Nc6 Kg8 67. Kc5 Kf8 68. Kb6 Ke8 69. Kc5 Bd3 70. Kb6 Be2 71. Kc5 Bd1 72. Kb4 Bf3 73. Kc5 Bg4 74. Ne5 Be2 75. Kc6 Bd1 76. a5 Be2 77. Kb7 Bb5 78. Kc7 Be2 79. Kc6 Bb5+ 80. Kb7 Kf8 81. Kc8 Ke8 82. Kb8 Bc4 83. Kc8 Bb5 84. Kb8 Kf8 85. Kc7 Ke8 86. Kd6 Kf8 87. Kc5 Be2 88. Kc6 Bb5+ 89. Kd6 Ke8 90. Kc7 Bc4 91. Kb6 Bb5 92. Kc5 Kf8 93. Kd6 Ke8 94. Kc5 Bf1 95. Kc6 Be2 96. Kc7 Bb5 97. g4 hxg4 98. Nxg4 Bc4 99. Ne5 Be2 100. Kd6 Bb5 101. Nf3 Kf8 102. Nd4 Bc4 103. Nc6 Ke8 104. Ne7 Be2 105. Nc8 Kd8 106. Ne7 Bd3 107. Nc6+ Ke8 108. Ne5 Bc4 109. Nd7 Bb5 110. Nc5 Bc4 111. Nb7 Bb5 112. Kc5 Kf8 113. Nd6 Be2 114. Kd4 Kg8 115. Ne8 Bc4 116. Nc7 Be2 117. Kc5 Bf1 118. Kd6 Kf8 119. Kd7 Bc4 120. Kc6 Kg8 121. Kd6 Kf8 122. Kc5 Kg8 123. Kc6 Bf1 124. Kb7 Kh7 125. Kc8 Kh6 126. Kd7 e5 127. Nxd5 Kh5 128. Ne3 Bh3+ 129. Kd6 Kxh4 130. c4 Be6 131. c5 g5 132. Kxe5 g4 133. c6 g3 134. Ng2+ Kg5 135. Ne1 Kg6 136. Nd3 Kg5 137. Ne1 Bg4 138. Ng2 Bf5 139. Ne1 Bc8 140. Ng2 Bh3 141. c7 Bf5 142. Ne1 Be6 143. Nf3+ Kg4 144. Nd4 Bd7 145. Nc2 Kf3 146. Ne1+ Ke2 147. Ng2 Kf3 148. Ne1+ Kf2 149. Nd3+ Ke3 150. Nf4 Bc8 151. Ng2+ Kf3 152. Ne1+ Kf2 153. Nd3+ Ke3 154. Nf4 Kf3 155. Nd3 Ke3 156. Nf4 Kf3 157. Ng6 Kg4 158. Nf4 Kf3 1/2-1/2
Game 61
This sharp gambit in the Trompowsky Attack showed another difference between the two finalists' styles. While Leela immediately struck back in the center and tried to seek play before White can finish deploying its pieces, Stockfish tried to bunker down and defend.
Game 61: Stockfish–Leela Chess Zero: Trompovsky attack (Ruth, Opovcensky opening)
1. d4 Nf6 2. Bg5 c5 3. d5 Qb6 4. Nc3 Qxb2 5. Bd2 Qb6 6. e4 d6 7. f4 e6 8. Nf3 exd5 9. e5 dxe5 10. fxe5 Ne4 11. Nxd5 Qd8 12. Bc4 Be6 13. O-O Nc6 14. Be1 Qd7 15. Qd3 O-O-O 16. Rd1 Nd4 17. Bh4 Bxd5 18. Bxd5 Qxd5 19. c4 Qd7 20. Qxe4 Be7 21. e6 Nxf3+ 22. Qxf3 Qxe6 23. Rfe1 Bxh4 24. Rxd8+ Rxd8 25. Rxe6 fxe6 26. Qh5 Bf6 27. Qxc5+ Kb8 28. Kf1 h6 29. a4 a6 30. Qb6 e5 31. Ke2 Rc8 32. Qb4 Ka7 33. g3 Rc6 34. Qc3 Ka8 35. Qd3 Rc5 36. Kf1 Rc6 37. Kg2 Re6 38. h4 Kb8 39. Qd7 Rc6 40. Qd5 Ka8 41. Kh3 Rc8 42. Qe4 Rc6 43. Qd3 Re6 44. Qd5 Rb6 45. a5 Rc6 46. g4 Ka7 47. Qe4 g5 48. Qe3+ Kb8 49. Qa3 Bd8 50. Qf8 Kc7 51. Qf7+ Kc8 52. Qf5+ Kc7 53. Qxe5+ Kc8 54. h5 Bc7 55. Qe8+ Bd8 56. Qe5 Bf6 57. Qe8+ Kc7 58. Qf7+ Kc8 59. Qe8+ Kc7 60. Qf7+ Kc8 61. Qf8+ Bd8 62. Kg2 Kc7 63. Qf7+ Kb8 64. Qe8 Kc8 65. Qg8 Kc7 66. Kf1 Kc8 67. Qe8 Kc7 68. c5 Bf6 69. Qf7+ Kc8 70. Qf8+ Bd8 71. Qe8 Kc7 72. Ke2 Bf6 73. Qf7+ Kc8 74. Qf8+ Bd8 75. Qe8 Kc7 76. Kf3 Bf6 77. Qf7+ Kc8 78. Qg8+ Bd8 79. Qa2 Kc7 80. Ke2 Kc8 81. Qg8 Kc7 82. Kd3 Kd7 83. Qf7+ Kc8 84. Qg8 Kd7 85. Qf7+ Kc8 86. Qf5+ Kb8 87. Qf8 Kc7 88. Qe8 Bf6 89. Qf7+ Kc8 90. Qf8+ Bd8 91. Ke4 Kd7 92. Qf5+ Kc7 93. Kd3 Rf6 94. Qe5+ Kc8 95. Ke2 Rc6 96. Qe8 Kc7 97. Kd3 Bf6 98. Qf7+ Kc8 99. Qg8+ Bd8 100. Kc4 Kc7 101. Qd5 Kc8 102. Qg8 Kc7 103. Qe8 Rf6 104. Qe3 Kc8 105. Kd5 Bxa5 106. Qe8+ Bd8 107. Qe5 Rc6 108. Qe8 Kc7 109. Kc4 Bf6 110. Qf7+ Kc8 111. Qf8+ Bd8 112. Qe8 Kc7 113. Kb3 Bf6 114. Qf7+ Kc8 115. Qf8+ Bd8 116. Qe8 Kc7 117. Qe4 Kb8 118. Qe8 Kc7 119. Kc4 Bf6 120. Qf7+ Kc8 121. Qg8+ Bd8 122. Kb3 Kd7 123. Ka2 Rf6 124. Qg7+ Be7 125. Kb3 b6 126. cxb6 Rxb6+ 127. Ka2 Ke8 128. Qd4 Rf6 129. Qa7 Kf7 130. Kb3 Rc6 131. Qd7 Rf6 132. Ka4 Kf8 133. Ka5 Rd6 134. Qc8+ Bd8+ 135. Ka4 Ke8 136. Qc1 Rf6 137. Qa1 Rf4+ 138. Kb3 Rf6 139. Qc3 Kf7 140. Qd4 Be7 141. Qe4 Kf8 142. Kc2 Bd6 143. Qa8+ Kf7 144. Qxa6 Be7 145. Qc4+ Kf8 146. Qe4 Rb6 147. Kd3 Rf6 148. Qa8+ Kf7 149. Kc4 Rb6 150. Qd5+ Kf8 151. Qf5+ Ke8 152. Kd4 Rf6 153. Qe5 Rd6+ 154. Ke4 Kf7 155. Qf5+ Rf6 156. Qd5+ Kf8 157. Qe5 Ke8 158. Kd4 Kf8 159. Qb8+ Kf7 160. Qc7 Re6 161. Qc4 Kf6 162. Kc3 Bd6 163. Qa4 Ke7 164. Qc4 Kf7 165. Qd5 Ke7 166. Kc4 Kf7 167. Kc3 Kf6 168. Kd3 Bf8 169. Qc4 Kf7 170. Kd2 Bd6 171. Qd5 Ke7 172. Kc2 Rf6 173. Qg8 Kd7 174. Kd3 Be7 175. Kd4 Re6 176. Kd5 Rb6 177. Qa8 Rd6+ 178. Kc4 Bd8 179. Qa4+ Ke7 180. Qa1 Rf6 181. Qa7+ Ke8 182. Qa1 Kd7 183. Kd4 Bc7 184. Qa4+ Ke7 185. Kc3 Be5+ 186. Kd3 Bf4 187. Kc4 Bc7 188. Qa8 Bd8 189. Kb5 Kd7 190. Qe4 Rb6+ 1/2-1/2
Game 66
Similar to game 14, Stockfish demonstrated it didn't know what to do with its dark square bishop in these pawn structures. GM Sadler wrote that he lost interest in the game after 11...Bxc3, and indeed, Leela won the game.
Game 66: Leela Chess Zero–Stockfish: King's Indian Defense
1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Be2 O-O 6. Nf3 e5 7. O-O exd4 8. Nxd4 Re8 9. f3 Nc6 10. Nc2 Nd7 11. Be3 Bxc3 12. bxc3 b6 13. Nb4 Na5 14. Bh6 Nc5 15. Qd4 Ne6 16. Qf2 c6 17. Rae1 Nc5 18. h4 Qf6 19. Rc1 Bd7 20. Rfe1 Nab7 21. Nd3 Nxd3 22. Bxd3 Qe5 23. Rcd1 f6 24. Bc2 Nd8 25. c5 Nf7 26. Bc1 bxc5 27. f4 Qe6 28. c4 Rab8 29. h5 gxh5 30. Qh4 Qg4 31. Qxf6 Re6 32. Qc3 Rg6 33. Rd2 Qg3 34. Re3 Qxf4 35. e5 Nxe5 36. Bxg6 hxg6 37. Rxe5 Qxe5 38. Qxe5 dxe5 39. Rxd7 Rb1 40. Rd1 Rb4 41. Bg5 Rxc4 42. Rd6 Rg4 43. Bf6 Re4 44. a3 c4 45. Rxc6 Kf7 46. Bg5 Re1+ 47. Kh2 Ra1 48. Rxc4 Rxa3 49. Rc7+ Ke6 50. Rc6+ Kf7 51. Rf6+ Kg7 52. Re6 Ra5 53. Re7+ Kf8 54. Rc7 Ra4 55. Bh6+ Ke8 56. Rg7 Rh4+ 57. Kg1 a5 58. Rxg6 Kf7 59. Ra6 a4 60. Bg5 Rg4 61. Bd8 Rc4 62. Bf6 Rc5 63. Bh8 Kg8 64. Ra8+ Kh7 65. Kh2 Rd5 66. Kg3 a3 67. Bf6 Rd3+ 68. Kh4 Kg6 69. Be7 Rd2 70. Bxa3 Kf7 71. Kh3 Rd1 72. Kh2 Kg6 73. Bc5 Rd2 74. Re8 Re2 75. Bd6 Kf6 76. Rh8 Rd2 77. Bb8 Rb2 78. Ba7 Kg6 79. Rb8 Ra2 80. Bc5 Kf5 81. Rh8 Kg4 82. Rg8+ Kf4 83. Bd6 Rd2 84. Be7 Rd7 85. Bh4 e4 86. Bg5+ Kf5 87. Be3 h4 88. Bf2 Rd3 89. Bxh4 Rd7 90. Rd8 Rb7 91. Bf2 Ke6 92. Re8+ Kd5 93. Be3 Kc4 94. Rxe4+ 1-0
Game 95
This game featured a French Defense. Stockfish had the White pieces, which made it critical for Stockfish because Leela was better at the opening. However, Leela played what was perhaps its best game in the match to win with Black. It was the only Black win in the entire superfinal and, when Leela further won the reverse game, the only opening in which the same engine won with both colors.
Game 95: Stockfish–Leela Chess Zero: French Defense
1. e4 e6 2. d4 d5 3. e5 b6 4. c3 c5 5. Na3 Qd7 6. Bb5 Nc6 7. Nf3 a6 8. Bd3 f6 9. O-O fxe5 10. Nxe5 Nxe5 11. dxe5 Ne7 12. Qf3 Nc6 13. Qg3 Bb7 14. Nc2 O-O-O 15. Rb1 b5 16. b4 c4 17. Be2 d4 18. cxd4 Ne7 19. Rd1 g5 20. Ne3 Nd5 21. Nxd5 Bxd5 22. Bh5 Qc6 23. h3 Be7 24. Rb2 Rdf8 25. a3 Rf5 26. Ra2 Kb7 27. Rf1 Rg8 28. Qg4 Ra8 29. Bd2 Raf8 30. Rc2 a5 31. bxa5 Bxa3 32. Qg3 Be7 33. Rb2 Ka6 34. Bg4 R5f7 35. Bh5 Rg7 36. Rfb1 Rb8 37. Bb4 g4 38. hxg4 Be4 39. Rc1 Rd8 40. Bxe7 Rxe7 41. Qe3 Bxg2 42. g5 Bd5 43. f4 Rb7 44. Kf2 b4 45. Be2 Rc8 46. f5 exf5 47. Rbc2 Qb5 48. e6 f4 49. Qe5 b3 50. Rb2 f3 51. Bd3 Ka7 52. a6 Rbb8 53. Qg7+ Ka8 54. Qd7 Qxd7 55. exd7 Rc6 56. Bxc4 Rxc4 57. Rxb3 Rd8 58. Rxc4 Bxc4 59. Rxf3 Rxd7 60. Ke3 Bf7 61. Kd3 Ka7 62. Rf6 Bg6+ 63. Kc4 Be4 64. Rf4 Rc7+ 65. Kb4 Bd3 66. d5 Bxa6 67. Rf3 Kb7 68. Rg3 Rg7 69. Kc5 Kc7 70. Kd4 Kd6 71. Rh3 Bc8 72. Rh6+ Ke7 73. Ke4 Kf8 74. Rc6 Bd7 75. Rh6 Re7+ 76. Kd4 Kg7 77. Rf6 Rf7 78. Rb6 Bg4 79. Ke5 Rf5+ 80. Ke4 Rxg5 81. Rb7+ Kg6 82. Rb6+ Kh5 83. Rb7 h6 84. Rb2 Bc8 85. Kd4 Kg6 86. Rb6+ Kh7 87. Rb3 Rg4+ 88. Kc5 Rg7 89. Kd4 Rb7 90. Ra3 Rd7 91. Rb3 Bb7 92. Rb5 Kg6 93. Rb6+ Kg5 0-1
Game 96
In an embarrassing loss for Stockfish, Black never manages to develop its king's Bishop and Rook until it was too late. Former World Correspondence Chess Champion Leonardo Ljubičić called Stockfish's handling of its kingside pieces "clueless".
Game 96: Leela Chess Zero–Stockfish: French Defense
1. e4 e6 2. d4 d5 3. e5 b6 4. h4 c5 5. c3 Nc6 6. Nf3 Bd7 7. Bd3 Qc7 8. O-O cxd4 9. Bf4 a6 10. a3 dxc3 11. Nxc3 b5 12. Rc1 Qb6 13. Be3 Qb8 14. Re1 Nge7 15. b4 h6 16. h5 Qb7 17. Bf4 Rc8 18. Qd2 Rc7 19. Bg3 Rg8 20. Rc2 Rc8 21. Ne2 Na7 22. Nfd4 Rxc2 23. Qxc2 Nac6 24. Bh7 Rh8 25. Bd3 Rg8 26. Bh7 Rh8 27. f4 Nxd4 28. Nxd4 Qc8 29. Rc1 Qxc2 30. Bxc2 Nc6 31. Bf2 Nb8 32. Bd3 Be7 33. Rc7 Kd8 34. Rc2 Ke8 35. g4 Rg8 36. Kg2 Kd8 37. Kg3 Rh8 38. Rc1 Rg8 39. Bg1 g6 40. hxg6 fxg6 41. Be3 h5 42. g5 Ke8 43. Rc7 Kf7 44. Bb1 Rd8 45. Nf3 d4 46. Nxd4 Rc8 47. Rb7 Rd8 48. Be4 Re8 49. Kf2 h4 50. Kg2 Rc8 51. Bf2 Be8 52. Rb6 Bd7 53. Kh2 a5 54. bxa5 Bd8 55. Rb7 Bxa5 56. Nxb5 Kg8 57. Nd6 Rf8 58. Be3 Bc6 59. Bxc6 Nxc6 60. Ne4 Rf7 61. Rxf7 Kxf7 62. Bf2 Ne7 63. Bxh4 Nd5 64. Bg3 Bc7 65. Kh3 Ba5 66. Kg4 Ke7 67. Bf2 Kd7 68. Kf3 Kc6 69. Be3 Bc3 70. Bc1 Bd4 71. Ke2 Bc5 72. Kd3 Bf8 73. Kc4 Nb6+ 74. Kc3 Be7 75. Kd3 Nd5 76. Kc4 Bd8 77. Nf6 Nb6+ 78. Kb3 Na8 79. Bd2 Bb6 80. a4 Nc7 81. Kc4 Ba7 82. Kd3 Bc5 83. Ne4 Bf8 84. Kc4 Ba3 85. Nc3 Na6 86. Be3 Bb4 87. Ne2 Be1 88. Nd4+ Kd7 89. Nb3 Kc6 90. a5 Bg3 91. Nd4+ Kd7 92. Bd2 Bh2 93. Ne2 Kc6 94. Be3 Nc7 95. Bc1 Nd5 96. Bd2 Ne7 97. Kd3 Kb7 98. Ke4 Nf5 99. Kf3 Nh4+ 100. Kg4 Nf5 101. Kh3 Bg1 102. Nxg1 Nd4 103. f5 exf5 104. Be3 Ne6 105. Ne2 f4 106. Nxf4 Nxg5+ 107. Kg4 Nf7 108. Nxg6 Ka6 109. Kf5 Nxe5 1-0
External links
Archive of all games