The 19th season of the Top Chess Engine Championship began on 6 August 2020 and ended on 16 October 2020. The season 19 superfinal was a rematch between Stockfish and Leela Chess Zero, the same two engines that had contested the superfinal in the previous two seasons. Stockfish, the defending champion, won by 9 games (+18 -9 =73).

TCEC Grand Champion Runner-up Stockfish Leela Chess Zero 54.5 (18) 45.5 (9) ← TCEC Season 18 TCEC Season 20 →

Overview The format of TCEC Season 19 is largely unchanged from that of Season 18. The only difference is that the time control in the superfinal is once again 120 minutes + 10 seconds per move, increased from 90 min + 10s in Season 18. The rules are also largely unchanged, with the only significant addition being r-mobility as a tiebreak criterion. This tiebreak depends on the number of legal moves available to both sides in the last phase of the game; the side with the fewer legal moves loses.

Tiebreak rules The tiebreak rules for TCEC Season 19 are:

For any event except the superfinal: the number of crashes. Head-to-head score. Number of wins. Sonneborn-Berger score. r-mobility. A decision by the tournament organizers.

Results Qualification League New entrant SlowChess was the early favorite in the Qualification League because it had shown a great deal of improvement in self-play in spite of being a relatively new engine. It lived up to its billing by dominating the Qualification League, scoring 16 wins in 22 games, including head-to-head wins against all its opponents. Second place was much more fiercely contested, with Roc eventually squeezing past Combusken in spite of losing both head-to-head matches to its rival. Eventual fourth-place finisher Monolith was also in the running up until the last rounds, but it lost both its games against SlowChess as well as a game against Roc which eventually left it 1.5 points behind Roc.

At the other end of the table, the other new entrant A0lite finished last together with Bagatur, scoring 5/22.

<onlyinclude>

League 3 Although the competition was much stronger, QL winner SlowChess also crushed League 3, scoring 13/18, 1.5 points ahead of second-place and third-place Igel & Minic. This time, however, there were three engines it was not able to beat. Comparatively the fight for second place was very close, with Igel barely squeezing past Minic on the strength of a head-to-head win. This result will later turn out to have a significant impact on League 2. The rest of the league was straightforward, with iCE and Counter finishing solidly at the bottom, losing 7 games each and 2.5 points from safety.

<onlyinclude>

League 2 League 2 saw the first time an NNUE (efficiently updatable neural network) engine played. NNUEs had been introduced to computer shogi in 2018, and defending champion Stockfish's developers had produced a working version for chess in June 2020. This new "Stockfish NNUE" gained strength very quickly, and by August 2020 was outperforming the original Stockfish by almost a hundred elo at short time controls. This led to strong anticipation of the results when Igel, which had narrowly beaten Minic in League 3, submitted an updated version including an NNUE.

Igel lived up to the hype with a massive winning streak to start League 2. It scored 7/9 in the first round robin, including a win over hitherto-undefeated SlowChess. Its performance dipped in the second round, scoring "only" 4 wins and losing a game to eventual 3rd-place finisher RubiChess, but it still won the division with 14/18. Meanwhile SlowChess recovered after the loss to Igel by scoring 5 wins in the second round, losing no other games to finish second with 13/18. With its win against Igel, RubiChess was also the only engine to score 50% against the leader in the league, and finished clear 3rd with 11/18. The rest of the division was much more closely contested, and only two points separated 4th-placed Pedone from last-placed Nemorino.

During testing for League 1, Booot, which had crashed in the previous season, needed to submit a patch addressing the crashes to participate. Its author did not submit an update, which led to Booot being disqualified and RubiChess promoting.Aloril42 is a TCEC admin <onlyinclude>

