Sunday, March 5, 2023

Season 24 league 1

Final standings

Koivisto and Berserk advance to the premier division. Koivisto led from the start, its lead increased and none of the other engines came close. It beat all engines in at least one game pair, except for drawing against Berserk and losing one game pair to Seer. The race for 2nd place was very close with 5 engines within a point of each other until the last rounds. Berserk qualified in the end, it is the only engine without any game pair loss in the league, and it had two game pair wins against the other engines in the race.

Minic, Fritz, BlackMarlin and Marvin are relegated to league 2. These engines were at the bottom of the table from the start and their relegation was predictable. They lost 48/64 of the game pairs played against the higher ranked engines, BlackMarlin was the only one that managed one game pair win against ScorpioNN. Except for Minic the relegated engines advanced from league 2, Igel is the only qualifier that survived league 1.

The two qualifiers will play in the premier division together with:
Stockfish Leela KomodoDragon Ethereal Stoofvlees SlowChess - all played in season 23 premier division.

Interesting games

game 8, Revenge - RubiChess: Revenge castled long while RubiChess did not find the right time to castle. Revenge gave a pawn and opened the center, then it attacked the black king and forced it to move to the king side. The result of the attack was a QRB vs QRB position with white two pawns up. Revenge captured the remaining black pawns, RubiChess couldn't avoid a queening and game over.

game 13, Koivisto - Igel: The engines the d file and Koivisto placed a rook safely on d6, then gave a bishop for a pawn and exposed the black king. A knight sacrifice opened the 6th rank and Koivisto chased the black king with its queen and rook all the way across the board. The chase stopped when Koivisto captured a queen for a rook, resulting in a Q vs RNN imbalance with white 3 pawns up. There were 3 connected white passers on the king side, Igel tried to block but after exchanging a pair of rooks Koivisto's passers were unstoppable. The game ended in mate with 3 queens on the board.

game 15, ScorpioNN - rofChade: ScorpioNN had a bishop pair advantage, pawn exchanges opened the board and the game reached a RBB vs RNN position with white a pawn up. Koivisto created a passer on the king side, then captured another pawn and created a passer on the queen side. rofChade blocked the passers until ScorpioNN exchanged bishop for knight and the white king moved forward to help. ScorpioNN pushed both passers slowly, eventually queening both and mating.

game 18, BlackMarlin - Revenge: The engines shuffled in an opposite color bishops ending with white a pawn up. This should have been a draw but Revenge blundered and BlackMarlin managed to avoid a 50-move draw and capture two pawns, enough for a win.

game 19, Igel - Revenge: Igel had a space advantage and a significant eval advantage from the start. Exchanges opened the position, Igel went two pawns up with two passers on the queen side. One passer reached the 7th rank, Revenge lost a rook to capture it and Igel converted the RRN vs RB position easily. 

game 24, Koivisto - Berserk: The game reached a RBB vs RNN position and evals slowly increased. Koivisto went a pawn up and created two passers, one on each side. Berserk had a passer in the center but it was busy trying to stop the white passers advance. Berserk lost a knight for one passer, the game ended in a tablebase win with one last white pawn.

game 28, RubiChess - rofChade: Evals slowly increased after move 20, both engines created a passer but the white passer was more advanced and better protected. The game reached a RRN vs RRB position, RubiChess captured the black passer and pushed its own to the 6th rank, then captured two more pawns. After all rooks were exchanged the game ended in a tablebase win.

game 36, Berserk - ScorpioNN: Berserk was up a rook for a knight for a short while but gave the material back, resulting in a QRB vs QRB position. The black king was more exposed and the black pawns isolated, Berserk captured a pawn and then captured a rook for a bishop. Berserk's evals showed mate scores, it exchanged queens and reduced to a tablebase win.

game 37, ScorpioNN - Igel: ScorpioNN was 2 pawns up in a BN vs BB position with high evals, but it couldn't find a way to convert. 

game 49, Fritz - Igel: The white king was uncastled in the center, but more significantly Fritz had a pawn on h6 and there was a black bishop trapped in the corner. Igel had the strength to capture the h6 pawn but it left it there, probably not wanting an attack on the h file. Fritz captured a pawn on the queen side, Igel moved its bishop out of the corner and later traded it for a white bishop. Fritz created a passer on the queen side, after exchanging queens Igel lost a rook to capture the passer. The game ended in a tablebase win.

game 55, Igel - rofChade: Evals were high and increasing from the start, the g file was half opened and the black king was under threat. rofChade exchanged pieces to protect its king, Igel captured pawns, the game reached a RB vs RN position with white a pawn up. For a while rofChade tried to force stalemate, Igel avoided that and reduced to a tablebase win.

game 58, Berserk - Revenge: Evals started to increase around move 30, Revenge controlled the open a file and Berserk pushed the h pawn forward. Berserk opened the h file and increased the pressure on the king side, then it gave a bishop for a pawn and exposed the black king. In the attack Berserk sacrificed a rook but captured the queen, leading to a QN vs RBB position. Revenge tried to protect its exposed king with its pieces, Berserk used a passer to capture a bishop, then reduced to a won knight vs pawns ending. 

game 63, Revenge - ScorpioNN: For over 30 moves evals were below 1, ScorpioNN was a pawn up and no worried. Evals started to jump when in a series of exchanges Revenge gave a piece and reduced to a RN vs RBN position. Revenge created connected passers as well as captured two advanced black pawns. One passer was on the 7th rank and ScorpioNN had to give the rook to stop it. The game ended in a tablebase win. 

game 64, Seer - Berserk: Seer focused its pieces on the king side with a pawn on h6, while Berserk went a pawn up and its queen moved forward on the queen side. Seer was strong on the dark squares and it threatened mate on the long diagonal, a series of exchanges reduced to a Q vs RB ending. Seer captured pawns and the h6 pawn became a passer, Berserk tried to trap the queen but Seer used zugzwang to force a queening and win.

Standings after RR1: Koivisto +4, Igel RubiChess +2, Berserk ScorpioNN +1, Revenge Seer rofChade 0, Minic -1, Fritz -2, Marvin -3, BlackMarlin -4. Koivisto has a small lead, there a 7 engines within one point of second place. The 4 engines with negative scores include 3 of the qualifiers from league 2.

game 85, Revenge - Igel: A long series of exchanges reduced to a same color bishop ending with white a pawn up. All pawns except one were blocked, Igel tried to make sure the white king couldn't move behind the pawns. After a long shuffle Revenge found a way to force the black bishop away and the white king advanced. The black king moved to protect the pawns in the center, Revenge gave two pawns and queened on the king side, game over. 

game 90, Berserk - Koivisto: The engines gradually exchanged pieces while evals increased, the game reached a double rook ending with white a pawn up. Koivisto regained the pawn but Berserk created connected passers. Koivisto blocked the passers and avoided exchanging rooks, Berserk captured two pawns and pushed a passer to the 7th rank. Koivisto pushed its last pawn forward, it captured a white passer and exchanged a pair of rooks. Both engines queened a pawn, Koivisto was first but Berserk promoted with check, this was enough to force mate.

game 91, Igel - Berserk: Igel had an eval advantage despite sacrificing a knight, it threatened the black king through the open king side. Berserk found a way to walk its king safely to the center and evals came down. After a period of shuffling evals turned negative as the engines opened the position. Berserk captured pawns and created passers, the game reached a queen ending with white 3 pawns up which Berserk converted easily. 

game 92, Koivisto - ScorpioNN: The game reached a QRR vs QRR position with white a pawn up. The black king was exposed, Koivisto gave checks and captured two more pawns, then reduced to a winning queen ending. 

game 94, rofChade - RubiChess: There were a few pawn and minor piece exchanges in the first 50 moves and evals were mostly stable. After a period of shuffling there was a series of exchanges that left a QN vs QB position with white a pawn up. The engines cleared the queen side pawns and shuffled some more. rofChade's eval started to increase, it found a way to exchange queens and move its king forward. The black bishop and the white pawns were on opposite color squares, rofChade managed to capture a pawn and push a passer to the 7th rank, enough to win. Did RubiChess blunder here?

game 102, ScorpioNN - Berserk: The game reached a BB vs BN with white a pawn up, ScorpioNN had advanced connected passers and Berserk also had a passer. There was a long period of mostly shuffling, on move 100 Berserk exchanged its knight for one of the white bishops and reduced to an opposite color bishop ending. However, ScorpioNN created another passer and Berserk couldn't control them all, it lost the bishop for a passer, game over. Could Berserk have held here?

