Sunday, March 29, 2020

Season 17 premier division, all engines, after 90 games

Crosstable after 90 games

There were only 3 decisive games in the first 30 games involving GPU engines, and only one of these was a CPU-GPU match. As a result the CPU engine standings did not change. In the GPU part of the table Leela and AllieStein have one win each, a better win rate than Fire which is currently in 2nd place. Still very early to make predictions.

We have seen the characteristic properties of GPU engines: longer games, mate on the board, the inability to convert won endgames. The increase in draw rate was unexpected but it may still improve.

There were two network crashes in CPU-GPU games.

Interesting games

Game 64, Fire - AllieStein: AllieStein was sure it was better in a BN vs RN position with white 3 pawns up. It gave the knight for pawns and pushed a passer to the 2nd rank, its eval over (negative) 10 for a few moves. Fire was willing to trade its bishop for the passer in case it tried to promote, and AllieStein knew this would lead to a draw. Instead the engines shuffled for almost 50 moves, and only then AllieStein made the trade, its eval coming down to around 1.5. Still AllieStein wouldn't give up and the game ended in a 50-move draw on move 161.

Game 69, Komodo - ScorpioNN: ScorpioNN was a pawn up and its (negative) eval kept increasing. ScorpioNN's eval peaked over 4, Komodo also thought it was behind with an eval of 2. It seemed ScorpioNN could attack on the king side, but it just kept shuffling as evals slowly came down. The engines started to exchange everything, the game ended in a tablebase draw on move 150.

Game 73, ScorpioNN - AllieStein: AllieStein captured a pawn with its queen and then retreated, there was no eval change so the pawn was not poisoned. On the contrary, its (negative) eval started to increase. ScorpioNN tried to press on the queen side, AllieStein gave a rook for a knight and broke through the center. After some shuffling AllieStein captured another pawn, the game reached a QR vs QB position with black 3 pawns up. The black pawns moved forward and ScorpioNN couldn't stop one from promoting, the game ended with mate on the board. First decisive game for a GPU engine.

Game 83, Leela - Stoofvlees: Stoofvlees gave a lot of material early in the game, it was down a full rook on move 25. The white king was on the run from the black queen and bishops, Leela slowly untangled its pieces and then the material advantage became evident. Stoofvlees tried to push a passer and lost it in the end, it tried giving checks with its queen but Leela found safety for its king. The game ended with mate on the board.

Game 84, ScorpioNN - Stoofvlees: See featured game below.

Game 87, KomodoMCTS - ScorpioNN: There were no exchanges in the first 25 moves. The center was blocked and the engines opened files in the flanks. KomodoMCTS was active on the queen side and evals started to increase, ScorpioNN was weak there with a blocked pawn on c7 and an almost trapped bishop on c8. KomodoMCTS broke through the queen side, ScorpioNN countered on the king side and there was a massive exchange. The game reached a queen ending, KomodoMCTS was a pawn up and its pawns were more advanced. The game ended in mate.

Featured game: ScorpioNN - Stoofvlees
Premier division, game 84
Link to game on TCEC

ScorpioNN had a space advantage, it pushed its pawns forward and the black pieces had to move back. Stoofvlees gave material to open the board and to counter with an attack on the exposed white king. Evals went over 2, Stoofvlees was a rook down and both engines didn't believe the king side attack compensated for the material loss.

ScorpioNN avoided threats of a perpetual check, Stoofvlees chased the white king but it escaped to the queen side where it had the protection of its pieces. Along the way Stoofvlees captured a few pawns. ScorpioNN forced a queen exchange that stopped the threats on the white king. The game reached a RBN vs BN position with black 4 pawns up.

All evals were very high, ScorpioNN just had to get rid of a few pawns and exchanged pieces, it seemed an easy win. ScorpioNN went after the black bishop first, it exchanged its knight for it, losing its last pawn in the process. Both engines seemed less sure about the outcome, their evals drifted down.