League 1 League 1 was closely contested with the top eight engines only being separated by 2.5 points. Fire was able to secure its return to the Premier Division by starting strong in winning three of its first four games and then never relinquishing its lead. ScorpioNN started off by losing to RubiChess but recovered and moved into the promotion spot after winning its minimatches against Igel and rival Xiphos. SlowChess ended its impressive first season, which featured three straight promotions from the Qualification League to League One, by edging out Xiphos for third based on its better Sonneborn-Berger score. It missed promotion by only half a point. rofChade, which was relegated from the Premier Division last season, finished sixth but was the only engine that was able to defeat Fire. Igel, featuring NNUE, finished with an even score of 9/18 losing only one game to ScorpioNN, but it was also only able to win one game against rofChade. Fritz and Arasan, the only engines that weren't able to win any opening pairs, were demoted to League 2.

<onlyinclude>

Premier Division

An error in the opening book used led to a first round robin with a very high draw rate. As a result, TCEC decided to add a fourth round robin, expanding the division to a quadruple double round robin.

Wielding its new NNUE eval, Stockfish began the division as the strong favorite. However, in the first double round robin, it failed to live up to the hype. Instead, Leela took the lead with two wins while Stockfish only managed all draws. However, Stockfish reeled off four wins in the reverse round, defeating AllieStein, Ethereal, Fire and Komodo to seize the lead. As the division continued, Stockfish kept winning, but Leela kept pace, only a couple of wins behind – until Stockfish scored a head-to-head win in the fourth double round robin. This win, the first Premier Division win by Stockfish over Leela since TCEC Season 14, confirmed Stockfish's entry into the superfinal as the division winner. Leela finished second in spite of the loss as well, comfortably ahead of 3rd-placed Alliestein. The ordering of the top four were unchanged from Season 18, with Stoofvlees still finishing fourth in spite of not being updated.

In contrast to the top half of the table, which quickly sorted itself into its eventual order, the fight to avoid relegation was a topsy-turvy affair. Each engine fought to avoid losing to the engines in the top half – at the end of the division there were only four decisive games between the top four engines – while scoring wins against each other. Traditional powerhouse Komodo did badly in the first round, losing three games, and was last. Meanwhile, Ethereal started off in the lead with a win against Stoofvlees, but promptly lost the reverse, and eventually found itself in the cellar with Komodo after getting pummelled by Stockfish and Leela. Fire lost three games to Stockfish, but did only concede one loss to Leela and Alliestein, and in the third round robin piled the misery on Ethereal by scoring the first head-to-head win among the bottom four engines. Fellow promoted engine Scorpio lost three games to Leela, but was able to hold Stockfish to all draws, and even won an opening pair against Stoofvlees. Komodo was still in the relegation zone when it pulled off the upset of the division in round four, by defeating the runaway leader Stockfish (diagram). Although Stockish exacted revenge in the reverse, Komodo had handed Stockfish its only loss in the division, and with further wins against Scorpio and Fire, it finally finished fifth, 1.5 points above the relegation zone. Ethereal scored a win against Fire, but its fate was out of its hands, and when Scorpio won another game pair against Stoofvlees, its fate was sealed. In the end, Ethereal and Fire were relegated, 1.5 and 0.5 points away from safety respectively.

Superfinal A poll of viewers conducted before the superfinal started found Stockfish to be a substantial favorite.

The superfinal started with two pairs of traded wins before Stockfish took the lead in game 18, winning a Keres Attack after holding the reverse. Leela struck back in game 23 by winning a Queen's Indian defense. There followed a long streak of indecisive results of mostly draws, with Leela winning game 33 only to lose the reverse, until Stockfish took the lead by winning game 48. The relatively even first half was completely upended in the second, as Stockfish won one game pair after another. Although Leela won several games, it never managed to hold the reverse. Stockfish mathematically wrapped up the superfinal in games 93/94 by drawing game 93, then celebrated with another win in the reverse game. In the end, Stockfish won by 9 games (+18 -9 =73).

Notable games In an article published shortly after the superfinal, GM Matthew Sadler wrote that although the superfinal had started as a nail-biter, Leela was ultimately unable to match Stockfish's conversion rate from superior positions, consigning it to defeat.