game 105, Koivisto - RubiChess: There were many early exchanges and the game reached a RRB vs RRB position with white a pawn up. Pawn exchanges opened files and Koivisto captured another pawn. RubiChess regained a pawn and exchanges bishops, evals started to increase after move 70. At first the engines seemed to shuffle but Koivisto found a way to exchange a pair of rooks and capture a pawn. Koivisto used passers to win.

game 110, Seer - rofChade: After the engines exchanged queens rofChade moved a rook forward on the queen side and Seer blocked its way back. rofChade didn't try to free its rook, Seer moved its king to take it and rofChade traded the rook for a bishop. Seer reduced to a R vs B ending, it captured pawns and queened a passer to win.

game 114, Fritz - ScorpioNN: ScorpioNN was up a pawn with the black queen moving forward on the queen side, for a long time it seemed Fritz tried to hunt the black queen and ScorpioNN refused to move it back again. After move 45 evals started to increase, the black queen moved to the king side and threatened the white king. Fritz counter-attacked from the queen side, it regained the pawn and created a passer. ScorpioNN could not prevent a queening and Fritz mated.

game 118, Koivisto - Revenge: Revenge gave a pawn, Koivisto thought this was a mistake and it led to a B vs R trade. For a while there were no exchanges though evals slowly increased. A series of exchanges reduced to a R vs BN position, Koivisto captured a pawn and created connected passers on the queen side. Koivisto gave a rook for a bishop to make the passers unstoppable, mate was quick after the queening.

game 124, Revenge - Berserk: Thee were many early exchanges that left only QBN vs QBN, evals started to increase while the remaining minor pieces were exchanged. Revenge was a pawn up in a queen ending, it had a passer and its king was less vulnerable. Progress was slow but sure, Revenge captured another pawn and pushed its passer forward to force the win.

game 127, Igel - RubiChess: The engines exchanged pieces and material was equal but evals slowly increased. The black pawn structure was weak, when only RN vs RB remained Igel captured two pawns. Both engines had advanced passers, but after both were gone RubiChess had no more resources. Igel pushed its two remaining pawns to win. 

game 130, Berserk - Seer: The game reached a RRN vs RRN position, material was equal but Berserk had a space advantage and evals were increasing. Berserk created connected passers in the center with pawn exchanges, and exchanged a pair of rooks. Seer had passers on the king side but it could not stop the white pawns charging in the center and lost its knight. Berserk queened another passer and mated.

Standings after RR2: Koivisto +8, Revenge +4, Igel Berserk +3, ScorpioNN RubiChess +2, rofChade +1, Seer 0, Minic Fritz -4, BlackMarlin -7, Marvin -8. Koivisto is leading with 8 game pair wins and no loss. The fight for 2nd place is wide open with 5 engines within a point of each other. Revenge came back to current 2nd with 5 wins in RR2 (and one loss to Koivisto), drawing 3 game pairs that it lost  in RR1 (including against BlackMarlin). The bottom 4 engines are clear at this point, 3 qualifiers and Minic. They lost 23/32 game pairs against the other 8 engines with no win.

game 134, Koivisto - rofChade: rofChade moved its king side rook early, the black king moved forward without castling. Koivisto went up a pawn and had an advanced passer on the queen side, rofChade hid its king behind the passer. The engines exchanged pieces and pawns, rofChade captured the passer and Koivisto captured a second pawn. In a RRB vs RRN position Koivisto captured a third pawn, it queened a passer and mated.

game 136, ScorpioNN - Seer: Queens were off early, the engines exchanged pieces and pawns gradually and there were long periods of shuffling with mostly stable evals. On move 75 ScorpioNN went a pawn up in a RRB vs RRB position and evals started to increase. ScorpioNN captured a second pawn and exchanged a pair of rooks. After ScorpioNN captured a third pawn Seer could not stop the white passers, game over.

game 142, Minic - ScorpioNN: ScorpioNN was up a pawn early, but Minic had an eval advantage. After a series of exchanges the game reached a RR vs RB position. ScorpioNN pushed pawns forward on the queen side, Minic exchanged a pair of rooks and pushed a passer on the king side. The game ended in a tablebase win just before Minic captured the bishop the passer.

game 143, rofChade - Berserk: rofChade went a pawn up and the game reached a RB vs RN position. rofChade had a pawn majority on the queen side, the white king moved to assist the pawns while the white rook moved forward. After some preparations rofChade created a passer and captured another pawn, then exchanged rooks. The white king came forward and rofChade trapped the knight, Berserk couldn't avoid a queening and mate.

game 145, Koivisto - Igel: Koivisto gave 3 pawns and a rook, Igel's king was exposed in the center and the black queen far on the 1st rank. Koivisto attacked the black king, Igel surrounded its king with pieces. Igel gave back the material but in a QRN vs QRN position its king was still in danger. Koivisto captured a knight and exchanged queens, it took more than 30 moves to capture 2 pawns and force mate.

game 149, RubiChess - Seer: The engines castled in opposite directions, RubiChess gave a pawn and half opened the h file facing the black king. Seer tried to counter on the queen side but was not effective. RubiChess attacked the black king, it won a bishop and Seer hid its king behind a white pawn. In a QRB vs QR position RubiChess captured all the black pawns, mate followed.

game 151, Igel - Revenge: The engines gradually exchanged pieces and the game reached a RRN vs RRN position. Both engines had a passer on the queen side. Revenge captured the white passer, Igel captured two pawns and created a passer in the center. Igel captured the black passer, Revenge tried to avoid exchanging pieces but eventually it lost a knight for a passer and the engines exchanged a pair of rooks. Igel reduced to a tablebase win.

game 162, Revenge - Seer: There were only a few pawn exchanges until move 49, though evals slowly increased. Then in a series of exchanges the queen side opened and all rooks were off. Revenge created connected passers and reduced to a BNN vs BBN position. Eventually Seer lost a piece for a passer, the game reached a B vs pawns ending that Revenge converted easily. 

game 173, Revenge - rofChade: Both engines did not castle, evals slowly increased as the engines exchanged pieces and pawns. The game reached a RBN vs RBN position, with 3 white pawns on the queen side and 3 black pawns on the king side. The white passers were more dangerous and supported by the king, rofChade chose to give a bishop to capture two pawns. Revenge protected its last pawn while capturing all the remaining black pawns, then converted the 8-man position to a tablebase win.

game 179, Berserk - RubiChess: The engines castled in opposite directions, the black king was more exposed after Berserk opened the f file and exchanged a pair of rooks. Berserk was patient and there was a period of shuffling with evals increasing slowly. RubiChess exchanged a pair of pawns and opened the center, Berserk exposed the black king and threatened mate on the long diagonal. RubiChess traded bishops and removed the threat, in a QRN vs QRN position Berserk used the exposed black king to exchange queens and capture 3 pawns. RubiChess couldn't stop the passers, game over.

game 182, RubiChess - ScorpioNN: ScorpioNN kept its king in the center, RubiChess opened the d file and exchanged queens. RubiChess sacrificed a bishop to expose the black king, then regained the material and placed a rook on the 7th rank. In a double rook ending RubiChess managed to move its second rook to the 7th rank, the black king was trapped and waited to be mated by a promoted passer. 

game 190, Berserk - Revenge: Berserk went up a pawn early, it had a pawn majority on the queen side. The engines exchanges pieces and pawns with evals slowly increasing. Eventually Berserk created a doubled passer, Revenge stopped one passer on the 7th rank but lost a bishop. The white king came forward, Berserk gave a rook for a knight and reduced to a tablebase win in a BN vs R ending. 

game 195, Revenge - ScorpioNN: The game reached an opposite color bishops ending with white two pawns up. After a long shuffle Revenge gave a pawn and created a passer, then ScorpioNN blundered and Revenge's eval indicated a win. ScorpioNN saw the mistake only 7 moves later. With only 2 white pawns and one black left, the white bishop protected a passer on the 7th rank and controlled the black pawn. Revenge had time to walk with its king to assist the other white pawn, forcing ScorpioNN to lose its bishop and the game.

Standings after RR3: Koivisto +12, Igel Berserk Revenge +5, RubiChess +4, rofChade +3, ScorpioNN +1, Seer 0, Minic -7, Fritz -8, Marvin BlackMarlin -10. Koivisto is on its way to win the league. There are 3 engines tied in 2nd place and two more within a point. 

game 206, RubiChess - Revenge: Revenge captured a pawn early but was slow in developing the queen side pieces, RubiChess opened the h file and threatened the black king. RubiChess gave another pawn and added a threat on the long diagonal, Revenge blocked with a pawn but lost a bishop. RubiChess pushed pawns and opened the f file, it also created an advanced passer in the center. Revenge tried a desperate attack on the white king, this only delayed mate.

