Monday, February 22, 2021

Season 20 superfinal statistics

A summary statistics table of previous stages and seasons. 

Draw rate, wins
 
Final draw rate was 78%.

Game termination

The three most common game termination causes were:

64% - TCEC draw rule
22% - SyzygyT
11% - Mate

There were no crashes in the stage.

Moves per game

Median= 64
Average= 72.5

There were 17 games longer than 100 moves, the longest was 203 moves (Leela - Stockfish, game 86, draw).

Time per game (hours)
 
Median= 4:01
Average= 3:48

Openings

There were variable length book openings in this stage chosen by Jeroen. The first letter of the ECO codes was distributed as follows:

The engines had almost no freedom to choose the opening variant, 92% of the games repeated the same ECO and the same opening variant twice. Only 2% of the game pairs (one game pair) did not repeat the first letter of the ECO code.

Reverse pairs, wins 
 
Reverse pairs, same moves  

Pairs of reverse games diverged more slowly than usual, 32% diverged immediately out of book, 56% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 19 plys (Stockfish - Leela games 93 and 94, Sicilian dragon, Yugoslav attack, two draws) 

Thursday, February 18, 2021

Season 20 superfinal games 91-100, season summary

Stockfish wins the season 20 superfinal. The final result is 14-8 with 78 draws. As expected the last 10 games were the most biased. There were two openings with two white wins, Stockfish and Leela each won a game pair. As a result Stockfish's lead stayed at +6.

In this season's superfinal the openings were ordered by their expected bias from lowest to highest. Indeed after 30 games there were 28 draws, it would seem the decisive games 5-6 were evidence that the engines could find bias in an opening that was thought to be drawn. In the next 20 games Stockfish managed to win two game pairs, it led 3-1 at the half point. Leela started to win game pairs in the second half of the match, it managed to tie the score at 3-3 and then at 5-5 after 70 games. The next 20 games were all Stockfish however, it won 6 game pairs and led decisively by 11-5. There were 6 wins in the last 10 games, but each engine won 3 games and the lead did not change.

The lower leagues of the season were short 1DRR events, some of the races were close but I can't feel the excitment when the games fly by so quickly. This season introduced a league 4 after qualification, a total of 39 engines participated. Seer started from qualification and promoted 3 times to league 2, but there it stopped. League 1 was slightly longer, a 2DRR event with longer time controls. Ethereal finished first and returned to the premier division after it was relegated in season 19. The second qualifier was rofChade, beating Igel in a tiebreak. League 1 featured unusual openings which were much more biased than usual. The expected result in all games was a white win, and the object became drawing in black instead of the usual object - winning.  

The premier division was a 4DRR event with the best 8 engines in TCEC competing. Stockfish and Leela were the clear favorites to win, they led from the start and had a private race for the top spot. In the end their scores were tied and Leela won by a tiebreak. Komodo was updated to KomodoDragon in season 20, including NNUE technology. This new version was much better than before, it finished a clear 3rd, ahead of AllieStein and Stoofvlees. Ethereal and ScorpioNN battled against relegation, it was a close race which ScorpioNN won in the final rounds. Ethereal and rofChade relegated back to league 1.

This season more CPU engines added NNUE and became stronger as a result. Stockfish, KomodoDragon and Igel are examples of this trend, it appears that engines using NNUE position evaluation combined with AB look ahead perform better. 

There was a new tiebreak criterion introduced this season, the r-mobility. Roughly this measured how much an engine has restricted its opponent's movement, where mate is best (0 moves and in check), then stalemate (0 moves, not in check) and so on. This criterion was second in its importance after head-to-head score. There were several tiereak decisions that used this criterion, including the winner of the premier division and the 2nd place in league 1. I am not a fan of this criterion. It is not easily accessible since it depends on the whole game and not just its result (compared to "number of wins"). You could argue that it is more related to the character of the game, preferring games with many captures and mating attacks over quiet draws that end with many pieces on the board. However, an engine that escapes an attack by countering with perpetual check can get an r-mobility win. My feeling is that r-mobility tiebreak decisions were arbitrary, but perhaps not more arbitrary than any other criterion.

