TCEC Season 21
Winner | Runner-up |
Stockfish | Leela Chess Zero |
56 (19) | 44 (7) |
← TCEC Season 20 | → |
The 21st season of the Top Chess Engine Championship began on 9 May 2021. The defending champion is Stockfish, which defeated Leela Chess Zero in the previous season's superfinal. The season 20 superfinal was a rematch between the same two engines. Stockfish once again came out ahead, winning by 12 games (won 19, drew 74, lost 7).
Overview[]
There were no new changes to the rules for this season.[1] However, every season will now comprise four events: the leagues, the Cup, a Fischer Random Chess tournament, and a Swiss tournament.[2]
Results[]
Qualification League[]
Several new engines played in the Qualification League, as well as a few old engines returning with new versions.[3] 8 of the 14 engines advanced to League 4. In its second season, Koivisto addressed the stability issues which plagued it in Season 20 and won the division, but still had one crash. Newcomer Classic Ara, a neural net, came second. Veteran Booot, which also suffered a crash, finished third, and returning engine Cheng finished a solid fourth. The lower promotion places were keenly contested, with two engines missing out despite scoring 50%.
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Koivisto | 26 | 15 | 10 | 1 | 20 | Advance to League 4 |
2 | ClassicAra | 26 | 13 | 12 | 1 | 19 | |
3 | Booot | 26 | 13 | 10 | 3 | 18 | |
4 | Cheng | 26 | 12 | 11 | 3 | 17.5 | |
5 | Stash | 26 | 8 | 16 | 2 | 16 | |
6 | Nirvana | 26 | 11 | 9 | 6 | 15.5 | |
7 | Amoeba | 26 | 11 | 7 | 8 | 14.5 | |
8 | Drofa | 26 | 7 | 13 | 6 | 13.5 | |
9 | Berserk | 26 | 5 | 16 | 5 | 13 | |
10 | Invictus | 26 | 8 | 10 | 8 | 13 | |
11 | Bagatur | 26 | 3 | 9 | 14 | 7.5 | |
12 | tomitankChess | 26 | 2 | 7 | 17 | 5.5 | |
13 | Cheese | 26 | 2 | 6 | 18 | 5 | |
14 | Francesca | 26 | 1 | 6 | 19 | 4 |
League 4[]
League 4 began on 19 May 2021. The third-place finisher in QL, Booot, won the league with +13 =9 -0. It profited from a Koivisto crash in a head-to-head game, but also defeated five engines with both the white and black pieces. Rating favorite Halogen finished second, also without losing any games, while QL winner Koivisto took third in spite of the crash. Newcomer ClassicAra was the last engine to promote. The top four engines finished comfortably above their rivals, with two points separating 4th-placed ClassicAra from 5th-placed Monolith.[4][5]
At the other end of the table, ChessFighter suffered from a bug in its time-management code, such that it lost three games on time. The bug apparently only triggers at long time controls, hence it was not caught in testing.[citation needed]
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Booot | 22 | 13 | 9 | 0 | 17.5 | Advance to League 3 |
2 | Halogen | 22 | 11 | 11 | 0 | 16.5 | |
3 | Koivisto | 22 | 10 | 9 | 3 | 14.5 | |
4 | ClassicAra | 22 | 8 | 12 | 2 | 14 | |
5 | Monolith | 22 | 6 | 12 | 4 | 12 | |
6 | Amoeba | 22 | 5 | 10 | 7 | 10 | |
7 | Stash | 22 | 3 | 13 | 6 | 9.5 | |
8 | Cheng | 22 | 2 | 13 | 7 | 8.5 | |
9 | Nirvana | 22 | 3 | 11 | 8 | 8.5 | Relegate to QL |
10 | Mr_Bob | 22 | 1 | 13 | 8 | 7.5 | |
11 | Drofa | 22 | 2 | 10 | 10 | 7 | |
12 | ChessFighter | 22 | 0 | 13 | 9 | 6.5 |
League 3[]
Three of the engines that promoted from League 4 also managed to promote from League 3, with Koivisto the only one missing out. They were joined by Minic, which had also promoted from League 3 in the previous season. Minic and Booot cruised through the competition without losing a single game, but Halogen and ClassicAra had to fight hard for promotion. Wasp almost tied ClassicAra in the points after a win over relegation-threatened Marvin in the penultimate round, but promptly lost its next game to Booot, and was left behind. ClassicAra's win over Marvin also had a major impact on the bottom of the table: Pirarucu, Topple and Weiss had already been relegated, but Marvin had a fighting chance for survival until its loss to ClassicAra, which ultimately left it half a point behind its relegation rivals.
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Minic | 22 | 7 | 15 | 0 | 14.5 | Advance to League 2 |
2 | Booot | 22 | 6 | 16 | 0 | 14 | |
3 | Halogen | 22 | 4 | 17 | 1 | 12.5 | |
4 | ClassicAra | 22 | 4 | 16 | 2 | 12 | |
5 | Wasp | 22 | 3 | 17 | 2 | 11.5 | |
6 | Tucano | 22 | 3 | 16 | 3 | 11 | |
7 | Koivisto | 22 | 2 | 18 | 2 | 11 | |
8 | Combusken | 22 | 2 | 18 | 2 | 11 | |
9 | Marvin | 22 | 1 | 19 | 2 | 10.5 | Relegate to League 4 |
10 | Pirarucu | 22 | 2 | 13 | 7 | 8.5 | |
11 | Topple | 22 | 1 | 14 | 7 | 8 | |
12 | Weiss | 22 | 2 | 11 | 9 | 7.5 |
League 2[]
League 2 was played with a Black-favored book, involving many gambit lines. Pedone won League 2 with a +8 score, comfortably above 2nd-placed Nemorino. Nemorino's position as the second promoted engine was under threat until the end of the league, as a cluster of four engines finished no more than a point behind. Former champion Fritz, playing without an update, outperformed expectations and was briefly in the promotion spots before finally being overtaken by Nemorino. Minic had started in the lead after it managed to win two games with White, but faded later. It finished as the only engine to win more games with White than with Black regardless.
At the other end of the table, Seer turned in an uncharacteristically poor performance that its developer attributed to a lack of similar positions in its training set. Its performance apparently worsens substantially when given obscure opening positions such as the ones used in the league.[6] Arasan performed even worse, and was relegated without winning a game.
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Pedone | 22 | 10 | 10 | 2 | 15 | Advance to League 1 |
2 | Nemorino | 22 | 7 | 13 | 2 | 13.5 | |
3 | Fritz | 22 | 9 | 8 | 5 | 13 | |
4 | Defenchess | 22 | 7 | 11 | 4 | 12.5 | |
5 | Booot | 22 | 5 | 15 | 2 | 12.5 | |
6 | Minic | 22 | 5 | 15 | 2 | 12.5 | |
7 | Halogen | 22 | 4 | 14 | 4 | 11 | |
8 | Vajolet | 22 | 4 | 13 | 5 | 10.5 | |
9 | Winter | 22 | 3 | 13 | 6 | 9.5 | Relegate to League 3 |
10 | ClassicAra | 22 | 2 | 14 | 6 | 9 | |
11 | Seer | 22 | 1 | 12 | 9 | 7 | |
12 | Arasan | 22 | 0 | 12 | 10 | 6 |
League 1[]
League 1 saw Igel surging to an early lead. It had a 1.5-point lead after the first double round robin, conceding no losses. Only Ethereal and RubiChess remained close enough to fight Igel for the league championship. In the second round robin, Ethereal closed the gap with a head-to-head win, while Igel also lost to relegation-threatened rofChade. However, Igel also scored a head-to-head win against RubiChess, and the lead proved too great to overcome. Igel won the division, half a point ahead of Ethereal. RubiChess finished clear third in spite of the loss to Igel, 1.5 points ahead of SlowChess. SlowChess had played a disappointing first round to be -1, but won several openings in the second round to eventually finish on even. League 2 champion Pedone was briefly in contention for first place, but faded and eventually finished fifth. rofChade and Xiphos, both playing without updates, took up two of the bottom three slots. Both engines finished level on points, but Xiphos edged out rofChade on tiebreak courtesy of a head-to-head win. rofChade had been demoted from Premier Division last season, and was demoted again this season.
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Igel | 28 | 10 | 15 | 3 | 17.5 | Advance to Premier Division |
2 | Ethereal | 28 | 10 | 14 | 4 | 17 | |
3 | RubiChess | 28 | 7 | 17 | 4 | 15.5 | |
4 | SlowChess | 28 | 5 | 18 | 5 | 14 | |
5 | Pedone | 28 | 5 | 15 | 8 | 12.5 | |
6 | Xiphos | 28 | 3 | 18 | 7 | 12 | |
7 | rofChade | 28 | 4 | 16 | 8 | 12 | Relegate to League 2 |
8 | Nemorino | 28 | 3 | 17 | 8 | 11.5 |
Premier Division[]
The Premier Division featured a high-bias opening book, leading to a lot of decisive games. Stockfish played a sterling first round, winning every game with White while successfully drawing with Black, and had a full point lead after 7 games. The streak did not last as Komodo Dragon won the reverse game against Stockfish in the second round, inflicting Stockfish's first loss in the Premier Division. This was followed by last season's runner-up Leela winning an opening against Stockfish in the second double round robin, a victory that put it in clear second, half a point behind Stockfish but a point ahead of Komodo Dragon. Perennial dark horse Stoofvlees acquitted itself well in the first round and was briefly tied with Komodo Dragon and Leela for second spot, but fell behind in the third round and spent the rest of the Division comfortably in fourth place. Newly-promoted Igel played without an update, but still successfully drew every game it played in the first round. Its draw streak was ended in the second round, losing games to Stockfish, Leela and ScorpioNN. After three rounds, it occupied the last two spots in the table along with fellow promoted engine Ethereal, but it played a strong fourth round to win three games and overtake ScorpioNN in the table. Leela also played a strong fourth round, and managed to briefly overtake Stockfish at the start of the fifth round before Stockfish once again regained the lead. At the other end of the table, Ethereal had a miserable sixth round, losing every opening it played except the one against Komodo Dragon, and then suffered a disaster in its seventh round match (playing white) against Igel as it failed to convert a position that, by just move 24, both engines had assessed as completely winning for white. It finished the Premier Division a full four points behind Igel. Both engines were relegated, whilst at the other end of the table, Stockfish finished with a 1 point lead over Leela, meaning the two would advance to the Superfinal. Leela performed very well against Stockfish in the 8 games they played, being the only engine to score more than 50% against it, but an early unexpected loss to Stoofvlees proved decisive in splitting the two engines. Komodo finished a further 3 points back of Leela in third, with Stoofvlees rounding out the top four, holding a comfortable lead over AllieStein in fifth. AllieStein overall had a somewhat below-par showing in the Premier Division, finishing just half a point ahead of ScorpioNN and only recording 6 wins in 56 games.
Pos | Engine | Pld | W | D | L | Pts | Qualification |
---|---|---|---|---|---|---|---|
1 | Stockfish | 56 | 21 | 33 | 2 | 37.5 | Advance to Superfinal |
2 | Leela Chess Zero | 56 | 20 | 33 | 3 | 36.5 | |
3 | KomodoDragon | 56 | 17 | 33 | 6 | 33.5 | Advance to Infrafinal |
4 | Stoofvlees | 56 | 13 | 30 | 13 | 28 | |
5 | AllieStein | 56 | 6 | 37 | 13 | 24.5 | |
6 | ScorpioNN | 56 | 8 | 32 | 16 | 24 | |
7 | Igel | 56 | 6 | 32 | 18 | 22 | Relegate to L1 |
8 | Ethereal | 56 | 3 | 30 | 23 | 18 |
Infrafinal[]
TCEC organized a special 50-game infrafinal for the 3rd and 4th placed engine, as a precursor to the superfinal. The infrafinal turned out to be incredibly one-sided, with Komodo Dragon comprehensively defeating Stoofvlees 30.5-19.5. Komodo Dragon won all but two of the first ten opening sets, and never relinquished its lead. It finished the infrafinal without conceding any openings. The 11-point margin of victory over 50 games was greater than the TCEC record for most decisive win in the superfinal (+20 over 100 games, by Stockfish over Komodo in ).
Superfinal[]
a | b | c | d | e | f | g | h | ||
8 | 8 | ||||||||
7 | 7 | ||||||||
6 | 6 | ||||||||
5 | 5 | ||||||||
4 | 4 | ||||||||
3 | 3 | ||||||||
2 | 2 | ||||||||
1 | 1 | ||||||||
a | b | c | d | e | f | g | h |
In the lead-up to the superfinal, Stockfish's developers trained an NNUE that made use of Leela's evaluations,[7] in apparent violation of TCEC's official guidelines that engines should not use another engine's search and eval code.[8] TCEC's admins decided to allow Stockfish to use this NNUE regardless because it still utilized a lot of original code.[9]
The superfinal was eventually won comprehensively by Stockfish, which put in a dominant display especially in the second half of the 100-game match. Stockfish drew first blood in the very first opening, successfully winning with White in a Richter-Rauzer Variation of the Sicilian defence in Game 2. However, Leela immediately struck back in Game 3, winning with White in the Benoni defence and then drawing the same position as Black, creating a strong pawn formation that Stockfish was unable to break down. Games 5 and 6 in the Queen's Gambit Declined were both drawn; Stockfish mounted a promising attack in Game 6 with the white pieces, but Leela played a very accurate defence to force a theoretically drawn Rook and pawn versus rook endgame. Stockfish then scored an excellent win in Game 8 by successfully breaking down Leela's stubborn defence to take the lead in the match, and then scored another win in Game 10 after finding a refutation to Leela's 37...a4? (something that very few engines managed to spot) and forced a endgame tablebase win. The next 12 games were all somewhat uneventful draws with neither engine able to create many attacking chances, but Leela then played a brilliant Game 23, outplaying Stockfish in the English opening to close the gap to 1 point. In the following game, however, despite being down a pawn, Leela's defence as Black in the same opening was holding well until it played the highly aggressive 28...Ne3 (diagram), whereas Stockfish had expected the more pragmatic 28...Ne5; it was only after Stockfish's reply of 29. Qe2 followed by 30. Qf2 that Leela realised 28...Ne3 was actually a mistake, as it allowed Stockfish to eventually reach an easily winning with two extra pawns. In Games 25 and 26, however, played in the French Defence, Leela once again proved its proficiency in the opening, outclassing Stockfish with the white pieces to cut the deficit to 1 point, and then had no problems holding the same position as Black to a draw.
Unfortunately, the superfinal had to be put on hold midway through Game 29 as Typhoon In-Fa (Fabian) struck the coast of Shanghai where the CPU machine resides which in turn caused a software malfunction. At the point which the system stopped working, both Leela (white) and Stockfish (black) were adjudging the position they had reached in Game 29 as drawn, and the TCEC organisers and moderators therefore decided to manually adjudicate this game as such rather than restarting the game from the same position. When the match resumed in Game 30, Leela played the position far more aggressively as Black than Stockfish had in Game 29, but although it was able to force Stockfish to give up the exchange to prevent Leela queening its b-pawn, Stockfish's subsequent counter-play on the kingside was enough to hold the position to a draw. The roles were completely reversed in Game 34[10] in the Robatsch defence, when Stockfish outplayed Leela in the middle-game to the point that Leela had to give up its queen and 3 pawns in exchange for a rook, bishop and knight, but remarkably, Leela managed to hold the position to a draw after 190 moves despite Stockfish assessing its winning chances at move 33 as 99.9%. Leela could not pull off the same escape twice, however, as in Game 40, played in the Old Indian Defence, Stockfish proved far more adept at handling White's more advantageous starting position than Leela had in Game 39, and managed to convert the advantage into a win, reestablishing a 2-point lead.
Things got even worse for Leela in Game 42 when it chose to castle into an already weakened kingside which Stockfish proceeded to gradually chip away at and eventually force a winning endgame, leaving Leela a full three points down, but it recovered instantly in Game 43 by successfully installing a 'thorn-pawn' on h6, positionally hampering Stockfish's kingside for much of the game and resulting in a comfortable win. However, Stockfish scored another win in a slow-burning Game 46, and after four further draws, held a 3-point lead over Leela at the half-way stage of the superfinal. Whilst a commanding lead, Leela was nonetheless still very much in with a chance of closing the gap.
a | b | c | d | e | f | g | h | ||
8 | 8 | ||||||||
7 | 7 | ||||||||
6 | 6 | ||||||||
5 | 5 | ||||||||
4 | 4 | ||||||||
3 | 3 | ||||||||
2 | 2 | ||||||||
1 | 1 | ||||||||
a | b | c | d | e | f | g | h |
The second half of the superfinal, however, could scarcely have gone any worse for Leela. It suffered losses in both Games 52 and 60, and failed to convert a more advantageous position in Game 55, leaving it a full 5 points down, a deficit that has proven to be insurmountable for any engine at any stage of any past TCEC Superfinal. However, Leela did pull a game back with an excellent win in Game 61, but in the following 9 games, Stockfish played brilliantly, winning Games 64, 66, 68 and 70, while producing a miracle save in Game 63 (diagram). Of particular note was Stockfish's win in the 217-move-long Game 68 when, working with less than a minute left on its clock in a position which Leela considered a dead draw, Stockfish found a remarkable bishop sacrifice that led to a seemingly improbable victory. Leela subsequently pulled a point back in Game 71, taking full advantage of a rare Stockfish miscalculation, but with Stockfish still holding a huge 7-point lead with fewer than 30 games remaining, the result of the superfinal was virtually beyond doubt.
Neither Leela nor Stockfish managed to make any inroads in the subsequent 13 games, all of which were relatively uneventful draws. However, in Game 85, Stockfish used the big advantage Black had out of the predetermined opening to score the first and what would be only win with the black pieces by either engine in the entire superfinal, restoring its 8-point lead, and then managed to hold the same position with White to a draw. Leela then blundered a chance to win Game 87 with the white pieces; with both engines assessing the position at just move 27 as almost completely winning for White, Stockfish was expecting Leela to play 28. Re6, keeping Black's kingside cramped, but Leela played the questionable 28. Qxf4??, a decision that allowed Stockfish to recover a crucial tempo which made the position a dead draw. Although Leela did manage to score a win in Game 91 in the King's Indian, Stockfish completely outplayed Leela for the remainder of the superfinal, winning another four games (92, 94, 96, and 98) whilst Leela was unable to muster any other serious attacking chances. What had started as a closely fought match turned into a complete rout, as Stockfish ended the superfinal as the comprehensive winner by a scoreline of 56-44 (+19 -7 =74).
References[]
- ^ "TCEC Leagues Season Rules".
- ^ "TCEC Leagues Season 21".
- ^ "TCEC S21 starts today". 9 May 2021.
- ^ "Booot kicks into high gear, wins TCEC S21 L4". Chessdom. 25 May 2021.
- ^ Archived games are at https://tcec-chess.com/#div=l4&game=1&season=21
- ^ https://imgur.com/r2Xf9es connor_m_seer is Seer's developer.
- ^ "Official release version of Stockfish 14". 2 July 2021.
- ^ "Rules". TCEC wiki. Retrieved 21 July 2021.
- ^ https://imgur.com/e9qOGmT
- ^ "Game 34 from TCEC Superfinal of season 21". tcec-chess.com. Retrieved 27 July 2021.
- ^ "Silicon Road: TCEC Live! TCEC SuperFinal 31st July 2021: Leela-Stockfish Game 63 (Najdorf 6.Be3)". YouTube. 1 August 2021.
- Top Chess Engine Championship
- 2021 in chess
- Current chess seasons