game 209, Berserk - rofChade: The center and king side were mostly blocked and the attention of both engines was on the queen side. The engines opened the queen side and cleared away all pawns, Berserk placed a protected knight on c5 and threatened to move a rook forward. rofChade gave a rook to capture the white knight, the game reached a QR vs QN position. Berserk used threats on the black king to force a queen exchange, the white king moved forward. Berserk created an unstoppable passer to win.

game 213, rofChade - ScorpioNN: The engines gradually exchanged pieces and pawns, rofChade went a pawn up with a passer on the queen side. The game reached a RN vs RB position, the engines mostly shuffled for 30 moves and evals started to increase. rofChade managed to get its king forward and to block the black king away from the passer. rofChade gave a rook for a bishop and ScorpioNN could only stop the passer by giving its rook. The knight vs pawns ending was a win for white.

game 226, rofChade - RubiChess: rofChade was up a pawn early, the engines exchanged pieces until only QB vs QB remained. Evals slowly increased, RubiChess was weak on the dark squares and its queen had to protect the king since the black bishop was light squared. rofChade opened the king side and moved its king forward. After exchanging queens rofChade gave a pawn and created a passer, RubiChess lost its bishop to stop the passer. The bishop vs pawns ending was a win for white.

Standings with 6 rounds to go: Koivisto +13, Igel Berserk +6, RubiChess Revenge +5, rofChade +4, ScorpioNN +2, Seer 0, Minic -7, Fritz -10, BlackMarlin -11, Marvin -13. Every game counts in the race for 2nd place, especially head to head decisive results. Berserk beat rofChade and is in 2nd place tied with Igel. RubiChess beat Revenge but lost to rofChade, Revenge also failed to beat BlackMarlin. rofChade also beat ScorpioNN, it is still hanging on the leaders, but time is running out.

game 229, Seer - Igel: Seer was a pawn up early, the white king moved forward without castling. Seer created a passer on the queen side, Igel regained the pawn but evals slowly increased. Seer gave a rook for a knight and pawn to add a connected passer and Igel tried to block. Seer pushed one passer to the 7th rank, after a while the game reached a QN vs QR position. The white king came forward, Igel traded all pieces to stop the passer. The material was equal but Seer had an unstoppable passer to win.

game 231, BlackMarlin - rofChade: BlackMarlin gave a pawn and opened the king side, its king stayed in the center and later it castled long. The engines exchanged pieces and BlackMarlin captured pawns, the game reached a RBN vs RBB position with white two pawns up. BlackMarlin had a passer still on the 2nd rank, the engines exchanged knight for bishop, it took 35 moves before the passer moved. The white king moved forward to support, BlackMarlin captured a pawn and created more passers. rofChade couldn't prevent a queening and mate.

game 235, Igel - ScorpioNN: Igel attacked the king side early, resulting in a R vs NN imbalance and the black king walking to the queen side. Pawn exchanges opened the board, Igel targeted the exposed black king and captured pawns. It was 4 pawns up when ScorpioNN captured a rook for a bishop and reduced to a QR vs QRN position. ScorpioNN captured a few pawns back but Igel reduced to a winning queen ending. 

game 237, Koivisto - RubiChess: Evals increased slowly as the engines exchanged pieces and pawns. The game reached a RN vs RN position with white a pawn up. Koivisto had a queen side passer, once the white king came to assist RubiChess could not stop the passer advancing. Koivisto queened the passer and mated.

game 239, rofChade - Revenge: The engines castled in opposite directions, both pushed pawns facing the opponent's king. Revenge opened the a file, then gave a knight for two pawns on the king side. Revenge tried to attack the white king, it gave a rook for a knight but rofChade gave the exchange back to keep its king safe. rofChade pushed a passer to the 7th rank and reduced to a RN vs R position. The game ended in a tablebase win.

game 245, RubiChess - Berserk: The engines castled in opposite directions, there were no pawn attacks and the engines gradually exchanged pieces. Evals slowly increased though Berserk went a pawn up, the game reached a RB vs RN position. RubiChess regained the pawn and created connected passers on the queen side. The black king moved to block the passers, Berserk tried to counter with a passer in the center but was not strong enough. RubiChess had a rook on the 7th rank, the black rook had to defend the back rank, eventually RubiChess captured the knight and won. 

Standings with 3 rounds to go: Koivisto +14, Berserk Igel Revenge RubiChess +6, rofChade +4, ScorpioNN Seer +1, Minic -8, Fritz BlackMarlin -11, Marvin -14. Four engines tied for 2nd place! Igel and rofChade lost games as black against weaker engines, top engines beat weaker engines as white. rofChade probably does not have a chance of  being 2nd at this stage, for the others every game counts.

game 248, ScorpioNN - RubiChess: ScorpioNN castled long and opened the king side, RubiChess kept its king in the center. RubiChess gave a rook for two knights, ScorpioNN attacked through the open e file and the black king had to run to the king side. The engines reduced to a RB vs BN position, ScorpioNN had passers on both sides. RubiChess lost the bishop to stop one passer, the other queened and ScorpioNN mated.

Standings at the top with 2 rounds to go: Koivisto +14, Berserk Igel +7, Revenge +6, RubiChess +5, rofChade +4. Igel and Berserk beat weaker engines as white, rofChade only managed a draw, Revenge held a draw as black against Koivisto. rofChade and RubiChess are probably out of the race.

game 253, rofChade - Igel: There were only a few exchanges after the start, most of the board was blocked by long pawn lines. A pawn exchange opened the h file, then rofChade used a knight exchange to create a passer in the center. rofChade gave the passer and created another on the king side, the game reached a QBN vs QBN position with white a pawn up. Igel tried to attack with its queen, rofChade captured more black pawns and was 4 pawns up. After exchanging queens nothing could stop the passers, game over. 

game 255, Seer - Koivisto: Seer was up a pawn from the start, the engines exchanged pieces until only QRR vs QRR were left. Evals started to increase, the engines exchanged all rooks and Seer created a passer. Koivisto captured white pawns while Seer pushed he passer to the 7th rank. The game reached a 7-man position won for white, Seer had access to 7-man tablebases but it still took almost 50 moves to get to a 6-man adjudication. 

Standings at the top before the last round: Koivisto +13, Berserk +7, Igel Revenge RubiChess +6, rofChade +5. Berserk held a draw as black against Revenge, after Igel's loss Berserk is alone in 2nd place. RubiChess beat a weaker engine as white, still has a small chance. 

Igel and RubiChess drew their last game. Revenge held a draw as black against ScorpioNN. Berserk only needed a draw but it won as white against Seer, making sure it qualifies to the premier division.


Friday, March 3, 2023

Season 24 league 2 statistics

A summary statistics table of previous stages and seasons.  

The analysis covers all games played by Booot as well as Igel, even though in the tournament Booot's games were ignored because of its crashes.

Draw rate, wins

Final draw rate was 65.3%. 

Game termination

The three most common game termination causes were:
46.1% - TCEC draw rule
27.6% - SyzygyTB
12.0% - 3-Fold repetition

There were 4 crashes in the stage, Booot crashed in all cases, usually a few moves after the book sequence.

Moves per game

Median= 60.8
Average= 65.1

There were 33 games longer than 100 moves, the longest was 194 moves (Nemorino - Marvin, game 3, draw). 

Time per game (hours)

Median= 1:02
Average= 1:00

Openings

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

The engines had some freedom to choose the opening variant, 89.0% of the game pairs repeated the same ECO code and 79.9% repeated the opening variant twice. Only in 1.9% of the game pairs the first letter of the ECO code was not repeated.

Reverse pairs, wins

Reverse pairs, same moves