Stoofvlees kept three pawns on the king side, and together with the knight it built a fortress that ScorpioNN couldn't break. The white king stood in the way of the pawns without moving, and the white pieces could not mate the black king without its help. The engines just shuffled for 50 moves, and ScorpioNN ended the game by giving the bishop for a pawn. The draw was quite unbelievable.

Wednesday, March 25, 2020

Season 17 premier division, CPU only full results

Final crosstable for CPU only games

Stockfish continues to dominate the CPU part of the division. It added 3 more wins in white, KomodoMCTS is the only engine it hasn't beaten. Fire is still in 2nd place, the only other engine with a positive score, though it lost once to Stockfish. Houdini continues to be weak, both it and KomodoMCTS have a good chance of relegating this season.

The GPU engines will start playing in the division in the next phase. I'm looking forward to these games, the CPU-GPU matchup of this season. I will continue to report every 30 games, each time a full RR is completed. This is as close to a balanced table as we're going to get this season.

Interesting games

Game 31, Stockfish - Ethereal: The first pair of pawns was exchanged on move 27. Ethereal used minor pieces to close gaps in its pawn line, evals were over 1 but the position looked stable. The engines shuffled for 30 moves, then Stockfish exchanged a few pieces and opened a file on the queen side, its eval jumping over 2. After some more shuffling Stockfish went two pawns up and reduced to a RB vs RN ending. The game continued for 20 more moves, Stockfish pushed pawns forward until adjudication.

Game 39, Fire - KomodoMCTS: KomodoMCTS sacrificed a bishop for pawns, the white king remained in the center facing two black central pawns. Fire gave the piece back to remove the pawns, the engines exchanged most pieces and Fire reduced to a rook ending with one pawn advantage. KomodoMCTS thought it was safe, with evals at 0 even when Fire was seeing mate in the future. However it was Fire that was right and the game was over quickly.

Game 40, Ethereal - KomodoMCTS: Pawn lines were mostly stable from move 22, Ethereal gave a pawn but it had an eval advantage. The engines shuffled for a long time, with a few pawn moves and exchanges that reset the 50-move counter. On move 80 Ethereal's eval jumped as it gave a second pawn and opened the king side. Ethereal sacrificed a knight, its attack on the black king was strong and KomodoMCTS gave its queen for a rook to stop it. The game reached a Q vs RB ending, the queen was much stronger and Ethereal soon captured enough material to win.

Game 41, Stockfish - Fire: See featured game below.

Game 53, Stockfish - Houdini: After 35 moves evals were close to 0, Houdini was a pawn up and Stockfish had strong major pieces in the center. Stockfish's eval jumped over 1 when the black knight got into trouble. After a series of threats and pins Houdini gave a rook for a bishop and reduced to a RR vs RN position, black two pawns up. The white rooks were very active, Houdini had a passer it pushed to the 2nd rank. Stockfish was very patient, it blocked the passer with its king and captured two pawns. Houdini avoided exchanging rooks, in the end it had to give up the passer and the game was finally adjudicated on move 87.

Game 58, Ethereal - Houdini: All pieces were on the board, the engines exchanged a pair of pawns and opened the h file. Houdini took over the file and evals increased to about 1 (negative). Ethereal gave a pawn on the queen side, all pieces were still on the board as the engines shuffled for a while. Evals turned positive gradually, a series of exchanges opened the position and only QRB vs QRB remained. Houdini was a pawn up but Ethereal had a dangerous queen side passer. After exchanging queens Ethereal started to capture black pawns. Houdini tried to push passers but could not protect them, the game was adjudicated with white 3 pawns up.

Featured game: Stockfish - Fire
Premier division, game 41
Link to game on TCEC

Fire moved its queen forward early in the game, Stockfish avoided exchanging queens, its eval was around 1. The white king looked exposed but it was safe from attack. The black king was more vulnerable.

Stockfish pushed the black queen to the queen side and then attacked the black king. Fire refused to take a sacrificed knight to keep the king side pawns, Stockfish gave a rook to take out a defending knight. Fire's eval was still close to 0, it didn't see what was coming.