That's all I have for this season. I looked back at previous season summaries and found references to the corona virus going back to season 17. It is still with us and it doesn't appear to be going anywhere soon. First, many thanks go to the TCEC organizers for keeping the tournament going in these troubled times, giving all of us fans something interesting to do when so much around us is closed and not functioning properly. Second, I'll repeat what I wrote last season:
"Please take this seriously, avoid crowded places and unnecessary contacts. Keep yourselves and your family safe. Governments may give bad advice or act slowly, but our personal health depends mostly on our personal behavior."

See you next season,

Go TCEC!!

================================

In game 91 Stockfish's eval started over 1,  it started to increase after move 10 (only 4 moves after book). Leela remained calm for a while, but Stockfish surprised it with every move and on move 14 Leela's eval jumped over 2. The engines exchanged queens and Stockfish had a dangerous passer in the center.

In a series of exchanges Leela captured the white d pawn and the engines reduced to a BN vs R ending on move 29. Stockfish went a pawn up quickly, after a while the pawn trades continued and Leela lost its last pawn. In a 7-man position Leela refused to take a pawn and lose immediately, it took 10 more moves for mate.

In game 92 evals increased from the start. Leela chose a different path and gave a pawn. There were many early exchanges and the game reached a RBB vs RBB position on move 16.

Leela quickly regained the pawn, Stockfish had two isolated pawns on the queen side and it had to play defensively. Evals continued to increase, they were close to 5 when Leela moved its rook to the 7th rank. The engines exchanged a pair of bishops and Stockfish went a pawn up, but both engines knew Leela had the advantage.

The white king came forward and captured the black c pawn.Leela pushed its passer to c7, then captured the black a pawn. Stockfish couldn't block the white passers, a queeining was followed by mate. There were two white wins in this opening, Stockfish leads 12-6.

Games 93-94 started with a 23-ply book in the Sicililan Dragon, Yugoslav attack, with the engines castling in opposite directions. In game 93 Stockfish gave two pawns, there were many early exchanges that opened the king side and exposed the black king. Leela protected its king and evals came down. After a while Stockfish broke through the defenses, and the black king ran to the queen side while Stockfish regained the pawns. The game reduced to a RB vs RN position and was soon adjudicated. Game 94 started with the same move sequence and diverged on move 22. Leela did not go after the black king, instead it captured two pawns on the queen side. The engines started to shuffle and evals came down, without pawn moves the game was soon adjudicated.

Games 95-96 started with a 32-ply book in the Ruy Lopez Flohr system, the first 31 plys identical to games played in the Kasparov - Karpov match in 1990. In game 95 the engines played out a long PV agreement with many exchanges, leading to a RBN vs RBN position with white a pawn up. Stockfish's eval was close to 1, Leela's eval came down as it redcuced to a B vs N ending. All the black pieces were invisible to the bishop and Leela blocked the white king's approach with a knight and two pawns. Stockfish lowered its eval after 30 shuffling moves and the game was adjudicated.

In game 96 Leela did not play Stockfish's expected moves. Stockfish's eval was unstable, it thought for a long time and its eval dropped under 0.5 and then jumped back over 1. Stockfish gave a knight for two pawns and opened the center, then all rooks were exchanged. Evals were below 1 again for a while, then came up again. Stockfish thought for 15 minutes on move 33 and this time its eval jumped over 2.

Stockfish controlled the long diagonals with its bishops and it waited to see Leela's plan. Leela slowly arranged its pieces to control the central squares, then on move 46 it forced a queen exchange. Both evals were over 2 in a BBN vs BB position.

The endgame was very long, Stockfish created a pawn wall across the board with a bishop in the gap, Leela managed to get its knight behind the black pawns to the protected square on c5. The engines traded pawns, Stockfish cleared the black king side pawns and created connected passers, while Leela created an advanced passer on the queen side. On move 88 the engines traded N for B and the white passer reached the 7th rank. Leela captured a pawn and created a second passer, then gave a bishop and pushed another passer to the 7th rank. Leela promoted to a queen, Stockfish had 3 advanced passers but it was not enough to avoid mate. Leela wins the game pair, Stockfish leads 12-7.