The following notes are selected from the many games analyzed by GM Sadler.

Game 1

Game 1 was a mainline Sicilian Najdorf, one of the most deeply analyzed of openings, with the novelty of the game occurring only on move 21. Leela chose the 6. Be3 variation, and the game developed into a tense middlegame (diagram) in which Leela neutralized Stockfish's queenside play, but only at the cost of allowing Stockfish a perpetual check.

Leela Chess Zero–Stockfish, game 1 (Sicilian Najdorf) 1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be3 e5 7. Nb3 Be6 8. f3 h5 9. Qd2 Nbd7 10. Nd5 Bxd5 11. exd5 g6 12. Be2 Bg7 13. O-O b6 14. Kh1 O-O 15. Rad1 Re8 16. g4 hxg4 17. fxg4 Ne4 18. Qb4 Ndc5 19. Nxc5 Nxc5 20. g5 e4 21. h4 Qd7 22. Kg2 Na4 23. Rd4 b5 24. b3 Rac8 25. bxa4 Rxc2 26. Rf2 Rxe2 27. Rxe2 Qg4+ 28. Kf2 Qxh4+ 29. Kg2 Qg4+ 30. Kf2 Qh4+ 31. Kg2 Qg4+ 32. Kf1 Qh3+ 33. Ke1 Qh1+ 34. Kd2 Rc8 35. Re1 Qg2+ 1/2-1/2

Game 9

This game featured a Romantic line of the King's gambit, and yielded the first real evaluation disparity of the match. Playing White, Leela outcalculated Stockfish to draw the diagram position in spite of Stockfish's evaluation reaching -1.5 earlier in the game. Stockfish had originally intended 16...h5 17.Ne4 Bf5 18.exf6 Bh6 19.f7 Kg7, but apparently misjudged 20.Ng3, which leads to a draw after 20...Bg5 21.Nxf5+ Qxf5 22.Qg3 Qg4 23.Qc3 (see analysis diagram).

Leela Chess Zero–Stockfish, game 9 (King's gambit) 1. e4 e5 2. f4 exf4 3. Nf3 g5 4. Nc3 d6 5. d4 g4 6. Bxf4 gxf3 7. Qxf3 Nc6 8. Bb5 Bd7 9. Bxc6 bxc6 10. O-O Bg7 11. Be5 f6 12. Qh5+ Kf8 13. Bxf6 Nxf6 14. e5 Qe8 15. Qh4 Qg6 16. Rae1 Bf5 17. exf6 Bxf6 18. Qf4 Kg7 19. Qxf5 Bxd4+ 20. Kh1 Qxf5 21. Rxf5 Rhe8 22. Ref1 Rab8 23. R5f4 Be5 24. Rf7+ Kg8 25. Nd1 Bd4 26. c3 Bb6 27. R7f3 Re2 28. h4 Kh8 29. a4 Rg8 30. g3 h6 31. b4 a5 32. bxa5 Bxa5 33. Ne3 Bxc3 34. Nf5 Bg7 35. Nxg7 Kxg7 36. Rf7+ Kg6 37. Rxc7 Kh5 38. Rg1 c5 39. Rg2 Rxg2 40. Kxg2 Ra8 41. Rc6 Rxa4 42. Rxd6 Kg4 43. Rg6+ Kh5 44. Rc6 Kg4 45. Rxc5 Ra2+ 46. Kg1 Kxg3 1/2-1/2

Game 18

In a line taken from the Karpov–Korchnoi world championship matches, both Stockfish and Leela took on c6 immediately after book exit, a move both GM Sadler and fellow kibitzing GM Danny Gormally were taught to be a positional mistake since it improved Black's center and also opened the b-file for Black's counterplay. However, in this particular position, White's advanced pawns on the kingside makes it hard for Black to find a home for its king. Leela kept its king in the center, but as Stockfish launched an attack in the middlegame, this poor king position turned out to be a decisive liability.