Fire gave the material back and the game reached a QR vs QR position, the black king was still under threat. Both engines raced to promote a pawn, Stockfish went up a pawn and exchanged rooks.

In the end both sides promoted a pawn and lost one queen, in the queen ending the white pawns were better placed and Fire could not avoid another white promotion, the game was adjudicated quickly.

Saturday, March 21, 2020

Season 17 premier division, CPU only, after RR2

The organizers have decided to order the premier division games so that the GPU hardware usage is optimized. The CPU only games will be played first without a need for a GPU machine. Then all the CPU-GPU and GPU-GPU games will be played. Eventually all games will be played (a 2xDRR tournament), but it will be very difficult to understand the relative standings of the engines until the very end.

For me this is a little disappointing, I think that the most interesting part of this division is the CPU-GPU clash and now it will be postponed and the crosstables will not be balanced for most of the division. It will be very surprising to me if Stockfish does not dominate the CPU part of the division. I would like to see whether Leela can put up a fight this season, whether AllieStein is as strong as last season, and whether Stoofvlees can beat AllieStein or Leela.

Despite these reservations, the chess is going to be of the highest level as it always is in TCEC !!

Crosstable after RR2

As expected Stockfish is in the lead with 3 wins, all when playing white. Fire is in second place with a win and no loss, quite surprising for Fire, though it may be temporary and there are many games to be played yet.
Houdini is last with 2 losses, Houdini is using only 64 threads of a possible 176 and this may affect its strength relative to the other engines.

Interesting games

Game 1, Stockfish - Ethereal: The game reached a RB vs RB position on move 33, both evals were close to 1 and Stockfish quickly went up a pawn and created a passer. Ethereal had to block the passer and Stockfish used this to capture a second pawn. Ethereal tried to counter by pushing a passer to the 2nd rank, Stockfish forced a rook exchange and the game was adjudicated.

Game 6, Stockfish - Komodo: Stockfish had a small eval advantage after the opening, which started to increase after 25 moves to over 1. By move 40 Stockfish was a pawn up with a pawn majority on the king side. After exchanging most pieces the game reached a QB vs QB position, Stockfish's eval climbed rapidly while Komodo's eval stayed around 2. The endgame was long and subtle, Komodo got the pawn back and tried to create a fortress. The white king assisted in blocking a black pawn and finally Komodo acknowledged that it was losing. The game was adjudicated with Stockfish 2 pawns up in a queen ending.

Game 9, Fire - KomodoMCTS: see featured game below.

Game 12, Komodo - Houdini: Komodo gave a pawn and opened a file on the king side, after exchanging queens it had a passer on the 6th rank facing the black king. A strong bishop on the long diagonal added pressure on the black king and evals increased over 2. Houdini had to give a rook for a knight, the engines exchanged down to a RR vs RB position. The black rook had to block the passer, Komodo started to pick up pawns and the game was adjudicated.

Game 23, Stockfish - Houdini: Houdini captured a pawn with its queen and opened a file for Stockfish facing the black king. Stockfish then gave a rook for a knight while threatening mate. Evals jumped as Stockfish increased the pressure, Houdini exchanged queens and saved its king, but Stockfish captured a rook and was a piece up. Houdini tried to defend for another 15 moves before giving up.

Featured game: Fire - KomodoMCTS
Premier division, game 9
Link to game on TCEC

KomodoMCTS opened the queen side early, its queen went forward and Fire used its pawns to push it back. Evals climbed to around 1 after Fire captured a rook for a bishop and pawn, and then placed its knight on c5.

KomodoMCTS exchanged knights on c5, at the cost of a white passer. Fire pushed the passer to the 7th rank while evals increased slowly.

KomodoMCTS tried to counter on the king side, it pushed its e passer forward and attacked with its queen. Fire kept its king safe, it exchanged pieces and traded its c passer for another on the a file.

KomodoMCTS had to abandon its passer to block the white a pawn, then lost its bishop to capture it. Fire was a rook up and the game was adjudicated a few moves later.

Friday, March 13, 2020

Season 17 league 1 playoff statistics