Games 97-98 started with a 20-ply book in the Sicilian Najdorf, English attack, with the engines castled in opposite directions. In game 97 Stockfish pushed pawns on the king side while Leela concentrated its pieces on the queen side. A pawn trade opened the king side a little, Stockfish shifted its rooks to the center and doubled on the d file. Stockfish's eval increased as it targeted the black pawns on the queen side, Leela traded one for a white pawn on the king side. This gave Stockfish a passer in the center, its eval was over 3 while Leela felt safe.

Stockfish's eval kept increasing while Leela's eval stayed low, very unusual to see this happening. Leela doubled rooks on the h file and threatened the white queen but nothing came out of it. Stockfish managed to push its passer to d6 safely, but there Leela captured it a series of exchanges that left a QRB vs QRN position. Finally Leela's eval started to react, material was equal and Stockfish's advantage appeared to be the two isolated black pawns and the exposed black king.

Leela lost the d pawn after a few moves, then Stockfish used a mate threat to force a queen exchange. Leela gave the knight to clear the king side pawns and the RB vs R ending was a win for white.

Game 98 started similarly, Leela pushed pawns on the king side. Stockfish did not trade pawns, instead it locked the king side when a white pawn reached g6. The engines exchanged pieces until there were only RRN vs RRB left on move 33. Evals drifted down while the engines mostly shuffled until move 94. Several exchanges opened the queen side, evals were close to 0 and the game was adjudicated. Stockfish wins the game pair, it leads 13-7.

In game 99 there were almost no exchanges after the start except for a pair of bishops. The center was blocked, Stockfish castled long, it had a space advantage and an eval over 1. On move 26 Leela captured a pawn on the queen side, this allowed Stockfish to move a knight to c6. Leela felt quite safe when it captured the knight, Stockfish's eval jumped over 2 though it gave a second pawn. The king side opened and the black king was threatened. Stockfish took a pawn with a bishop, Leela took with a rook and expected Stockfish to retake. Leela's eval dropped close to 0, it didn't expect Stockfish's reaction.

Stockfish moved Rg6 and Leela's eval jumped immediately over 10!! Leela couldn't take with the pawn because that would open the h file for mate threats. Instead Leela gave its queen for a rook and the game quickly reduced to a Q vs RN ending.

The white king captured the remaining black pawns, Stockfish's win was just a matter of time. 

In game 100 Leela decided to castle short. Stockfish developed its queen side slowly, Leela traded pawns there and then went a pawn up. Stockfish regained the pawn a few moves later but its eval jumped over 2 though material was equal.

There were too many weak black pawns and Stockfish's pieces were all passive defending them. Evals increased quickly as Stockfish gave a rook for a knight. It gave a pawn and tried to block the king side, Leela exchanged queens and reduced to a RR vs RN position.

Stockfish blocked the g pawn with its king, after Leela moved its king to e3 it forced a pawn trade with the f pawn. The black pawn wall crumbled and Leela created a passer in the center. Leela captured the black h pawn and pushed its king side passers. Stockfish couldn't hold against three passers on the 6th file, the game was soon over. There were two white wins in this opening, the final score is 14-8.


Saturday, February 6, 2021

Season 20 superfinal games 81-90

After 90 games Stockfish leads 11-5 with 74 draws. Stockfish won 3 more game pairs, making it 6 wins in the last 10 game pairs. With 10 games to go Stockfish is going to win the match, Leela needs a miracle to make a late comeback.

In game 81 there were no exchanges after the start, Leela pushed pawns on the king side and Stockfish pushed pawns on the queen side. Stockfish's eval went over 1 as it opened the queen side, went a pawn up and created a passer. The first pieces were exchanged on move 30, Stockfish supported its passer from behind and Leela doubled rooks on the file. The passer moved to the 5th rank and the engines exchanged queens, then started to shuffle. After a while Stockfish lowered its eval and the game was adjudicated. In game 82 Leela opened a file on the queen side and the engines exchanged a pair of rooks. The king side opened and evals came down, the engines reduced to a QN vs QB position. The white king came forward and Leela gave the knight for pawns, the game was adjudicated when the pawns stopped moving.