Pairs of reverse games diverged quickly, 19.5% diverged immediately out of book, 55.8% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 18 plys (Igel - Nemorino, Igel games 3 and 4, Carr's defence, Igel won as white) 


Monday, February 20, 2023

Season 24 league 2

Just before the start of league 2 Igel's author decided to give its spot to Booot, in agreement with the organizers. Booot has last participated in season 21 league 2. 

Final standings

Igel +17, Fritz BlackMarlin Marvin +6, Uralochka +5, Arasan +3, Wasp -1, Halogen -2, Velvet -4, Tucano -5, Nemorino -11, Expositor -20.

Igel, Fritz, BlackMarlin and Marvin qualify for league 1. Igel was added to the league late and its games were played after all other games were over. It was much stronger than the other engines, winning 16/22 game pairs (one double win) without loss. Arasan and Uralochka were also in the race, Uralochka beat Marvin in a game pair and had a tiebreak advantage over it. However, their results against lower ranked engines were not sufficient for qualification. 

Velvet, Tucano, Nemorino and Expositor are relegated. Expositor qualified from the Swiss event with a lot of luck, it was too weak for league 2. Halogen was never too far away from the bottom 4, its only game pair win facing them was against Expositor, and it lost twice to Velvet. It survived since it had better results against the higher ranked engines, only one loss to Igel and Marvin and a win against Uralochka. 

Before the league started it was announced that Booot would replace Igel, its last appearance in TCEC was in league 2 of season 21 and its development was delayed due to the war in Ukraine. Then in RR1 Booot crashed twice and once more in RR2. TCEC then reversed the previous decision, Booot's games would be ignored and Igel would replace it. This required a set of Igel games after the league was over, with the same openings drawn for the Booot games. I'm not sure it was necessary to remove Booot from the league, in the end Booot only crashed 4 games out of 44. It is true that keeping Booot would have changed the league results and not all fairly, but that is not that unusual in TCEC. 

The four qualifiers will play in league 1 together with:
rofChade, Berserk - played in season 23 premier division
Minic, RubiChess, Revenge, Seer, ScorpioNN, Koivisto - played in season 23 league 1

Interesting games

game 6, Fritz - Tucano: Tucano exchanged pawns on the king side and its king became exposed. Fritz attacked on the king side, the engines reduced to a QRN vs QRB position and Fritz placed its knight on the 6th rank. Tucano lost material and the game ended in a tablebase win.

game 8, Halogen - Fritz: Fritz gave a rook for a bishop and Halogen's eval started to increase. The game reached an 8-man  RBN vs RB position with one black pawn, 20 moves later Halogen captured the pawn. Both engines used only a 6-man tablebase, Halogen did not blunder and the game ended with a win 30 moves later.

game 10, Marvin - Velvet: Evals increased slowly with almost no exchanges, Marvin had a space advantage. Velvet gave a rook for a knight and pawn and opened the position. The engines reduced to a RB vs BN position with an advanced white passer. The game ended in a tablebase win.

game 11, Booot - Nemorino: Booot was up two pawns in a QB vs QN position, evals suggested it was winning. After exchanging queens Nemorino gave a third pawn but Booot found no way to win and the game ended in a 3-fold repetition. Did Booot blunder away a win?

game 15, Velvet - Booot: Velvet had a queen side passer and Booot kept its king uncastled in the center. By the time Booot captured the passer Velvet moved its queen and a rook forward on the queen side, then created another passer. In a QRB vs QRN position Velvet captured the knight, then used the passer to win.

game 23, Wasp - Velvet: Wasp was up a pawn with connected passers in the center. Velvet blocked the center with pieces and there was a long period of mostly shuffling. Wasp captured a second pawn, then in a QRB vs QRB position captured a rook for a passer to win.

game 27, Arasan - Wasp: Arasan captured a pawn, Wasp didn't see the danger when Arasan sacrificed a knight and exposed the black king. Wasp gave the piece back to save its king, In a RRB vs RRB position Arasan pushed a passer to the 7th rank. Wasp lost material to try to stop a promotion, in the end Arasan promoted to a queen and mated.

game 42, Uralochka - Marvin: There were many early exchanges, the game reached a RN vs RB position with white  a pawn up. Uralochka slowly pushed a passer forward, Marvin gave a bishop to stop it. Marvin gave up resistance in a losing position and was mated.

game 45, Wasp - Halogen: Wasp opened the center and captured a rook for a knight and pawn. The engines gradually exchanged pieces until only R vs B remained, the game ended in a tablebase win.

game 46, BlackMarlin - Tucano: Tucano gave a rook for a bishop and the game reached a QRR vs QRN position. After reducing to a R vs N ending BlackMarlin captured black pawns, the game ended in a tablebase win. 

game 48, Velvet - Arasan: There were only a few exchanges in the first 40 moves and evals did not change a lot. A long series of exchanges opened the position and led to a RB vs RB position. Both engines had passers, Velvet gave a rook and promoted to a queen first, the game ended in a tablebase win.

game 50, Fritz - Velvet: The engines gradually exchanged pieces until only RB vs RN remained with white a pawn up. Fritz then captured a second pawn and reduced to a tablebase win.

game 62, Tucano - Arasan: Tucano sacrificed a knight and forced the black king to move, but the attack that followed was too weak. Tucano won the material back and the game reached a RBN vs RBN position, Arasan pushed a passer on the king side to the 2nd rank. Progress was slow, Arasan captured pawns until it was 3 pawns up. Arasan gave a rook to promote a queen and win.

game 63, Halogen - Velvet: Halogen captured a pawn after the start, after many exchanges the game reached a rook ending. The black pieces were better placed and Velvet managed to capture 3 pawns. Halogen captured a few pawns back but couldn't avoid a tablebase win for Velvet.

Standings after RR1: Arasan +3, Wasp Uralochka BlackMarlin +2, Marvin Fritz Velvet +1, Nemorino 0, Halogen -1, Tucano Booot -3, Expositor -5. Booot crashed twice, against Arasan and Uralochka.

game 69, Marvin - Nemorino: Marvin opened the h file and castled long, then slowly increased the pressure on the black king. Marvin gave a rook for a bishop, its queen moved forward and the black king had to run. Marvin regained the material and reduced to a winning queen ending a pawn up.

game 70, Uralochka - Velvet: The engines shuffled for a long time in a double rook ending. Then on move 89, close to adjudication as well as a 50-move draw, Velvet blundered. Uralochka captured a pawn, exchanged a pair of rooks and used a passer to win. 

game 74, Fritz - Halogen: The game reached a RRN vs RRB position and evals started to increase. After exchanging all rooks Fritz gave a pawn to create a passer, the black bishop had to block and Fritz used this to capture more black pawns. Fritz queened another passer to win.

game 78, BlackMarlin - Wasp: Wasp was up a pawn but BlackMarlin had an eval advantage, perhaps because one of the black bishops was passively defending a pawn. BlackMarlin regained the pawn in a QBN vs QBN position, Wasp freed its bishop and lost another pawn. After exchanging queens BlackMarlin pushed a pawn forward, captured another pawn and created another passer. Wasp couldn't avoid a queening, game over.

game 80, Wasp - Nemorino: Wasp was a pawn up with a pawn majority on the queen side. The engines reduced to a QRN vs QRB position, Nemorino regained the pawn but Wasp created a passer and queened. Nemorino captured a white queen in a counter attack, but lost its queen right back. The resulting Q vs B ending was an easy win for white.

game 87, Fritz - Marvin: Fritz gave a rook for a knight and pawn, after a long shuffle Fritz captured another pawn and reduced to a RBN vs RRN position. Fritz had a passer on the 6th rank, Marvin gave a rook back for a knight but by the time it captured the white passer Fritz captured the remaining black pawns. Fritz was 4 pawns up in a RB vs RN position and won easily. 

game 89, Velvet - Wasp: Wasp castled long and Velvet pushed a pawn to a6. Velvet captured a rook for a bishop, then after a long series of exchanges the game reached a R vs BN position. Velvet captured a pawn and the a pawn became a passer. While Wasp watched the a pawn Velvet created a second passer on the king side, Wasp couldn't defend against two passers, game over. 

game 92, BlackMarlin - Velvet: There were almost no exchanges in the first 30 moves. The engines opened the g file and BlackMarlin used a rook to trap the black king. The white queen moved forward through the center, BlackMarlin captured two pawns on the queen side and created two passers. BlackMarlin exchanged pieces until only pawns remained, then it queened a passer and won.

game 116, Velvet - Fritz: Velvet had an eval advantage from the start, Fritz equalized and evals came down to 0. From move 40 evals became negative, after a long shuffle the engines exchanged queens and opened the king side. Fritz captured a pawn and created a passer, in a NN vs BN position Fritz slowly pushed the passer forward. Velvet lost its bishop to stop the passer, Fritz mated not long afterwards.

game 122, Marvin - Wasp: Marvin was up a pawn from the start. Wasp gave a rook for a bishop, then regained the material. The engines reduced to a queen ending with white a pawn up and an advanced passer in the center. Wasp delayed with checks, eventually Marvin queened the passer. For 30 moves Marvin played waiting moves though it had two queens while Wasp had only one. In the end Wasp exchanged queens and forced a tablebase win.

Standings after RR2 with Booot games removed: Fritz +6, BlackMarlin Marvin Uralochka +4, Arasan +2, Wasp +1, Halogen -2, Velvet Tucano -3, Nemorino -4, Expositor -9. At the half point there are 6 engines with positive scores and 5 with negative scores. The situation at the top may change when the Igel games are played and added. At the bottom Expositor is not going to survive, the rest still have a chance. 

game 146, Nemorino - Wasp: Nemorino captured a pawn early with its queen, then exchanged queens. The engines exchanged pawns and pieces, Nemorino captured a second pawn and created connected passers, then gave a rook for a knight. Nemorino captured a third pawn and in a BN vs RN position pushed a passer to the 7th rank. Wasp captured the passer and exchanged knights, leading to a won B vs R ending 3 pawns up. 

game 153, Marvin - Fritz: Fritz captured a pawn on the queen side while Marvin pushed pawns on the king side. The attack started with sacrificing two minor pieces, Marvin regained material while chasing the black king. The game reached a QR vs QB position, Marvin forced a queen exchange and the game ended in a tablebase win.

game 155, Wasp - Velvet:  A series of exchanges after the start resulted in a R vs B imbalance with both kings uncastled. The engines exchanged pieces, Wasp gave back the material but captured two pawns in a RB vs RB position. After capturing the last black pawn Wasp reduced to a winning B vs R ending 3 pawns up.  

game 159, Arasan - Wasp: Arasan was a pawn up from the start. After move 30 evals increased gradually, the engines exchanged pieces until only QB vs QB remained and Arasan captured a second pawn. Wasp lost its bishop to stop a passer, Arasan gave its bishop for the last black pawn and then mated anyway.

game 162, Halogen - Uralochka: Uralochka was up a pawn from the start, Halogen regained the pawn and then captured another, creating a passer on the queen side. After a period of mostly shuffling Uralochka gave a rook for a bishop and eventually captured the passer. The game reached a RB vs BN position, Halogen created another passer and queened it to win.

game 182, Fritz - Velvet: Evals slowly increased though there were almost no exchanges, the first piece exchange was on move 33. Fritz captured a pawn and slowly increased the pressure on the weak black pawn structure. Before long Fritz was 3 pawns up with an advanced passer. Velvet gave up all its pieces and was mated.

game 184, Halogen - BlackMarlin: Halogen gave a pawn temporarily on move 26 and created a passer, evals started to increase. Halogen captured two pawns and BlackMarlin gave a rook for a bishop, the game reached a QRB vs QBN position. The engines cleared most pawns, including the white passer, leaving a R vs N ending with two pawns each on the king side. Halogen chased the knight until it was trapped, game over.

game 185, Uralochka - Wasp: The engines exchanged all minor pieces, Uralochka had an eval advantage in a QRR vs QRR position with the black king more exposed. Uralochka used a rook exchange to get a passer to the 7th rank, Wasp captured the passer and was left with a queen ending a pawn down. Progress was slow but Uralochka managed to convert in 30 moves.

game 192, Arasan - Fritz: Fritz was up a pawn, (negative) evals started to increase after move 30. Arasan gave a rook for a knight and exposed the black king in a QRB vs QRR position. Fritz exchanged rooks and created advanced connected passers. Arasan delayed with checks but couldn't avoid losing material and mate.

Standings after RR3 with Booot games removed: Fritz +8, Marvin +7, Uralochka +5, Arasan BlackMarlin +4, Wasp 0, Halogen -2, Nemorino Velvet -3, Tucano -5, Expositor -15. Fritz is leading despite a loss to Marvin, Marvin had 3 wins in the RR and is in second place. Arasan joined the leaders and improved its chances. Halogen beat both Uralochka and BlackMarlin, improving its chances of survival. 

game 208, Velvet - Marvin: There were only a few pawn exchanges after the start, evals started to increase from move 25. The engines exchanged pieces until only RN vs RN remained, Velvet went two pawns up and captured all the black pawns. It took almost 40 more moves to convert the 8-man position.

game 214, Marvin - Arasan: Marvin captured a bishop for two pawns early, the white king was exposed but Marvin kept it safe. Evals increased while the engines exchanged pieces and pawns, the imbalance changed to a rook for 4 pawns. Then Marvin captured a pawn in a QRR vs QR position and Arasan's eval dropped to 0. Arasan traded its queen for the two white rooks, and Marvin could not break the fortress in a Q vs R ending with only one white pawn. Possibly a missed win for Marvin.

game 225, Wasp - Arasan: There were only a few exchanges in the first 25 moves, and then evals started to increase. Pawn exchanges opened the position and Wasp created an advanced passer in the center. Arasan gave a rook for a knight to capture the passer, Wasp captured more pawns and created two more passers. In a RRN vs RNN position Arasan had to give a knight to stop one passer, Wasp promoted the other passer and mated.

Standings 6 rounds to go, with Booot games removed: Fritz +8, Marvin +7, BlackMarlin +6, Uralochka +5, Arasan +3, Wasp +2, Halogen -1, Velvet -3, Tucano -4, Nemorino -6, Expositor -17. Marvin and Arasan lost games against lower ranked engines, for Arasan it will very hard to catch up to the leaders. Halogen increased the gap to the bottom 4 but is still in danger.

game 237, Blackmarlin - Fritz: The position opened and the black king was in the center uncastled. BlackMarlin gave a knight for a pawn and attacked. Fritz managed to protect its king, but it lost a knight and BlackMarlin captured more pawns. The game reached a RB vs RB position with white 4 pawns up, BlackMarlin gained more material and was close to mate when the game ended.

Standings 3 rounds to go, with Booot games removed: Fritz Marvin BlackMarlin +7, Uralochka +5, Arasan +4, Wasp +1, Halogen 0, Velvet -3, Tucano -4, Nemorino -7, Expositor -17. Three engines are tied at the top after BlackMarlin beat Fritz. Uralochka and Wasp are not far behind but considering the addition of Igel it will be difficult to join the qualifiers.

Standings after RR4, with Booot games removed: BlackMarlin Fritz +8, Marvin +7, Uralochka +6, Arasan +4,  Wasp +1, Halogen -1, Velvet -3, Tucano -4, Nemorino -8, Expositor -18. Each engine now plays 2 game pairs against Igel. 

Igel game 1: Igel - BlackMarlin: The engines opened the king side, BlackMarlin didn't see the danger until it was too late. Igel attacked the king side where both lack king and queen were, as a result BlackMarlin lost a knight. Igel had advanced passers in a QRB vs QR position and it mated quickly.

Igel game 9, Igel - Fritz: The engines opened a file on the queen side, exchanged all rooks, then all bishops. There was a long shuffle in a QNN vs QNN position, on move 75 Igel pushed a pawn on the king side that led to a pawn exchange and the white queen moving forward. After exchanging queens the engines shuffled again, on move 133 Igel captured a pawn and then exchanged a pair of knights. Fritz regained the pawn but Igel's eval jumped as its king moved forward. Fritz captured a passer on the queen side, Igel created another on the king side. It gave a knight and queened to win.

Igel game 15, Igel - Uralochka: The engines opened the king side, Igel moved its queen forward facing the black king. Uralochka drove the queen away, Igel placed a protected knight on f6. The black king ran to the queen side, Igel created a passer and pushed it to the 8th rank. Uralochka captured the passer and the game reached a rook ending, Igel had another passer that Uralochka couldn't stop, game over. 

Standings after RR2 of Igel games: Igel +9 BlackMarlin Fritz Marvin +7, Uralochka +5, Arasan +3, Wasp 0, Halogen -1, Velvet -4, Tucano -5, Nemorino -9, Expositor -19. Igel won 9 of 11 game pairs, it is already leading with 11 game pairs to play. Marvin and Halogen are the engines that held Igel to two draws, as a result it is very unlikely that Uralochka will qualify, and Halogen will most likely survive relegation.

Igel game 23, Igel - BlackMarlin: There were many early exchanges and the game reached a RBB vs RR position with black two pawns up. Progress was slow, after 25 moves Igel trapped a rook in the center and captured it for a bishop and a pawn. Igel continued to capture pawns, it gave its bishop for the last black pawn and reduced to a tablebase win. 

Igel game 28, Velvet - Igel: Velvet gave a rook for a bishop, after several piece and pawn exchanges it was 3 pawns up in a QBN vd QRN position. Velvet had two sets of doubled passers, it pushed one to the 6th rank. After a period of mostly shuffling the engines exchanged queens, the white king came forward and Igel could not avoid a queening, game over. First loss for Igel in the league, the game pair was a draw.

Igel game 31, Igel - Fritz: Igel had an early passer in the center, the engines exchanged pieces and evals increased quickly. When Fritz captured the passer Igel reduced to a RB vs RB position and went 3 pawns up. Fritz exchanged rooks, the remaining bishops were of opposite colors but the white pawns were strong enough to secure a win.

After Uralochka held a draw as black it had a chance of a catching up to the leaders, if it could win as white. However, the game reached a closed position with the pawns blocked across the board. After a long shuffle the game ended in repetition.

Igel game 39, Igel - Marvin: The engines castled in opposite directions, Marvin tried to attack on the king side while Igel pushed pawns on the queen side. Marvin's attack wasn't string enough but it went ahead and gave a rook for a knight to expose the white king. Igel threatened mate on the other side and Marvin lost a knight for 2 pawns to save its king. The game reached a RRB vs RB position and ended in mate.

In the second set of game pairs Igel won 7/11, with one double win against Nemorino. The engines that drew their game pairs were Velvet (two white wins), Arasan, Tucano and Uralochka. There was no change in the top 4 or bottom 4.


Monday, February 6, 2023

Season 24 live blogging: Feb 6, 2023

I'm following game 309, Winter - Smallbrain. Winter is currently on score -1 and Smallbrain is on 0, both within reach of the qualification spots. Winter qualified last season and was relegated back, Smallbrain is new to TCEC and doing quite well so far. A decisive result here can be very important to both engines.

The game started with a 10-ply book in the Averbach system, evals around 0.6 after book.

move 10: The engines transposed to more popular lines, Smallbrain left the main theory again and refused to block the center with c5 on move 9 after a long think. It played c5 on move 10. No exchanges so far, no change in eval as well.

move 13: Smallbrain played f5 and the engines exchanged a pair of pawns. The engines disagreed about evals, both thought this was better for themselves. I have a feeling Smallbrain is right here. Winter is too slow and cautious, Smallbrain's eval dropped. 

move 17: now Winter's eval dropped, is there a chance of a black win? Too early for that. Smallbrain has a passer in the center. Winter refused to exchange bishop for knight on the king side, Smallbrain's eval dropped to 0. 

move 21: Winter wants to open the king side, Smallbrain is avoiding this and evals are increasing a bit. Smallbrain exchanged a knight for a bishop, now Winter's eval jumped over 1. The other black knight moved to the corner, not a good square for a knight.

move 25: The g file is open, though there are many pieces there. Smallbrain gave a bishop to get rid of a forward knight, it also gained a pawn. Evals keep rising but PVs are full of shuffling. Winter placed a knight on d5, where Smallbrain can't force it to move.

move 30: Smallbrain moved its king out of the g file, both evals above 1. Winter is threatening to double rooks on the g file, seems there's going to be a rook trade there. The eval trend is clear now, and Winter is still a pawn down. Winter doubled rooks, but the trade is not in the PVs anymore.

move 38: Smallbrain again thinks Winter is too slow and its eval dropped. Can it hold? No, evals jumped back up. Winter pushed a pawn on the queen side, not sure what the plan is. Again a shuffle PV. Smallbrain is not moving its pawns on the queen side, Winter pushed to a6. Both evals over 3.

move 46: Smallbrain now has to be careful with the back ranks, defending the a7 pawn and defending its king on h7. This may take a while but Winter should find a way to break the black defense. Winter added its queen to the g file, Smallbrain gave back the pawn to open the center. This looks like the end for black.

move 52: I just realized Winter had a rook on g6 and Smallbrain didn't take with its corner knight. Why? Not important now since the rook moved. The white knight captured two pawns and Smallbrain gave its queen in desperation to take it. Mate is approaching.

move 61: mate, game over. It didn't look like Winter would win this, but it did in the end. If it can hold the reverse it would improve its chances to qualify significantly.


Sunday, February 5, 2023

Season 24 live blogging: Feb 4, 2023

 I'm following game 262, Zahak - StockNemo. This is the reverse game, the previous game was a draw in 45 moves. Both engines are in qualification, StockNemo has a score of -2 and Zahak -1. Zahak has a significant Elo advantage, StockNemo is new to TCEC so its actual strength is unknown.

The game started with an 8-ply book in the Modern defense, played in human chess. 

move 11: Zahak castled long, StockNemo hasn't castled and it can't castle short with a white queen on h6. Evals are around 1 without a lot of change. The engines left all Lichess human games. No exchanges so far except a pair of bishops. StockNemo pushed a pawn on the queen side, seems that it won't castle its king at all.

move 15: Zahak thought black would drive the white queen away, StockNemo instead pushed a second pawn forward on the queen side. The engines exchanged bishops again, StockNemo took with its king so no castling is possible. Zahak thought this was a mistake.

move 20: StockNemo moved its king side rook to the queen side, leaving its king side almost abandoned. Zahak pushed a second pawn on the king side, but its eval is not increasing yet. After StockNemo walks with its king to c8 Zahak is more confident. A strange move, trapping the black rooks. StockNemo pushed a pawn to b3, Zahak responded with a pawn push on the king side, not afraid for its king safety.

move 25: Zahak drove the knight on f6 away and captured on h7 with its queen, its eval climbing over 2. StockNemo is reluctant to open the h file, it moved its king to b7 in front of a rook. Zahak now has a passer on h6. StockNemo captured the pawn on a2 and the white king is hiding behind it. 

move 31: StockNemo moved its queen to the queen side, it's trying desperately to create an attack but with both evals over 3 I don't think it has a chance. Zahak captured a knight, the black king is trying to hide on a6 behind a white pawn. If the white queen can get back black will have no chance. StockNemo moved its queen to c2 but it was chased away. The white queen breaks to c7 and joins the attack from behind. StockNemo captured two knights but its king is falling.

move 39: While StockNemo is trying to defend its king, Zahak pushed the passer to h7. StockNemo captured it but lost material to avoid mate. In a QR vs RRN position Zahak starts to give mate scores.

move 46: Game over in a tablebase Q vs R position. Zahak easily outplayed StockNemo and kept its hopes alive for qualification. 


Tuesday, January 31, 2023

Season 24 live blogging: Jan 30, 2023

I'm following game 145 in the Swiss/qualification event between Revenge and Koivisto. Both engines played in league 1 in season 23, Koivisto had a bug and it underperformed then, hopefully it is better now. Up till now Koivisto and Revenge have a 0 score in the event. Koivisto has a game pair win against Winter and a game pair loss to RubiChess. Revenge beat StockNemo and lost to Stoofvlees.

The game opened with a 10-ply book, a very rare variant of the Scotch game. Both evals started over 1. After the first white move the game transposed to a slightly less rare variant. 

move 9: Revenge is not providing a PV, we only see what Koivisto is thinking. The engines castled in opposite directions. Koivisto had a 3-minute think on move 9.

move 14: Revenge pushed g4 on move 10 and gave a PV, a 7-ply PV agreement followed. Revenge is a pawn up and the queens are off the board. So far evals are stable or drifting down, not a good sign for Revenge.

move 17: The d file is open for exchanging rooks. Revenge is a pawn up but its pawn structure is worse with a doubled pawn and its bishop doesn't have a good square to go to. According to PVs Koivisto would like to exchange pawns and pieces, Revenge is trying avoid this.

move 21: Koivisto is pushing pawns on the queen side, Revenge is pushing pawns on the king side. Revenge moved its king forward in the center, it seems safe there and it adds a defender to the pawns and bishop. Koivisto captured a pawn and material is equal.

move 25: Revenge pushed a pawn to h6, Koivisto locked pawns on the king side. Koivisto exchanged pawns on the queen side and opened the b file, also creating a passer on the a file. Evals are still around 1, mostly stable. 

move 29: I'm surprised all rooks are still on the board. The position is starting to look static, everything is protected only if nothing moves. Koivisto's PV is mostly shuffling many moves into the future. Revenge had a different idea, it exchanged knight for bishop. Evals drop under 1 for the first time. 

move 32: RRB vs RRN, black has a passer on the a file. The pawns on the king side seem to be stabilized, Revenge has an extra pawn there but it cannot advance without being taken. Now both PVs look like a long shuffle. 

move 40: Evals are flatlining, this may be a long game without adjudication. 

move 50: Engines are shuffling along, Revenge finally dropped its eval close to 0. There will not be an adjudication without a piece exchange in any case. 

move 60: waiting for a piece exchange, only 20 moves to a 50-move draw. 

move 72: Koivisto reset the 50-move counter, still no piece exchange. At least the engines are blitzing with little time on the clock left.

move 77: finally a piece exchange.

move 81: adjudication, draw.


Wednesday, January 25, 2023

Season 24 qualification/Swiss

The TCEC leagues event of Season 24 has started, only two months after the end of the season 23 superfinal. In the last several seasons the event started with a qualification league, where new engines and those that were not strong enough in previous seasons fight for one of 4 spots in the regular leagues. Last season the qualification league was played as a Swiss tournament for the first time. This season it was decided to merge the qualification league and the Swiss event.

In the Swiss event all available engines play an 11 double round Swiss tournament. This season there will be 42 engines in total, including 22 which will later play in the regular leagues (placed by the results of the leagues in season 23), and 20 which are the qualification candidates. I suppose that while the strong engines will fight to win the event in the top half of the table, the games in the bottom half of the table will be important for qualification.

I don't usually follow the Swiss event too closely, too many games with relatively fast time controls. For example, this season there will be 462 games, each approximately 1 hour long, a total of about 3 weeks. Also luck plays a significant part in this type of tournament, each engine faces a different subset of opponents. I'm not sure how to cover this season's event. I will probably write about the progress of the qualification candidates, and about interesting games relevant to qualification. If I have time I may do a few live blogging sessions.

The qualification candidate engines are:

played in season 23 league 2 - Wasp, Velvet, Weiss, Winter
played in season 23 qualification league - ChessFighter, Stash, Expositor, Zahak, Drofa, Mantissa, MrBob, Counter, Amoeba, Bagatur, Cheese
new to TCEC -  ice4, Uralochka, StockNemo, Smallbrain, 4ku (winner of the 4k bonus, for small engines with maximal size of 4kB)

Final standings

Velvet Expositor +1, Wasp Uralochka Smallbrain Zahak Mantissa Counter MrBob StockNemo 0, Stash Weiss Winter -1, Drofa ChessFighter -2, Amoeba -3, Cheese Bagatur -8, ice4 -12, 4ku -15.

Velvet, Expositor, Wasp and Uralochka are the 4 qualifiers to league 2. There were 6 more engines with the same score as Wasp and Uralochka, the SB score was the tiebreaker.

In my opinion the Swiss event should not be used as a substitute for the qualification. It may be true that the randomness adds to the excitement of not knowing what will happen, and there are practical issues like the number of games and time it takes to run the tournament. However, it seems to me engines that prove their worth can miss qualification, and weaker engines can take their place, just because of the opponents they face. Look at Expositor for example: it lost to Amoeba, Counter and Uralochka, lost twice to Velvet, the only reason it qualified is that it had the luck to face 4ku, ice4 and Cheese, collecting 5.5/6 points in these matches. Compare that to Smallbrain: it did not face any of the bottom 4 engines, instead it faced SlowChess, Seer, Revenge, Nemorino, ScorpioNN, getting at least half a point from each, it beat Mantissa and Halogen, and beat Amoeba twice. Imagine that the last double round the match between MrBob and StockNemo had been decisive. If that happened one of them would have qualified instead of Uralochka, and there would have been two of 4 qualifiers that most would agree should not have been there. 

In the first few rounds most of the attention in the chat was given to Leela's results. Its evals were extremely high and non-realistic and it managed to lose games against Cheese and Drofa (drawing these game pairs). It turned out that the problem was the implementation of contempt. Leela used the opponents Elo rating for its contempt setting, so that it would be bolder against weaker engines .However the possibility of very weak opponents was overlooked, and when the Elo difference was 300 or more Leela had such confidence that it played really bad moves. After a few rounds the weak opponents drifted down in the table, Leela played against higher rated engines and beat them. It drew against Stockfish and KomodoDragon, and in the end finished in third place on a tiebreak with KomodoDragon.

The 4 qualifiers will play in league 2 together with:
played in league 1 in season 23: Igel, Fritz, Arasan, Nemorino
played in league 2 in season 23: BlackMarlin, Halogen, Marvin, Tucano

Interesting games

game 46, Amoeba - Smallbrain: Amoeba captured a pawn and opened the queen side, with its king facing the black major pieces. The result of the attack was a R vs N ending, Smallbrain was 3 pawns up and it pushed them slowly forward to win. Smallbrain had two wins in this game pair. 

game 56, Velvet - rofChade: Velvet managed to beat rofChade, which played in the premier division last season. Velvet attacked the black uncastled king from the queen side, it used a passer on the 7th rank to reduce to a winning RB vs R ending. The game pair result was a draw.

game 100, Expositor - Velvet: Expositor had an eval advantage in the first 50 moves, then it captured a rook for a bishop but underestimated the danger to its king. Evals became negative, Velvet gradually gained material and eventually mated. Velvet had two wins in the game pair.

game 113, Wasp - Fritz: Wasp was two pawns up with a doubled passer in a RRB vs RRB position. It gradually improved its position and in the end reduced to a wining rook ending. The game pair result was a draw.

Qualification standings after 3 double rounds: Velvet +2, Smallbrain Wasp +1, Weiss Winter 0, Drofa Stash Uralochka MrBob Mantissa Bagatur StockNemo Counter -1, Zahak Expositor Amoeba ChessFighter -2, Cheese -3 ice4 4ku -4. The 5 engines leading are the 4 engines that were relegated from league 2 last season (3 of which started in qualification), plus the newcomer Smallbrain.

game 140, MrBob - Uralochka: The position was closed with very few exchanges in the first 40 moves. Uraloxhka gave two pawns and attacked the white king, moving its queen and a rook to the back rank. MrBob exchanged queens and gave both rooks to promote a pawn to a queen, leading to a Q vs RR ending that was a win for black. Uralochka had two wins in the game pair.

game 161, BlackMarlin - Velvet: BlackMarlin was up two pawns with connected passers on the queen side, Velvet didn't have any compensation for the pawns. BlackMarlin pushed a passer to the 6th rank, Velvet had to block. BlackMarlin then attacked through the king side and forced mate. BlackMarlin won the game pair.

game 185, Stash - Fritz: After a long shuffle evals jumped on move 102, Stash captured two pawns and opened a file on the queen side. The black queen was in front of the pawns, Fritz tried to delay with checks but eventually it lost more material. In a RB vs R ending Stash pushed a passer forward to win. The game pair result was a draw.

games 187-188, ChessFighter - Mantissa: ChessFighter as white had an eval advantage from the start. The game reached a QR vs QR position on move 54 with white a pawn up. ChessFighter was certain it was winning, but after exchanging queens Mantissa reduced to a drawn rook endgame. It took almost 50 more moves before the game reached a tablebase draw. Mantissa as white exchanged queens early, it went a pawn up and reduced to a RN vs RN position. ChessFighter lost the knight and was mated quickly.

Qualification standings after 5 double rounds: Wasp Uralochka Velvet Mantissa +1, Stash Counter 0, Winter ChessFighter Smallbrain Weiss Zahak StockNemo Bagatur -1, MrBob -2, Expositor Amoeba -3, Drofa Cheese -4, 4ku -5, ice4 -6. Weiss and Winter lost to strong opponents, they are no longer in the leading group. Uralochka won twice against MrBob and moved up, Mantissa beat Drofa and ChessFighter. Can they hold against the better engines in the next rounds?

games 223-224, Winter - Weiss: With Winter as white the engines opened the queen side. Evals became negative though Winter was up a rook for a bishop and pawn. Weiss had a passer on the queen side and another facing the white king. In a series of exchanges Weiss reduced to a winning same colored bishop ending. With Weiss as white Winter traded BN for R and the king side opened. Both kings were exposed but the black king was more vulnerable, Winter gave its queen and reduced to a QB vs RBN position. Weiss captured pawns and used a passer to win. Weiss had two wins in this game pair.

game 228, Stash - Counter: The game reached a drawn 7-man N vs B ending, Counter blundered on move 93 allowing Stash to capture a pawn and win. The game pair result was a draw.

game 231, Velvet - Nemorino: Velvet gave 3 pawns for a knight, after exchanging queens Velvet had a pair of strong bishops. Nemorino gave a rook for a bishop, in a RRB vs RB position Velvet controlled the black pawns and used passers to win. Velvet won the game pair.

game 263, SmallBrain - Halogen: Halogen gave a pawn and exposed the white king, SmallBrain managed to keep its king safe. Eventually the game reached a RBN vs BRN position, SmallBrain captured a second pawn, then used passers to gain material and win. SmallBrain won the game pair. 

game 266, Wasp - Nemorino: Evals increased steadily from the start, Wasp captured a pawn and slowly exchanged pieces. The game reached a winning king and pawns ending, and then Wasp crashed.

game 272, MrBob - Tucano: Tucano captured a pawn on a2 and was surprised when MrBob trapped its bishop. Tucano failed to get its bishop free and lost more material, leading to a quick mate. MrBob won the game pair. 

game 273, Uralochka - ChessFighter: The black king moved early and ChessFighter had problems developing pieces. Uralochka opened the queen side with a rook sacrifice, moving its queen to the 7th rank with a deadly atrack. Uralochka gained material and promoted a second queen to win. Uralochka won the game pair. 

game 277, Mantissa - ScorpioNN: The black king got caught in the center without castling and with the f file open. Mantissa captured a rook for a knight and was two pawns up. ScorpioNN exchanged pieces and countered with an attack on the white king, but not strong enough. In a QR vs QB position Mantissa promoted a queen to win. The game pair ended in a draw.

Qualification standings after 7 double rounds: Velvet Uralochka MrBob +1, Weiss Mantissa Smallbrain Zahak Amoeba 0, ChessFighter Counter Wasp Winter -1, Stash Expositor -2, StockNemo Drofa -3, Cheese -4, Bagatur -5, ice4 4ku -8. Only 4 double rounds to go, there are 12 engines within 1 point of the lead and a lot depends on luck at this stage. 

games 309-310, Winter - Smallbrain: Winter was white in the first game, I followed this game in a live blog. At first it seemed Smallbrain equalized, but Winter opened the g file and doubled its rooks there. The pressure on the black king became too great, Smallbrain lost material and was mated. With Smallbrain as white the focus was on the queen side, Smallbrain opened a file and exchanged all rooks. Then is used connected advanced passers to gain material and reduce to a winning ending. The game pair ended in a draw.

game 311, Zahak - Amoeba: Zahak gave 3 pawns but it attacked the black king and forced it to move forward. Amoeba gave material but couldn't save its king. Zahak won the game pair. 

games 315-316, Mantissa - Nemorino: In the first game Mantissa was white, Mantissa created an advanced passer in the center while its king was exposed. Nemorino gave checks with it squeen but eventuall gave a rook for a knight to capture the passer. The game reached a RB vs BN position, Mantissa created a passer and won. In the second game the engines mostly shuffled for a long time in a closed position. On move 106 Mantissa captured an offered pawn and opened a file. Nemorino moved major pieces forward and reduced to a R vs BB ending with 3 pawns up, enough for a win. The game pair ended in a draw.

game 344, Stash - ChessFighter: Stash had better pieces when the position opened, it managed to capture a knight. For a while ChessFighter pinned a bishop, but eventually Stash got out of the pin safely and reduced to a winning ending. Stash won the game pair. 

game 346, Amoeba - Drofa: Drofa blundered late in a N vs B ending. The black bishop had no targets, Amoeba kept it away from the black pawns and used its king a knight to capture a pawn, leading to mate. The game pair ended in a draw.

game 355, Smallbrain - Mantissa: Smallbrain was a pawn up early, Mantissa did not have real compensation for the pawn. The engines gradually exchanged pieces until only RB vs RN remained. Smallbrain pushed a passer, Mantissa lost the rook to stop it, game over. Smallbrain wins the game pair. 

Qualification standings after 9 double rounds: Smallbrain +1, Uralochka Velvet Wasp Expositor 0, Zahak Mantissa Weiss Winter Amoeba Stash Counter -1, MrBob StockNemo Drofa -2, ChessFighter -4, Cheese Bagatur -5, ice4 -9, 4ku -12. Again 12 engines are within 1 point of the lead, almost the same engines as two double rounds ago but in a different order. It is very difficult to predict the qualifiers, so much depends on the remaining two opponents and openings that each engine will face.

game 387, Zahak - Counter: A long series of exchanges reduced to a BB vs R position, the bishop pair was strong and the game ended in a tablebase win. Zahak wins the game pair. 

game 391, Stash - Winter: There were many exchanges after the start, the game reached a RB vs RB position with white a pawn up. Stash created two passers and then captured all the black pawns to win. Stash wins the game pair. 

game 393, Mantissa - Weiss: Mantissa opened a file on the queen side and attacked. The engines reduced to a QRN vs QRB position and Mantissa pushed a passer on the queen side. With the passer on the 7th rank Mantissa gave a rook for a bishop, then captured 3 black pawns. Weiss gave material to stop two passers, leaving a winning king and pawns ending. In the reverse game all pawns remained on the board and the game ended in a 50-move draw. Mantissa won the game pair. 

games 395-396, Velvet - Wasp: With Velvet as white the black king was forced to move early and Wasp had problems developing its king side pieces. The game reached a RRB vs RRN position and Velvet went two pawns up. Wasp lost material and was eventually mated. With Wasp as white the black king castled long, the game reached a RRN vs RRN position with white a pawn up. Wasp captured a second pawn and reduced to a winning knight ending. The game pair ended in a draw.

game 398, Uralochka - Expositor: Uralochka captured a pawn with its queen early. For a while the white queen was safe, eventually Expositor captured it but after a series of exchanges the result was an imbalance of 3 pawns for a knight. Expositor captured a few pawns but had to give material to stop two passers. The game reached a R vs B ending that Uralochka converted to a win. Uralochka wins the game pair. 

Qualification standings with one double round to go: Uralochka +1, Wasp Velvet Smallbrain Stash Zahak Mantissa MrBob StockNemo 0, Drofa Expositor -1, Weiss Winter Counter Amoeba -2, ChessFighter -3, Cheese -6, Bagatur -7, ice4 -11, 4ku -13. MrBob and StockNemo jumped in the rankings after double wins against weak engines, probably will not survive a stronger opponent in the last round. Weiss, Winter and Counter lost their game pairs, they now have a chance of facing a weak opponent in the last round and may qualify with a good result.

Counter, Winter and Expositor were lucky to get a weak opponent. Winter only managed one win against Bagatur, a final score of -1 is not enough to qualify. Counter and Expositor won twice against 4ku and Cheese. Counter finishes with a score of 0 but a low SB, likely not enough. Expositor finishes with +1, its SB is low but the score may be enough to qualify.

game 428, Weiss - Amoeba: Weiss attacked through the center, it opened the position and exposed the black king. Weiss went a pawn up and then reduced to a QN vs QB position. Weiss pushed pawns facing the black king, Amoeba lost material and was mated. Weiss wins the game pair. 

Weiss finishes with a -1 score, not enough to qualify. Drofa lost to Halogen and is out of the race. 

games 433-434, Zahak - Wasp: With Zahak as white the black king moved without castling and the king side rook was trapped. By the time Wasp managed to free its rook Zahak gained material and the game reached a RN vs R position. It took Zahak 40 more moves to win. With Wasp as white the black king castled and Wasp attacked the king side leading to a knight for 3 pawns imbalance. The game reached a QN vs Q position which Wasp converted to a tablebase win. The game pair ended in a draw. 

Both Wasp and Zahak finish with a 0 score, Wasp has a high SB, currently leading the 0 score group.

game 435, Velvet - Stash: Velvet pushed a pawn to h6 and Stash couldn't develop its king side. Velvet attacked through the center with a bishop sacrifice, and captured 4 pawns on the king side. In a RR vs RRB position Velvet used connected passers to win. Velvet wins the game pair.

Velvet finishes with a +1 score, joining Expositor in the lead. Velvet has a much higher SB. Stash finishes at -1 and is out.

Smallbrain had two draws against Tucano, it also finishes with a 0 score. It has a high SB, currently second in the 0 score group after Wasp, and fourth overall.

games 439-440, StockNemo - MrBob: StockNemo as white captured a pawn, then slowly exchanged pieces and pawns. It created a passer on the queen side, MrBob eventually captured the passer but lost 3 pawns for it. StockNemo captured a piece and forced a win with passers. MrBob as white castled long and StockNemo pushed pawns on the queen side. StockNemo gave a rook for a knight and moved a pasn to the 2nd rank. MrBob blocked the pawn, captured it and reduced to a winning RB vs R ending. The game pair ended in a draw.

Both StockNemo and MrBob finish with a 0 score, their SB scores are too low for qualification.

games 441-442, Marvin - Mantissa: Marvin as white castled long and pushed a pawn to h6. It then sacrificed a knight and attacked the black king. Marvin captured 3 pawns while it chased the king across the board. Mantissa lost a knight, in a QRB vs QRB position Marvin promoted a passer to win. Mantissa as white castled short, there were no exchanges until move 36. When the position opened Marvin traded BN for Q. Mantissa exchanged pieces, Marvin lost more material and was mated. The game pair ended in a draw. 

Mantissa also finishes with a 0 score, with SB too low to qualify. 

game 446, Igel - Uralochka: There were almost no exchanges after the start and the black king moved to the king side without castling. On move 37 Igel opened the queen side, it took over an open colmn and moved a bishop behind the black pawn line. Uralochka gave a rook for a knight, then lost a bihsop for a pawn. Igel exchanged pieces and reduced to a tablebase win. Igel wins the game pair.

Uralochka finishes with a score of 0 as well, its SB is better than Smallbrain's and close to Wasp's which puts it in a qualifying spot. There were SB changes in the remaining games, but Smallbrain did not gain enough to overtake Wasp or Uralochka.