A summary statistics table of previous stages and seasons. 

Draw rate, wins

Final draw rate was 66.7%.

Game termination

The three most common game termination causes were:

38.3% - SyzygyTB
23.3% - TCEC draw rule
13.3% - TCEC win rule

There was 1 crash in the stage, but that was due to a wrong parameter setting for ScorpioNN. The game was resumed after the parameter was fixed. There were 8 games with mate on the board, mostly ChessFighterNN losses.

Moves per game

Median= 72.5
Average= 74.8

These are NN-related numbers, significantly higher than in AB engine games.
There were 9 games longer than 100 moves, the longest was 148 moves (ScorpioNN - Fire, game 27, draw).

Time per game (hours)

Median= 2:01
Average= 1:56


There were 8-move book openings in this stage chosen by Cato. The first letter of the ECO codes was distributed as follows:

The engines had almost no freedom to choose the opening variant, all of the game pairs repeated the same ECO code and the same opening variant twice.

Reverse pairs, wins

Reverse pairs, same moves

Pairs of reverse games diverged very quickly, 43.3% diverged immediately out of book, 83.3% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 10 plys (Ethereal - Fire games 36 and 51, Nimzo-Indian classical variation, two draws).  

Season 17 league 1 playoff, final results

Final crosstable

Fire, KomodoMCTS, ScorpioNN and Ethereal will play in the premier division, together with Stockfish, Leela, AllieStein, Komodo, Houdini and Stoofvlees.

rofChade was in the race for 4th place until the very last game of the league. It was better than Ethereal in their head to head matches, it lost the race due to its many losses to higher ranked engines.

Notable games
Game 32, Fire - rofChade: The black king was uncastled in the center, Fire gave a knight for two pawns to open the center and attack. rofChade couldn't find safety for its king and it gave a rook for a bishop to stop the attack. This led to a RR vs RBN position, Fire was 4 pawns up and that was enough to win.
Game 33, ScorpioNN - KomodoMCTS: ScorpioNN had an eval advantage from the opening, its eval climbed over 3 very quickly and then stayed there. The center was blocked and the black pieces were on the queen side, leaving the black king vulnerable. The engines mostly shuffled for a while, ScorpioNN moved its focus to the queen side. KomodoMCTS felt safe and evals slowly decreased, the engines opened a file on the queen side and exchanged a pair of rooks. Then scorpioNN broke through the center with a knight for pawns sacrifice and evals jumped back. The pressure on the black king increased until KomodoMCTS exchanged pieces and gave a bishop. ScorpioNN was up 3 pawns in a knight ending, a straightforward win.
Game 39, KomodoMCTS - rofChade: There were only a few exchanges after the opening, KomodoMCTS had a small eval advantage, evals stayed under 1 until move 35. The engines opened files on the queen side and evals jumped over 2, they continued to increase while the engines exchanged pieces. Eventually KomodoMCTS went up a bishop and the game was adjudicated.
Game 40, ChessFighterNN - rofChade: ChessFighterNN's eval increased quickly after the opening and went over 5. rofChade's eval was over 2 which was more believable. The visible advantage was two white passers and only one black passer. Despite the clear eval advantage ChessFighter did not play the right moves and rofChade was able to remove one passer and to reduce to a drawn bishop ending.

Scores after RR3: Fire +6, KomodoMCTS +4, ScorpioNN +2, Ethereal -1, rofChade -3, ChessFighterNN -8.
The most interesting race is for 3rd and 4th place. ScorpioNN is in 3rd after it adds two wins in RR3 and creates a small gap to the two engines below. rofChade loses twice in RR3 and is moving away from the premier division. Ethereal with 5 draws is in 4th place, 1 point above rofChade. There are 5 rounds left. 

Game 48, KomodoMCTS - ScorpioNN: KomodoMCTS had a small eval advantage after the opening, Evals jumped after KomodoMCTS sacrificed a knight and exposed the black king. ScorpioNN was not prepared for the deadly attack, it gave a rook to try to save its king. KomodoMCTS started to capture black pieces and ScorpioNN resigned. There were two white wins in this opening, a possible opening bias.