Games 83-84 started with a 20-ply book in the Sicilian Dragon, Yugoslav attack, where the engines castled in opposite directions. In game 83 queens were off early, Stockfish gave a knight for 2 pawns, forcing the black king to move and creating an advanced passer in the center. Leela lost a bishop for the passer and the engines reduced to a RB vs RB position with Stockfish a pawn up. After exchanging rooks the game reached an opposite bishop ending, Stockfish's eval kept the game going until move 186. In game 84 queens were also off early, the engines locked the queen side and evals came down. The center opened and after several exchanges the game reached a N vs B ending. Leela lowered its eval after 45 shuffling moves and the game was adjudicated.

In game 85 Stockfish's eval was over 1 from the start. Stockfish threatened the king side, Leela used its pawns to push the white queen back and exchange queens. Stockfish went a pawn up and its eval increased steadily. It was over 2.5 after Leela gave two more pawns and traded a rook for a bishop and a knight in a long PV agreement.

The exchanges continued and the game reached a R vs BN ending on move 33. Stockfish's eval was over 3 and climbing, Leela's eval did not change and drifted down if anything. From move 38 Leela started to think hard, more than 10 minutes per move, and its eval went over 1. The engines traded pawns until only 3 white pawns and one black were left.

The endgame was very long, Leela's eval started to react on move 46. By move 56 the engines traded a pair of pawns. Leela did not want to capture a white pawn to avoid a 6-man tablebase win, Stockfish queened the other pawn and the game was over.

In game 86 Stockfish locked the center and the queens stayed on the board. Leela didn't attack the king side immediately, it gave a pawn on the queen side and opened a file. The white king walked to the center and Leela pushed pawns on the king side. Leela had a strong DS bishop and evals were around 1.5, but the engines mostly shuffled. On move 62 Leela captured a pawn and equalized material, evals went over 2 and shuffling resumed. Leela did not have a plan, the engines opened another file on the queen side, pawn moves and exchanges extended the game to move 157. Leela traded Q for RN, 40 moves later it finally lowered its eval, the game ended in a repetition. Stockfish wins the game pair, it leads 9-5.

In game 87 Stockfish considered Leela's move 7 as a blunder and its eval jumped to 1.5. The engines played out a long PV agreement in which the black queen came forward to capture a pawn and Stockfish captured a rook for a knight. Evals did not change much through this move sequence.


There was another long agreement in the PV, Stockfish forced a bishop exchange and then the engines shuffled for a while. Stockfish's eval started to increase after Leela pushed a pawn on the king side. With the new pawn structure Leela's king became vulnerable on the back ranks. Both evals increased, the engines exchanged queens and only RRB vs RNN remained.

The material difference was enough to give Stockfish the win. The engines continued to trade pieces and pawns until the game ended in a tablebase position.

In game 88 Leela gave a pawn and opened a file in the center. There were many early exchanges including the queens. Leela had a bishop pair advantage and it avoided exchanging bishops. Evals were over 1 for a while, Stockfish's queen side knight was still on b8, yet Leela could not find a weakness or a way to break through. After move 38 Leela exchanged both its bishops for a rook and the black knight that finally moved. The engines shuffled and evals slowly came down, on move 115 Leela gave the material back and reduced to a drawn rook ending. The game ended in a tablebase draw. Stockfish wins another game pair, it leads 10-5.

In game 89 the engines opened a file in the center and Stockfish gave a pawn. Stockfish's eval was over 1 but it remained more or less constant. Stockfish pushed pawns on the king side until it stabilized, then the focus turned to the center. Stockfish regained the pawn, the all the bishops were exchanged. On move 30 Stockfish took back a bishop, though this was the obvious move expected by both engines its eval jumped to 2.

