TCEC Grand Champion Runner-up Leela Chess Zero Stockfish 53.5 (14) 46.5 (7) ← TCEC Season 14 TCEC Season 16 →
The 15th season of the Top Chess Engine Championship began on the 6 March 2019 and ended on 12 May 2019.
The season featured for the first time two separate Division 4s, the winners of which moved to a playoff for promotion to Division 3. Also notable is the emergence of a new neural network-based engine based on AlphaZero, AllieStein, which reached the premier division, and Leela Chess Zero's victory in the superfinal, which marks the first time a neural-network engine has won the superfinal.
Overview Structure The season was structured into six divisions: two Division 4s (4a and 4b), Division 3, Division 2, Division 1, and the Premier Division. In Division 4, the top two engines advanced to a playoff against each other, with the top two finishers moving up to Division 3. The structure from Division 3 onward remained consistent with previous seasons: the top two engines in each division advanced to the next higher division, while the bottom two engines were relegated. The top two engines in the Premier Division competed in a 100-game superfinal. The length of the opening books used increased as the divisions progressed, and the time control ranged from 30 minutes + 5 seconds per move in Division 4 to 90 minutes + 5 seconds per move in the Premier Division.
Rules After the controversial game 66 in the previous season's superfinal, TCEC modified its rules for disconnects: in most situations, instead of a restart from scratch, the games will be resumed from the last available position, albeit with time compensation for both engines to fill up their hash tables. The only other significant change is to remove the number of Black wins from the tiebreak criteria, leaving the tiebreakers as 1) number of crashes; 2) direct encounter; 3) number of wins; 4) Sonneborn–Berger score; 5) tournament director decision. Beyond that, the season used the standard rules of the TCEC.
Results Division 4a Nemorino, which had been relegated in Season 14, convincingly won Division 4a. It scored 13 wins in 18 games, and conceded only one loss, to finish 2.5 points ahead of the next-nearest competitor. Second place was more hotly contested. RubiChess defeated Winter head-to-head twice, but also lost both games to Nemorino. Winter scored more wins overall, but ultimately the head-to-head tiebreak meant RubiChess qualified for the playoffs.
<onlyinclude>
Division 4b In contrast to Nemorino's dominating performance in the other division, Pirarucu won Division 4b by only half a point, just ahead of AllieStein, who was in turn only half a point ahead of Wasp. Pirarucu lost the head-to-head against AllieStein, but also managed to dominate the lower half of the field harder than AllieStein. ScorpioNN, which had been thoroughly outclassed in the previous season's Division 4, showed it had improved tremendously to score five wins; however it was still unstable and crashed three times, leading to a disqualification.
<onlyinclude>
Playoffs Nemorino, RubiChess, Pirarucu and Alliestein qualified for the playoffs. In a dominating performance that showed how fast it was improving, AllieStein crushed the field and finished 3.5 points above second-placed Nemorino, winning all four of the head-to-head games against Nemorino and losing only one game to RubiChess. Despite the losses to AllieStein, Nemorino finished 1.5 points ahead of third-placed Pirarucu on the back of two head-to-head wins.
<onlyinclude>
Division 3 Division 3 was closely contested, with every engine winning and losing games. rofChade and Alliestein finished first and second with 18/28 and 16.5/28 respectively, ahead of third-placed Arasan with 15.5/28. Arasan had missed out on promotion in Season 14 because eventual Premier Division engines Komodo MCTS and Leela Chess Zero were also in the division, and finished third again this season. Newly promoted Nemorino found itself outmatched and finished last with 11/28.
<onlyinclude>
Division 2 Division 2 was less closely contested. Xiphos and AllieStein dominated, finishing first and second respectively some four points ahead of everyone else. First-placed Xiphos lost two games to AllieStein, who was still improving quickly, but dominated the rest of the field, scoring 3.5/4 in its mini-matches against ChessBrainVB, rofChade, Fritz, and Nirvana. At the other end of the table, Nirvana was outclassed and finished dead last, five points from safety and without winning a single game. Former champion Fritz, which had not been updated, was also relegated for a second season in a row.
<onlyinclude>
Division 1
Early favorite Komodo MCTS, who had been doing respectably in the Premier Division last season until it was disqualified for crashing, comfortably won the division with 17.5/28. Up against its strongest opponents yet, AllieStein continued to show it was improving fast enough to be able to compete, finishing second behind Komodo MCTS. Fellow promoted engine Xiphos finished third, one point behind AllieStein, after losing yet another two games to AllieStein. At the other end of the table, Italian champion Chiron finished last, three points off the pace, but the other relegation spot was closely contested. Former champion Jonny needed to hold Komodo MCTS to a draw with black in its final game to finish ahead of Fizbo, who had superior tiebreakers. It failed, and was relegated.
<onlyinclude>
Premier Division Although expectations were for a competitive premier division, as the division progressed things turned out to be straightforward. Last season's champion Stockfish continued to demonstrate its superiority to the field, comfortably beating every other engine – in each of its head-to-head matches it had at least a +2 score – except the previous season's runner-up Leela. Ominously, however, it lost a game to Leela. Meanwhile, Leela did not win nearly as many games as Stockfish, but also lost none. Together, Leela and Stockfish had more wins than the rest of the division combined, and the gulf between 2nd-place Leela and 3rd-place Komodo was a massive 4 points. At the other end of the table, Ethereal (who had avoided relegation last season only because its competitor Komodo MCTS crashed three times) and Fire quickly found themselves outclassed, finishing 2–3 points off the pace. Unlike last season, however, both tailenders managed to score two wins.
Compared to the top and bottom, the middle of the table was fiercely contested between Komodo, Komodo MCTS, Houdini, and AllieStein. Each engine fought to avoid losing to Stockfish & Leela while beating up on Ethereal & Fire. Komodo MCTS leapt to an early lead after defeating Fire, while AllieStein lost to first Houdini and then Leela to rank last. Meanwhile, Komodo did not win any games, but didn't lose any either. As the division progressed, it became clear that a 50% score would not suffice to compete for third place, and when Komodo further went down to Stockfish it found itself last. Komodo MCTS was still in the lead when it crashed in what was probably a drawn position against AllieStein. This led to the number of threads for Komodo MCTS being reduced from 43 to 32, which likely contributed to its weaker performance in the final segment of the division. In the last round-robin round of the division, Komodo scored a head-to-head win against AllieStein, while simultaneously defeating Fire twice with both colors of the same opening. This led to it finally finishing third, four points behind Leela but a point ahead of Houdini and AllieStein.
<onlyinclude>
Superfinal Going into the superfinal, Leela had the momentum on the back of its victory at Chess.com's Blitz championship, its superior head-to-head score against Stockfish in the Premier Division, its win in the TCEC Cup 3, and the fact that it had shown a lot of improvement in self-play while Stockfish had been stagnant. Combined, it meant Stockfish was no longer the favorite to win the superfinal.
Leela drew first blood by winning game 10 on the white side of a Benoni. Although Stockfish defended with characteristic tenacity, it was eventually forced to sacrifice a piece for two pawns, and Leela ground out a win. Stockfish equalized in game 12 after Leela blundered in a complicated endgame where she was up material, but Stockfish had several menacing passed pawns. After this initial exchange, Leela took a commanding lead by winning games 16, 18, 24 and 26, while conceding none. Stockfish finally scored a win in game 35, but failed to hold the reverse game, and after Leela won game 38 the gap widened further to five games. There was a glimmer of hope for Stockfish when it won games 43 and 45 to narrow the gap to 3 points, but Leela scored a decisive victory in games 61 and 62, outplaying Stockfish with both the white and black pieces in a Trompowsky Attack. The final third of the superfinal was more evenly contested, but Leela only conceded losses when Stockfish also lost the opening, and further managed to win game 86 after holding the reverse. In the end, Leela won by seven points, +14 -7 =79.
<onlyinclude>
Notable games In an article describing his impressions of the superfinal, British GM Matthew Sadler noted key differences between Stockfish's and Leela's style, as well as their strengths & weaknesses, using games 43/44, 45, 61, and 97 as examples.
Games 43/44 This game pair (each engine plays both sides of the same opening) featured a dubious line of the Two Knights Defense: 1.e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5?! This extremely risky recapture has been described by IM Lawrence Trent as a move that is "certainly not to be recommended". Forced to defend the Black side of this opening, Stockfish steered the game to a cheerless and passive but tenable position, similar to what Fabiano Caruana had done in Game 9 of the World Chess Championship 2018. Like Caruana, Stockfish faced a long defensive task with no active plans of its own, but also like Caruana, Stockfish was able to hold the position. Meanwhile, when it was Leela's turn to defend with Black, it sought complications and wound up in a chaotic position (diagram). Stockfish's "trench warfare" playstyle fared better than Leela's in this game pair, and Stockfish won this opening by winning with White while drawing with Black.
Game 43: Stockfish–Leela Chess Zero (Two Knights Defense, Lolli attack)
1. e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5 6. d4 Nxd4 7. c3 b5 8. Bd3 h6 9. Nxf7 Kxf7 10. cxd4 exd4 11. O-O Rb8 12. a4 Nb4 13. Bxb5 Kg6 14. Nd2 Bd6 15. Re1 a6 16. Bc4 Rf8 17. Nf3 c5 18. Re4 Qf6 19. Ra3 Bf5 20. Nh4+ Kh7 21. Nxf5 Qxf5 22. Qe2 Rbd8 23. Rh3 d3 24. Bxd3 Nxd3 25. Rxd3 Rfe8 26. Rde3 Rxe4 27. Rxe4 Bc7 28. g3 Rd1+ 29. Qxd1 Qxe4 30. Be3 Be5 31. Bxc5 Bxb2 32. h4 Bf6 33. Ba7 Kh8 34. a5 Bc3 35. Bb6 Qf5 36. Kg2 Qb5 37. Qd8+ Kh7 38. Qc7 Qd3 39. Kh2 Bd2 40. Qc5 Bc3 41. Qc8 Bb4 42. Qc7 Bc3 43. Qc8 Be1 44. Qe6 Bd2 45. Qf7 Be1 46. Kg2 Bd2 47. Qh5 Bc3 48. Qf3 Qc4 49. h5 Kh8 50. Qf8+ Kh7 51. Qf5+ Kh8 52. Qf8+ Kh7 53. Qf5+ Kh8 54. Kg1 Kg8 55. Kh2 Kh8 56. Qf8+ Kh7 57. Qf5+ Kg8 58. Be3 Kh8 59. Kg1 Kg8 60. Kh2 Kh8 61. Ba7 Kg8 62. Bb6 Kh8 63. Qf8+ Kh7 64. Qf3 Bf6 65. Qf5+ Kg8 66. Be3 Bc3 67. Kg2 Qc6+ 68. Kg1 Qc4 69. Kg2 Qc6+ 70. Kh2 Qc4 71. Qc2 Qb4 72. Bb6 Qc4 73. Qd1 Kh7 74. Qc2+ Kh8 75. Qd1 Kh7 76. Kg2 Kg8 77. Kg1 Bb4 78. Qd7 Bc3 79. Qc7 Qxc7 80. Bxc7 Kf7 81. Kg2 g6 82. hxg6+ Kxg6 83. Kf3 Kf5 84. g4+ Kg6 85. Ke4 h5 86. gxh5+ Kxh5 87. Kf5 Be1 88. f4 Bg3 89. Bd8 Kh6 90. Ke4 Kg6 91. Bc7 Be1 92. Ke5 Kf7 93. Kd5 Ke7 94. Kc6 Bd2 95. Kb6 Kd7 96. Be5 Ke6 1-0
Game 44: Leela Chess Zero–Stockfish (Two Knights Defense, Lolli attack)