Scores after round 18: Fire +6, KomodoMCTS +5, ScorpioNN +1, Ethereal -1, rofChade -3, ChessFighterNN -8.
ScorpioNN lost a game but with only two rounds to go it is almost certainly going to be in the top 4. The last game in the playoff is between Ethereal and rofChade, rofChade has a tiebreak advantage so it can still overtake Ethereal with a win.  

In round 19 rofChade beat ChessFighterNN, Ethereal drew against KomodoMCTS and ScorpioNN drew against Fire. The 4th place will be determined in the last game, rofChade needs a win, any other result is good for Ethereal. There will not be a tiebreak in any case.

Game 59, Fire - KomodoMCTS: The game reached an opposite color bishop ending and appeared to be an easy draw. However, KomodoMCTS blundered and let the white king approach a pawn in a way that prevented the black bishop from defending. Fire had two advanced passers, and the game was over when one promoted to a queen.

In the last game rofChade needed a win but it was Ethereal that had an eval advantage, and the game ended in a draw.

Tuesday, March 10, 2020

Season 17 league 1 playoff, after RR2

Crosstable after RR2

For the first time in season 17 CPU engines are playing against GPU engines. Four out of the six engines in this playoff will move on to play in the Premier League, the highest level  TCEC tournament.

At the halfway point it appears that Fire and KomodoMCTS will promote while ChessFighterNN is probably going to finish last. The middle group of ScorpioNN, rofChade and Ethereal are in the race for two promotion spots.

The GPU and CPU engines have very different evaluation functions. The games in this league tend to be longer than in previous stages, the engines take longer to decrease evals in drawn results. ChessFighterNN's eval rarely increases beyond 10 and as a result its games can continue until mate (4 games so far). There was one crash by ScorpioNN, but that was due to a wrong parameter setting. The parameter was fixed and the game was resumed without a problem.

Notable games

Game 3, ScorpioNN - KomodoMCTS: ScorpioNN thought it was better in a closed position with blocked pawn lines. The engines shuffled from move 28 and ScorpioNN avoided the 50-move draw with a pawn sacrifice. The engines continued to shuffle, though ScorpioNN allowed a black pawn to reach the 2nd rank. Then quite suddenly KomodoMCTS' eval jumped, it found a mating sequence that ScorpioNN overlooked, perhaps due to a queen sacrifice.
Game 10, ChessFighterNN - rofChade: ChessFighterNN was sure it was better after the opening, its eval peaked over 3. rofChade traded 2 knights for a rook and pawn, it exposed the white king to attack along the long diagonal. Evals dropped to 0, then ChessFighterNN blundered when it failed to consider a rook for knight sacrifice by rofChade. The white king came under attack and ChessFighterNN was forced to trade down to a rook ending. rofChade was a pawn up with connected passers, both engines queened a pawn but rofChade was first. It was able to promote a second pawn and win.
Game 15, rofChade - Ethereal: Evals climbed above 1, rofChade had more space and it trapped one of the black rooks for a while. After several exchanges the game reached a RN vs RN position, rofChade with a pawn up and a queen side passer. Ethereal exchanged rooks and that was a possible blunder, rofChade's eval jumped quickly. At first Ethereal thought it was safe, when its eval reacted it was too late, the white passer was unstoppable and the game was adjudicated.
Game 21, Fire - Ethereal: Fire had a space advantage, the first piece was exchanged on move 31, Ethereal had a passer but couldn't push it forward. After another minor was exchanged Fire had strong central pawns and a bishop pair, the black king became a target. Several exchanges cleared the center, Fire was a pawn up and it pushed a passer forward. Ethereal gave a rook for a bishop to remove the passer, Fire converted the RRB vs RBN ending, the game was adjudicated 10 moves later.
Game 30, Ethereal - rofChade: The game reached a QB vs QB ending, Ethereal with a pawn up. Ethereal's eval was close to 2 but it couldn't find the win, rofChade held and the game was adjudicated a draw on move 137.