Stockfish's PV predicted the next sequence of moves, its eval increased steadily and before long Leela's eval started to react as well. Stockfish targeted the black knight, using various pins to make sure it doesn't move. Stockfish gave two pawns to get rid of the e6 pawn, then it reduced to a RN vs R position.

The endgame was slow, Stockfish played patiently. First to go was the black f pawn, Leela tried to push the h pawn but after exchanging rooks Stockfish captured it too. The game ended in a tablebase win.

Game 90 followed the previous game, Stockfish was a pawn up and there was an open file in the center. Leela pushed pawns on the king side, this time the pieces stayed on the board longer and evals came down. Leela gave a second pawn, then opened a file on the king side and threatened the black king but Stockfish felt completely safe. The engines exchanged a pair of rooks and Leela moved a rook to the 8th rank. When the white queen came forward Stockfish ended the game in perpetual check. Stockfish wins a third consecutive game pair and it leads 11-5.


Tuesday, February 2, 2021

Season 20 superfinal games 71-80

After 80 games Stockfish leads 8-5 with 67 draws. Stockfish won 3 game pairs, the largest gap in the match so far. There are only 20 more games to play, Leela needs wins to have a chance of winning the match. It is interesting to note that two of the game pair wins started with variants of the French opening, usually considered a strong opening for Leela.

In game 71 there were a few minor pieces exchanged after the start. Both engines left their kings in the center uncastled, Stockfish pushed a pawn to h6. By move 15 Leela moved both its rooks and there was no option of castling, Stockfish opened a file on the queen side and its eval started to increase. The black king side opened and Stockfish's eval was over 2.

Leela's h7 pawn was vulnerable and the black pieces were too far to assist. Stockfish moved its king to the king side to find safety, then in a long PV agreement it gave its queen for a rook and cleared the way for its h pawn. Leela couldn't stop the pawn promoting, in a series of exchanges the engines reduced to a RBN vs RN position, Leela 3 pawns up.

Leela wasn't in panic mode yet, it thought its pawns gave it some compensation for the bishop. Stockfish did not try to attack the black pawns, instead it focused on pushing the black king back to the back rank. Leela pushed a passer to the 2nd rank, but in a series of checks and forced moves Stockfish managed to trade pieces and capture the passer. This left a BN vs R position on move 56.

The material difference was minimal but both engines knew white was winning. Stockfish captured the two black pawns, Leela avoided taking a white pawn since that was a tablebase win. Leela played on until one of the white pawns queened, forcing the capture and the end of the game.

In game 72 Stockfish played h5 early and blocked the white h pawn. The engines opened a file on the queen side and Leela castled short. Evals were under 1, the engines exchanged a pair of rooks and Stockfish went a pawn up. Stockfish gave a bishop for 2 pawns and castled short to get its king away from the open queen side. Its eval went over 1 for a while, in a QRB vs QR position Leela attacked on the queen side. However the engines exchanged rooks and evals came down again. After a while Stockfish ended the game in a check repetition. Stockfish wins the game pair, it leads 6-5.

In game 73 the engines opened a file on the queen side after both engines castled, then exchanged a pair of rooks. Evals came down as the exchanges continued, the game reached an opposite color bishop ending on move 35. Stockfish was a pawn up and it took a while before it lowered its eval, the game was adjudicated on move 58. In game 74 Leela pushed pawns on the king side and moved its king forward. Stockfish opened the king side and threatened the white king. The black queen came forward and Leela exchanged queens. Stockfish gave a rook for a bishop, giving it control of the dark squares surrounding the white king. Two black knights came forward and there were many fork threats. Evals were close to 0, the engines reduced to a RRN vs RBN position with black two pawns up. The pawns didn't move and the game was adjudicated.

