TCEC Season 18


The 18th season of the Top Chess Engine Championship began on 4 May 2020 and ended on 3 July 2020. The defending champion was Leela Chess Zero, which defeated Stockfish in the previous season's superfinal. The two season 17 superfinalists qualified again for the superfinal. This time Stockfish won, winning by 7 games.

Overview

For this season, there are five leagues: the Qualification League, League Three, League Two, League One, and Premier Division. Two engines promote in every league, with the top two engines of the Premier Division contesting a 100-game superfinal. Updates are allowed only between League Three and League Two, between League One and Premier Division, and between Premier Division and the superfinal. In a small change to previous seasons' rules, draw adjudication now occurs if the evaluations of both engines are within +/- 0.15 for five consecutive moves, after move 35. This increases the threshold of evaluation compared to +/- 0.08 for the previous season.
In contrast to previous seasons, only active engines that are stronger than the best humans are invited to participate. The addition of the "active" criterion means that several veteran competitors, such as former champions Jonny and Houdini, are not participating. Further, a more stringent uniqueness criterion meant that PeSTO and Komodo MCTS are not participating.

Tiebreak rules

The tiebreak rules for TCEC Season 18 are:
  1. For any event except the superfinal: the number of crashes.
  2. Head-to-head score.
  3. Number of wins.
  4. Sonneborn-Berger score.
  5. A decision by the tournament organizers.

    Hardware changes

For this season, TCEC upgraded its GPU servers to four V100s, while the CPU servers largely stayed the same.

Results

Qualification League

Ten engines participated in the Qualification League. Seven engines returned from the previous year, Monolith returned after a two-season hiatus, and two new engines made their first appearances. The league turned out to be very closely contested: every engine lost at least two games, and in the final standings, only 2 points separated winner Counter from 7th-placed Combusken. This meant that seven engines were in with a chance up until the final games. Eventual 2nd-place finisher Asymptote staged a mini-comeback after a poor first round to finish second, ahead of 3rd-placed Monolith on the back of a head-to-head win. chess22k, the only engine that had promoted out of QL previously, started well but stalled in the second half and ended in 4th place. Tail-enders Bagatur and Weiss were heavily handicapped by only being able to make use of one thread while their competitors usually ran on 176, and finished with only 5/18 and 1.5/18 respectively.

League Three

Ten engines participated in League 3. Every engine here played in Qualification League last year, and while the top and bottom engines were unchanged, the order of the middle engines saw some shifting. Demolito took advantage of S17 QL winner Defenchess leaving for greener pastures to win League 3 with 12/18. Second-place was closely contested, with Igel taking a 1-point lead after 60 games, only to see Gogobello storm from behind with a string of victories, including an impressive win as black over Demolito, and place second by 0.5 points. Meanwhile Pirarucu, which finished ahead of both Igel and Gogobello last year, placed a disappointing 6th, though it did hand Gogobello its only loss. On the other end, QL promoters Counter and Asymptote found League 3 far more unwelcoming and relegated back to QL with 7/18 and 6/18 respectively. Counter initially looked like it could hold on, starting out with 10 straight draws, but finished with 4 losses and 4 draws in its remaining games, becoming the only engine not to win a game.

League Two

Booot, Chiron, and ChessBrainVB, which did not play in the previous season because they did not run on Wine, all returned to play this season in League Two. Among the competitors three engines quickly distanced themselves from their rivals: Booot, Pedone and Winter. Booot was comfortably in the lead for most of the division and was the first to promote, while Winter trailed after losing a game against Pedone. In one of the final games of the league, Winter scored a win against Booot, which put it half a point ahead of Pedone; however, it was all for naught as Pedone drew its game in hand against Chiron, which tied the scores between the two and let Pedone qualify on tiebreak.
At the bottom of the table, in a repeat of League Three, the two promoted engines Demolito and Gogobello found the competition much stiffer and were both relegated back to League Three.

League One

Fire, which had performed respectably in last season's Premier Division in spite of not having been updated for over a year, won League One. Along with last season's promotion rival rofChade, it did not lose a game the entire league, with both finishing comfortably above third-placed Booot. In contrast, the middle of the table was fiercely contested. Booot was the only engine to score two wins against its mid-table rivals, defeating Fritz and ScorpioNN, but it lost a game to last-place Pedone. Defenchess lost a game to Xiphos, but it along with Fritz was able to 2-0 Pedone, thereby taking 4th and 5th respectively. Last season's Premier Division engine ScorpioNN, as well as League One contender Xiphos, both performed solidly and lost only one game; however they also only scored one win which was insufficient to fight for the top spots. At the other end of the table, promoted engine Pedone was quickly outclassed, losing eight games. For the other relegation spot, both Arasan and RubiChess failed to score any wins, but Arasan lost only one game, leaving RubiChess to relegate.

Premier Division

In the Premier Division, Stoofvlees took a surprising lead after the first round robin. It recorded the only double-kill against rofChade, and by the end of the first round robin, was on +4 while pre-tournament favorites Stockfish, Leela and AllieStein were only +2. However, the lead did not last. Stockfish played a sterling second round robin, including a win against both Stoofvlees and AllieStein, to take first place. Leela also closed the gap by not losing any games while defeating Ethereal, rofChade and Fire. By the third round robin, Stockfish was effectively qualified for the superfinal, while the last remaining slot was still up for grabs. Leela effectively eliminated Stoofvlees after the latter blundered a simple tactic. However, AllieStein was only a win behind, and had superior tiebreakers to boot. Leela defeated Ethereal, only for AllieStein to keep pace by beating Komodo. It looked as though Stoofvlees' blunder might've been decisive to Leela qualifying for the superfinal. The question was finally settled in game 164 when AllieStein lost the reverse game to Komodo, which qualified Leela for the superfinal. Both Leela and first-placed finisher Stockfish did not lose a game in the division.

Superfinal

The superfinal was contested between reigning champion Leela Chess Zero and last season's runner-up Stockfish. The 100-game match began with both engines winning in a King's Indian Defense, before Stockfish took the lead by winning three consecutive openings. After a balanced interlude, Stockfish won game 24 to open up a commanding 4-point lead, the largest deficit Leela had ever faced in a superfinal. Leela finally got back to winning ways with a strong performance in game 29, and narrowed the gap further by winning game 33. However, with wins in games 52, 56 and 58, Stockfish established its dominance once again. However, Leela fought back with a win in game 63, and then followed up with an astonishing queen sacrifice in game 65 in what was perhaps the single best performance from either engine in the entire superfinal – GM Matthew Sadler would later call this game Leela's queen sac Immortal – but Stockfish countered with wins in games 68, 77, 88 and 92 to secure what would prove to be a decisive lead. With eight games left, Leela needed to win seven of them in order to win. It managed to win game 93, but promptly lost game 94, which gave Stockfish an unassailable lead. Leela scored a consolation win in game 97. The final score was +23 -16 =61 in favor of Stockfish.