In game 75 the engines developed pieces without exchanges after the start. Then in a series of exchanges Stockfish cleared the black queen side pawns and created a passer. Queens were exchanged and all pieces moved to the queen side. Stockfish pushed the passer forward and Leela exchanged pieces. In a RN vs RB position the passer queened and Leela gave a rook for a knight to capture it. Stockfish thought it had an advantage in the R vs B ending, its eval jumped to 2.5. However, Leela kept the white king away and Stockfish could only shuffle. Stockfish extended the game with pawn moves and finally lowered its eval for the draw rule on move 172. In game 76 all pieces and pawns were on the board until move 26, the engines locked the center and Leela had a space advantage. The black queen came forward and the engines exchanged queens. The engines could have opened either the e or f files, but they chose to shuffle instead. After 50 moves Leela exchanged minor pieces, evals came down and the draw rule was almost activated. On move 100 finally the f file opened and the exchanges began, the game reached a tablebase draw on move 120.

Games 77-78 started with a 20-ply book in the Sicilian Najdorf, English attack, with the engines castled in opposite directions. In game 77 Stockfish pushed pawns on the king side until Leela captured one. Stockfish's eval jumped over 1 on move 18 and continued to increase after it created a passer on d6. Leela created a passer on the king side, Stockfish gave a rook for the DS bishop that controlled the d8 square, then moved the other rook to the 7th rank. Leela lost its passer on the 2nd rank, it had 3 more on the king side but it started to feel uncomfortable and its eval slowly increased.

Stockfish hid its king behind a black pawn and prepared for pushing its passer forward. After exchanging queens there was a long PV agreement that started with a bishop sacrifice by Stockfish and ended with the white passer on the 7th rank. Stockfish queened, and a series of exchanges led to a Q vs BN position, black two pawns up.

The endgame was long and difficult, though Stockfish never had doubt it could convert. It captured one black pawn quickly, but then it was unclear how it could involve the king, capture another pawn or push its last pawn forward. the white king came to the center of the board, Stockfish pushed the black king forward on the king side. On move 84 it forced Leela to move its g pawn and reset the 50-move counter. On move 91 it captured the black a pawn and its last pawn became unstoppable. The game ended with two white queens on the board.

In game 78 there were many early exchanges, all knights were gone and the game reached a QRB vs QRB position on move 23. Leela gave a pawn and moved a black pawn to c3, trapping the white king. Stockfish exchanged bishops, captured a second pawn and drove the black king to the open queen side. Evals were low enough for adjudication once the pawns stopped moving. Stockfish wins the game pair, it leads 7-5.

Stockfish's eval was over 1 from the start of game 79. The white king side rook developed through the h file, Stockfish didn't castle and Leela castled long. Stockfish pushed pawns on the queen side, disrupting the black pawn structure. A white pawn reached a6 and pushed the black king to the corner. Leela tried to attack an isolated white pawn on e5, Stockfish matched attackers with defenders. Leela appeared to shuffle as Stockfish moved a knight all the way to b7.

Evals were still close to their starting values, Leela's position looked miserable but it thought it could hold. For a while Stockfish didn't find a way in, the knight jumped between b7, c5 and d6 and restricted the black pieces. After Leela's move 37 Stockfish saw something and its eval jumped. Leela saw it too a few moves later, a series of exchanges reduced to a QR vs QR position. Stockfish had a pawn majority on the queen side, after exchanging rooks it created a passer there.

Material was still equal but Stockfish was winning. It captured the h pawn first, Leela guarded the a7 pawn and got rid of the white passer on the c file, but Stockfish captured another pawn on the king side and created a passer there. After exchanging queens the black king was too far to stop the passer, game over.

In game 80 there were several minor piece exchanges after the start, Stockfish moved its king early and couldn't castle. Leela castled long and on move 17 only QRR vs QRR remained. For a while Stockfish's eval was over 1, but it came down after the engines exchanged a pair of rooks. The pawns stabilized and the engines started to shuffle, Leela couldn't find a safe way to open the king side. After 40 moves the engines traded pawns on both sides and opened the position. Stockfish pushed a pawn on the queen side and gave it to expose the white king. The engines reduced to a queen ending, Leela was up a pawn but with both kings exposed and evals close to 0 the game was soon adjudicated. Stockfish wins another game pair, it leads 8-5.