Saturday, September 24, 2022

Season 23 league 1 statistics

A summary statistics table of previous stages and seasons.  

Draw rate, wins

Final draw rate was 58.0%. 

Game termination

The three most common game termination causes were:
43.9% - TCEC draw rule
32.6% - SyzygyTB
13.6% - Mate

There was one crash in the stage, ScorpioNN lost on time against Minic in a winning position.

Moves per game

Median= 72.0
Average= 80.9

There were 48 games longer than 100 moves, the longest was 231 moves (Ethereal - Arasan, game 148, draw; and RubiChess - Koivisto, game 222, draw). 

Time per game (hours)

Median= 1:04
Average= 1:03

Openings

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

The engines almost no freedom to choose the opening variant, 99.2% of the game pairs repeated the same ECO code and 98.5% repeated the opening variant twice. In all the game pairs the first letter of the ECO code was repeated.

Reverse pairs, wins

Reverse pairs, same moves

Pairs of reverse games diverged less quickly than usual, only 19.7% diverged immediately out of book, 53.8% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 16 plys (Fritz - Ethereal, games 22 and 88, Scandinavian defence, Ethereal won as white)


Tuesday, September 13, 2022

Season 23 league 2 statistics

A summary statistics table of previous stages and seasons.  

Draw rate, wins

Final draw rate was 65.9%. 

Game termination

The three most common game termination causes were:

50.0% - TCEC draw rule
25.4% - SyzygyTB
12.5% - Mate

There were two crashes in the stage, Wasp crashed in both cases, once in a winning position and once in a losing position.

Moves per game

Median= 63.0
Average= 66.8

There were 29 games longer than 100 moves, the longest was 158 moves (BlackMarlin - Marvin, game 21, draw). 

Time per game (hours)

Median= 1:01
Average= 0:59

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, 88.6% of the game pairs repeated the same ECO code and 81.1% repeated the opening variant twice. Only in 1.5% 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, 25.8% diverged immediately out of book, 59.1% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 10 plys (Nemorino - Velvet, games 189 and 255, QGD Stonewall variation, two draws)


Season 23 league 1

Final standings


Ethereal and Berserk advance to the premier division. They led the league from the start, after the first two RRs they had the same score with a gap of 1.5 points ahead of Minic. Ethereal kept increasing the gap in the second half of the league, Berserk slowed down a little. In RR3 Berserk lost to Ethereal and to RubiChess, it was still leading Minic and RubiChess by 2.5 points at the end of RR3. In RR4 Berserk lost to Koivisto, RubiChess couldn't keep up but Minic closed the gap to 0.5 points. However, in their direct encounter Berserk beat Minic to keep second place. 

Koivisto performed below expectations, in season 22 it was very close to advancing to the premier division, and in the Swiss event of season 22 it finished in joint 5th place (together with Ethereal and RubiChess for example). It was suggested in the chat that the version of Koivisto submitted to season 23 had a known bug that caused it to lose strength. Hopefully it will do better next season.

Ethereal and Berserk will play 4DRR in the premier division, together with Stockfish, KomodoDragon, Leela, rofChade, Stoofvlees and SlowChess.

Interesting games

game 12, Berserk - Koivisto: Berserk had an eval advantage that slowly increased. The engines shuffled for a while in a closed position, after move 50 the position opened and Koivisto gave a rook for a bishop and two pawns. Berserk used an attack on the black king to regain the pawns and to reduce to a RR vs RB position a pawn up. It took Berserk 20 more moves to win.

game 17, ScorpioNN - Minic: The game reached a B vs pawns endgame, Minic seemed to be holding with its king guarding the black pawns. After move 100 ScorpioNN somehow managed to get its king forward, but just as it was about to win it failed to move on time and lost.

game 20, Minic - Seer: Seer tried to attack in a drawn position, it moved a rook to the 2nd rank, captured two pawns and pushed a passer forward. Minic countered on the king side where it trapped the black queen. Seer gave a knight to free its queen, the game reached a RN vs R ending and Minic used passers to win.

game 23, Berserk - Revenge: Berserk had an eval advantage, there were only a few exchanges after the start. After the engines opened the center Berserk created a passer, then added a second passer after most pieces were exchanged. In a QB vs QN position Revenge tried to delay with checks, eventually it gave a knight for one of the passers and the queen for the other, game over. 

game 27, Ethereal - Berserk: Ethereal had an eval advantage that increased from the start. Berserk had two isolated pawns, the engines exchanged pieces until only RN vs RN remained and then Ethereal captured the pawns. Berserk had to give the knight to stop two passers, the game ended in a tablebase win.

game 34, Berserk - ScorpioNN: The black king was exposed in the corner, ScorpioNN surrounded it with pieces. Berserk captured two pawns with its queen and reduced to a double rook ending. ScorpioNN regained the pawns but Berserk pushed two passers facing the black king and mated.

game 50, ScorpioNN - Revenge: ScorpioNN had an eval advantage that slowly increased from the start. The advantage was not apparent, the game reached a RRN vs RRN, the white pieces were better placed and ScorpioNN had a passer. After exchanging a pair of rooks the passer started to advance, Revenge gave a rook for a knight to capture it. The game ended in a tablebase win. 

game 52, Igel - Koivisto: All pieces were on the board when Koivisto decided to give a knight and attack the white king. Igel exchanged pieces, its king was exposed but it still managed to escape. The game reached a QN vs Q ending, Koivisto delayed with checks but eventually it was mated.

game 59, Revenge - Seer: Revenge gradually increased pressure on the king side where there was a small opening. After move 30 the engines started to exchange pieces and pawns, the game reached a QB vs BNN position. Seer tried to keep its pieces protected, it took a while but Revenge managed to break the fortress and capture a piece, leading to mate.

game 60, Ethereal - ScorpioNN: ScorpioNN gave a bishop for two pawns early, then it attacked the exposed white king. Ethereal exchanged pieces and reduced to a B vs pawns ending. Ethereal was three pawns down but it was sure of its win, however it took its time to get there. The game ended in a tablebase win on move 121. 

Standings after RR1: Berserk Ethereal +5, Minic +4, RubiChess +1, ScorpioNN Revenge 0, Koivisto Seer -1, Arasan Fritz -2, Igel -3, Nemorino -6. Berserk, Ethereal and Minic are leading with a small margin. There are only two promotion spots, so far Ethereal has a small advantage since it beat Berserk. Minic benefited from a crash by ScorpioNN. Still too early for predictions.

game 75, Ethereal - Minic: The engines exchanged pieces, Ethereal had an eval advantage but evals did not change for a while. After move 30 the game reached a QRN vs QRN position, Ethereal had a pawn majority on the queen side and evals started to increase. Minic gave a rook for a knight and got rid of the queen side pawns, it took Ethereal more than 30 moves to get to a tablebase win.

game 82, Arasan - Ethereal: The game reached a BN vs BB position, Arasan had a passer on the king side and a pawn majority on the queen side. After some shuffling Arasan created a passer on the queen side. Ethereal tried to block but eventually Arasan found a way to drive a blocking bishop away. Ethereal captured the passers but gave a bishop, the game ended in a tablebase win. There were two white wins in this opening. 

game 86, Seer - Minic: Seer had an eval advantage which slowly increased from the start, the engines exchanged pieces and pawns and the advantage was not clear to me. On move 38 Seer went a pawn up and created an advanced passer, then traded it and another pawn became a passer. Minic held for 30 moves, the advantage was small but enough for Seer to convert. There were two white wins in this opening. 

game 90, RubiChess - Koivisto: RubiChess managed to place a rook on the 7th rank early in the game. Koivisto blocked the rook and RubiChess gave it for a bishop, and then moved a passer to the 7th rank. Koivisto tried to block the passer, but the engines exchanged pieces and eventually RubiChess gained material and forced a queening to win.

game 102, Revenge - RubiChess: The engines shuffled for a while, after move 40 Revenge's eval started to increase. Revenge gave a pawn and created a passer in the center. In a RNN vs RBN position the black pawns were weak and Revenge captured them one by one. The game reached a knight ending and Revenge had enough pawns to win. 

game 112, Seer - Koivisto: Seer was up a pawn in a QRB vs QRN position, it had a doubled pawn but its pieces were better placed. Seer dominated the center, Koivisto had to protect its king and this allowed Seer to reduce to a winning rook ending two pawns up. 

game 113, ScorpioNN - RubiChess: ScorpioNN appeared to be winning in a RB vs R ending, but it exchanged rooks and reduced to a tablebase draw. Probably some bug.

game 119, Berserk - Minic: Berserk had an eval advantage that slowly increased, material was equal but Minic had a bishop that was almost trapped. The game reached a RRB vs RRB position and Berserk went a pawn up, Minic gave another pawn to free its bishop. Minic regained the pawns but lost its rook to stop a passer, game over. 

game 123, Minic - Koivisto: Minic had an eval advantage that increased in a closed position. When the engines opened the position with exchanges Minic was up a rook for a bishop and pawn. The game reached a RN vs BN position, Koivisto held on to an advanced passer but lost its other pawns. Minic blocked the passer, it had two pawns left and that was enough to win. 

game 124, Igel - RubiChess: RubiChess decided to give a knight and attack the white king. It looked scary with black pawns facing the white king, but Igel found safe squares for its king and kept the material advantage. The engines reduced to a BBN vs R position, Igel captured the black passers and then used passers of its own to win. 

game 128, Ethereal - Seer: Ethereal had a central passer early in the game. Seer created a central passer as well but it was not supported and Ethereal captured it and went a pawn up. The engines gradually exchanged pieces until only BNN vs BNN were left, then Ethereal captured a second pawn. The material advantage was sufficient for a win, it took Ethereal another 30 moves.

Standings after RR2: Ethereal Berserk +7, Minic +4, RubiChess Seer ScorpioNN +2,  Revenge +1, Igel -2, Koivisto -3, Arasan -4, Fritz -5, Nemorino -11. Ethereal and Berserk lead at the half way point, beating almost all of their opponents in game pairs. They have only one game pair loss between them, and that is Ethereal beating Berserk. Minic lost to both leaders in RR2 and the gap starts to look significant. ScorpioNN and Seer had good results in RR2, they join RubiChess in joint 4th place, with a small chance of promoting.

game 146, RubiChess - Berserk: RubiChess used the half open g file to threaten the black king. Exchanges opened the g file, RubiChess managed to place pawns on f6 and h6, still Berserk thought it was holding. Berserk's eval suddenly jumped, it gave a rook for a bishop and tried to delay with checks. Eventually the black king had no escape in a QR vs QN position and RubiChess mated.

game 155, Berserk - Revenge: Evals increased very slowly, there were a few pawn exchanges but all pieces were on the board until move 41. A series of exchanges left a QRB vs QRB position with Berserk a pawn up. Berserk was very patient, eventually it captured the bishop and reduced to a tablebase win.

game 156, Koivisto - RubiChess: Koivisto captured a knight early in the game, the white king was exposed in the center but not in any danger, RubiChess realized it had no compensation for the piece. The game reached a RBN vs RB position, Koivisto used the extra piece to capture black pawns, then promoted a passer and mated.

game 159, Ethereal - Berserk: Berserk traded a rook for a knight and two pawns, the game reached a QRR vs QRB position. Ethereal regained the pawns and placed both rooks on the 7th rank. Berserk had 3 connected passers but they were not strong enough, Ethereal captured two passers and reduced to a winning R vs B ending.

game 170, Ethereal - RubiChess: Ethereal had an eval advantage that increased slowly from the start. Material was equal but Ethereal used a strong bishop pair to capture a pawn and then reduce to a RB vs RB position. RubiChess tried to hold, it lost another pawn and exchanged rooks. However, the remaining opposite color bishops ending was a win for white.

game 179, RubiChess - ScorpioNN: RubiChess was a pawn up but evals did not change a lot until ScorpioNN decided to give 2 more pawns and attack. ScorpioNN realized too late that was a mistake, RubiChess stayed calm and reduced to a Q vs RB position. ScorpioNN had a passer on the 7th rank but there were too many white pawns to deal with, RubiChess captured the passer and the game ended in a tablebase win. 

game 189, Koivisto - Minic: Minic couldn't find safety for its king, it was forced to move without castling and it had little pawn support. Koivisto took advantage of the situation, it captured two pawns and reduced to a RN vs RN position. Minic got one pawn back, both engines pushed a passer forward. Koivisto was faster though and Minic had to give its rook to stop the white passer, game over. 

game 192, Ethereal - ScorpioNN: The engines traded R and two pawns for BN early in the game. Evals increased as the engines exchanged pieces until only QBB vs QR remained. ScorpioNN had more pawns but its king was in danger, and it was Ethereal that managed to push a passer to the 7th rank. After exchanging queens Ethereal shuffled for a while, it took almost 40 moves to get to a tablebase win.

game 195, Igel - Revenge: The engines mainly shuffled, the pawns were blocked across the board except for the h file. Piece exchanges extended the game beyond move 100 and evals started to increase. Igel opened the position by sacrificing a knight for two pawns, then a series of exchanges led to a knight ending with white a pawn up. The white passers gave Igel the win. 

Standings after RR3: Ethereal +11, Berserk +9, Minic RubiChess +4, Seer +3, Revenge ScorpioNN +2, Koivisto -1, Igel -3, Arasan -6, Fritz -9, Nemorino -16. Ethereal and Berserk have a significant lead, it would be quite a surprise if either of them fails to promote. RubiChess had a good result in RR3, including a win against Berserk.

game 207, Ethereal - Minic: Ethereal captured a pawn and then reduced to a RRN vs RRN position. Ethereal had an advanced passer, Minic captured it but had to give a rook for a knight. The game ended in a tablebase win.

game 210, Koivisto - Berserk: Only a pair of knights was exchanged after the start, evals increased slowly. After move 26 Koivisto opened the position and went a pawn up. Then a series of exchanges reduced to a BN vs BN position, Koivisto had doubled passers. Berserk tried to block but eventually it lost both pieces to stop the passers, the game ended in a tablebase win. 

game 215, Minic - ScorpioNN: ScorpioNN captured a pawn early in the game, however its king couldn't castle and Minic developed better. Minic regained the pawns and reduced to a BB vs BN position, it used the bishop pair to control the black pawns. Eventually Minic went a pawn up, ScorpioNN reduced to an opposite color bishops ending but Minic used an unstoppable passer to win.

game 218, Seer - Minic: The game reached a QRR vs QRR position, with a white passer on the 7th rank. Seer chose to trade RR for Q and lost the passer. It was two pawns up and with better play it may have won, but it couldn't find a way to push its pawns safely and instead it gave checks. The game ended by the 50 move draw rule on move 203.

game 222, RubiChess - Koivisto: RubiChess was a pawn up with an eval advantage, but it allowed Koivisto reduce to an opposite color bishops ending that was a draw.

game 225, Berserk - Ethereal: The game reached a queen ending, Berserk was up a pawn but it couldn't find a way to win and Ethereal held a draw. 

game 232, ScorpioNN - Berserk:  ScorpioNN had two passers in a RB vs RB position, but it chose the wrong moment to exchange rooks and was left with a drawn opposite color bishops ending.

game 234, Revenge - RubiChess: Revenge created a passer on the queen side early in the game, the engines exchanged pieces until only NN vs NN were left. The white knights were better coordinated and the white passer forced RubiChess to block with one knight. Revenge captured all the black pawns, it lost the queen side passer but forced a promotion on the king side to win.

Standings with 5 rounds to go: Ethereal +14, Berserk +8, Minic +6, RubiChess Seer +4, Revenge +3, ScorpioNN +2, Koivisto -1, Igel -2, Arasan -9, Fritz -10, Nemorino -19. Berserk is still in second place but after a loss it is only 1 point ahead of Minic in third place. Minic won 3 games as white against lower ranked engines, and lost once as black against Ethereal. Rubichess is further away together with Seer, 2 points from second place.

game 245, ScorpioNN - RubiChess: There were no exchanges until move 25, then evals started to increase. The engines reduced to a BB vs BB position, both engines had a passer but the white passer was more advanced and better supported. ScorpioNN captured a bishop for the passer, it was two pawns down but it used the bishop pair to capture black pawns. The last white pawn ensured the win. There were two white wins in this opening.

game 249, RubiChess - Seer: Seer gave a pawn on the queen side and then regretted it. RubiChess pushed a passer to the 7th rank on the queen side while it made threats on the black king on the king side. For many moves Seer could capture a rook but didn't want to lose a crucial bishop. Seer defended its king and eventually made the R vs B exchange, but RubiChess used its passer to capture a rook. In a RBB vs RN position an unstoppable passer gave RubiChess the win.

game 251, Berserk - Minic: The engines seemed to be shuffling but evals slowly increased. When the king side opened Minic was up a pawn with a central passer but its king was exposed. Berserk captured black pawns until it was 3 pawns up, then reduced to a RB vs RB position. Minic couldn't hold its passer and the game ended in a tablebase win.

Standings with 2 rounds to go: Ethereal +15, Berserk +9, Minic +6, RubiChess Seer +4, Revenge +3, ScorpioNN +1, Koivisto 0, Igel -3, Arasan -Fritz -10, Nemorino -19. Minic got as close as 0.5 points to Berserk in second place, but then lost to Berserk as black. RubiChess and Seer are out of the race, Minic only has a theoretical chance. Berserk needs 0.5 points in two games to ensure a place in the premier division. 

Berserk held against Arasan, Minic beat Koivisto. One round to go Berserk is 1 point ahead of Minic, it has a tiebreak advantage so it is sure of second place.

game 262, RubiChess - Minic: RubiChess created a passer on the queen side early in the game, evals slowly increased as the engines seemed to be shuffling. A series of exchanges reduced to a QRB vs QRN with RubiChess a pawn up, RubiChess then pushed its passer to the 7th rank. Minic captured the passer but lost its queen, RubiChess mated not long afterwards.


Wednesday, August 31, 2022

Season 23 league 2

Final standings


Minic, Arasan, Fritz and Nemorino advance to league 1. Minic led the league with at least one game pair win against all the other engines, together with 2 game pair losses. Arasan and Fritz were also at the top, together they had only 3 game pair losses in the league. There were many engines in the race for 4th place, after RR3 Halogen was 4th and Nemorino was 0.5 points behind. In the last RR Halogen lost three games and dropped, while BlackMarlin won 4 games and took over 4th place. Then in the last round Nemorino beat BlackMarlin and tied their scores. The same win also ensured a head to head tiebreak advantage, Nemorino finished 4th to advance to league 1.

The advancing engines will play 2DDR in league 1 together with the following 8 engines:

played in season 22 premier division: ScorpioNN, Igel
played in season 22 league 1: Koivisto, RubiChess, Revenge, Ethereal
played in season 22 league 2: Seer
played in season 22 league 3: Berserk

Only two engines will advance to the premier division.

Interesting games

game 2, Nemorino - Weiss: The game started with a 21-ply book in the Benoni defense. The engines reduced to a QRB vs QRB position with black a pawn up. Nemorino had an eval advantage and Weiss played defensively, Nemorino walked its king to the queen side and then attacked. It captured two pawns and exchanged queens, it used passers to capture pieces and win. 

game 3, Arasan - BlackMarlin: The book favored black but Arasan equalized quickly, though black was two pawns up. Arasan got a pawn back and created a central passer, BlackMarlin gave a piece for the passer and the game reached a RBB vs RB position. All the white pawns were captured, Arasan trapped the black rook and forced a bishop for rook trade, resulting in a tablebase win. 

game 6, Marvin - Halogen: Halogen was tempted to capture a pawn in the opening, and as a result it was behind in developing its pieces. Marvin recovered the pawn and exchanged pieces, the game reached a RN vs RN position. Marvin used a passer on the 7th rank to gain material and win.

game 8, Wasp - Marvin: Wasp had an eval advantage that steadily increased. The black king remained in the center and Marvin had problems in development, it gave a knight for a pawn to get some space for its pieces. Wasp gained more material and was close to winning when it crashed, giving Marvin the point.

game 9, Velvet - Minic: Velvet had an advantage from the opening but Minic equalized quickly. Velvet gave a knight for 3 pawns to open the king side, then Minic took over and reduced to a R vs NN ending. Velvet was two pawns up but the black knights acted together effectively to capture white pawns. Minic gave a knight for the last white pawn and secured a tablebase win.

game 10, BlackMarlin - Fritz: BlackMarlin reduced to a RB vs RN position, each engine had 7 pawns and BlackMarlin had a 4-3 pawn majority on the queen side. After exchanging rooks BlackMarlin gave its bishop for two pawns, the white king came forward and captured two more pawns. Fritz couldn't prevent a queening, game over.

game 16, Minic - BlackMarlin: BlackMarlin moved its queen forward and evals jumped despite black being a pawn up. Minic had a central passer and BlackMarlin gave a rook for a knight to capture it. The game reached a RBN vs BNN position, Minic exchanged pieces and pawns and the game ended in a tablebase win. 

game 18, Halogen - Wasp: The game reached a pawnless RR vs RRB 7-man ending, Wasp won though it could have been a cursed win if Halogen was more accurate. 

game 21, BlackMarlin - Marvin: BlackMarlin had an eval advantage in a closed position, it may have won if it tried to open the king side. However it kept the position closed and after a lot of shuffling the game ended by the 50 move rule.

game 22, Weiss - Minic: Weiss was a pawn up from the opening, after a series of exchanges it was two pawns up. After some preparation Weiss attacked the black king, gained material and won.

game 26, Fritz - Nemorino: Fritz had an eval advantage from the start, it developed its pieces faster and it had more space. Fritz captured two pawns and then reduced to a winning B vs N ending. 

game 38, Minic - Arasan: Minic had an eval advantage and was a pawn up in a RN vs RB position. Arasan could have held perhaps, but it blundered and allowed Minic to reduce to a winning rook ending. 

game 47, Arasan - Marvin: Arasan outplayed Marvin in a position where the board was mostly blocked by pawns. After some shuffling the engines exchanged queens, then Marvin gave a bishop to capture two connected white passers. In a RRN vs RR position Arasan managed to capture almost all the black pawns, and eventually win material and mate.

game 48, Fritz - Minic: Fritz had an eval advantage from the start, it went a pawn up but Minic equalized. Then Fritz captured a pawn, ignoring the danger to its king. Minic attacked with most of its pieces, Fritz exchanged to protect its king but lost a piece. The game reached a winning pawns vs bishop ending.

Standings after RR1: Minic +7, Fritz +3, Arasan +2, Marvin Nemorino +1, BlackMarlin Velvet 0, Wasp -1, Halogen -2, Weiss Tucano -3, Winter -5. Minic is leading comfortably with 8 wins and one loss in the first RR, it appears to be on its way to advance to league 1. It is too early for any more predictions about the results of this league, the scores are too close and it is still not known how much effect the book sequences have. Note that if Wasp hadn't crashed it would have swapped places with Marvin.

game 70, Velvet - Fritz: Velvet was up 4 pawns for a bishop from the opening, Fritz had an eval advantage though its king was completely exposed. The game reached a RR vs RRB position, Velvet pushed a pair of connected pawns in the center which was probably a mistake. Fritz captured pawns and then gave its bishop and reduced to a winning rook ending a pawn up. 

game 72, Halogen - Marvin: Halogen may have had a chance to win in a closed double rook ending. It chose to shuffle and not try to break through, eventually the engines exchanged all rooks and the game ended in a draw.

game 86, Halogen - Velvet: The game reached a RRB vs QB position quickly. Halogen was a pawn up, it played more accurately and had an eval advantage. Progress was very slow with a lot of shuffling and a few pawn moves. Eventually Halogen created connected passers, Velvet gave the bishop to capture one of them after 20 more moves. It took Halogen another 15 moves to reduce to a winning bishop vs pawns ending.

game 95, BlackMarlin - Halogen: BlackMarlin had an eval advantage from the start. Halogen traded RR for Q and equalized, for a long while the engines shuffled and traded pieces until only QB vs RRN remained. Something went wrong for BlackMarlin after move 65, Halogen found safety for its king and the black rooks moved forward and attacked. Eventually Halogen traded everything and reduced to a winning king and pawns ending.

game 99, Halogen - Weiss: Weiss had an eval advantage from the start, it went up a pawn and then created an advanced passer. Halogen gave a rook for a bishop to get rid of the passer, Weiss used two more passers to gain material and win. There were two black wins in this opening.

game 104, Arasan - Minic: The game reached a RRB vs RRN position with white a pawn up, Arasan had an eval advantage but the engines shuffled and the position looked drawn. Arasan found a way to improve after move 55, it gave a pawn and moved a rook forward. Then Arasan captured a pawn and created two passers, eventually it gave a rook to queen one passer, the win was a matter of time. There were two white wins in this opening.

game 105, Nemorino - Marvin: Marvin was up a pawn from the start, it had an eval advantage but Nemorino seemed to have equalized. The game reached a RRB vs RBN position with black 3 pawns up. Nemorino was almost out of time when it lost control of the black passers, Marvin reduced to a winning rook ending. 

game 111, Wasp - Tucano: Wasp was a pawn up from the start but Tucano had the eval advantage. Tucano regained the pawn then it went a pawn up and slowly reduced to a BN vs BN position. Wasp gave a bishop to stop a passer, a second passer on the 2nd rank gave Tucano the win. 

game 116, Fritz - Marvin: Fritz had an eval advantage that gradually increased in a closed position. When the position opened Fritz captured a pawn and threatened the black king side. Marvin gave a bishop for a pawn, Fritz exchanged pieces and gained more material until it won. 

game 118, Nemorino - Wasp: Nemorino captured a rook for a knight early, but Wasp had a strong attack on the white king. Nemorino captured a second rook but couldn't prevent being mated on the board. 

game 122, BlackMarlin - Tucano: BlackMarlin had an eval advantage from the start, it tried to attack and traded RBN for Q, nothing came out of it and Tucano equalized. The black king found safety and then Tucano took over, it reduced to a Q vs RBB position. The black pieces worked in coordination, Tucano kept one pawn on the 2nd rank and reduced to a tablebase win. 

game 128, Minic - Halogen: Halogen was up a pawn from the start, it created connected passers and Minic gave a knight for two pawns to capture them. The engines exchanged pieces gradually, Halogen gave a knight to attack the white king. As a result the game reached a winning R vs RN ending. 

Standings after RR2: Minic Fritz Arasan +5, Marvin Halogen +1, Nemorino Velvet Wasp 0, BlackMarlin Tucano -1, Weiss -3, Winter -12. At the halfway point Fritz and Arasan join Minic in the lead, Arasan is the only engine with no game pair loss so far. All the other engines are still in the race for 4th place, except Winter and perhaps Weiss.

game 137, Minic - Wasp: Minic had an eval advantage from the start, it captured a pawn but the engines mostly shuffled. Perhaps Wasp should have tried harder to keep pieces on the board, the game reached a rook ending that Minic converted.

game 138, Marvin - Halogen: Halogen was a pawn up from the start, the engines gradually exchanged pieces until reaching a BN vs BN position. Halogen then captured two more pawns, it used the threat of passers to gain more material and win.

game 148, Minic - BlackMarlin: The game started with a 23-ply book in the Sicilian Dragon, Yugoslav attack. BlackMarlin was a bit slow, Minic gave two pawns and threatened the king side. BlackMarlin reacted on the queen side, the result was a RB vs B position with black 4 pawns up. The white rook was strong enough to stop the pawns, the game ended in a tablebase win. 

game 149, Marvin - Velvet: After the position opened up both engines had a passer but Marvin played better, the white passer was a bigger threat. Velvet gave material and the game reduced to a RR vs RB position, Marvin had more pawns and that was enough to win. 

game 152, Velvet - Halogen: Halogen was a pawn up with an eval advantage from the start. For a long time the engines mostly shuffled, there were a few exchanges and the game reached a RRB vs RRN position. Halogen opened the king side after move 100, then it managed to reduce to a winning double rook ending. 

game 153, BlackMarlin - Marvin: On the king side BlackMarlin threatened the black king, while on the queen side BlackMarlin worked slowly until it had an advanced passer on the 7th rank. The engines exchanged pieces until only RN vs RB were left. BlackMarlin gave a knight for a pawn and then Marvin lost both its pieces to stop passers, game over. 

game 164, BlackMarlin - Wasp: BlackMarlin was up a pawn from the start, the engines mainly shuffled until move 40. The position opened and Wasp created an advanced passer in the center. Wasp tried to attack but miscalculated, BlackMarlin was able to force exchanges while controlling the black passer. The game reached a RBN vs RBN position, the passer was gone and BlackMarlin was 3 pawns up, enough to win.

game 165, Weiss - Halogen: Halogen blundered in an apparently drawn QR vs QR position. Weiss exchanged rooks and moved its queen forward. Halogen's queen was deflected to capture a dangerous passer, this allowed the white king to move forward and capture two pawns. Halogen could only delay the white pawns with checks, eventually it lost its queen and the game.

game 166, Tucano - Marvin: The black queen came forward and captured a pawn, as a result Marvin's development was slow. Tucano created an advanced passer, and trapped Marvin's queen side rook and bishop. Tucano gave a rook for a bishop and pushed more pawns on the queen side, Marvin gave a bishop to free its rook and get rid of the passer. In a BBN vs RN position the white bishops were strong, it took a while but Tucano converted in the end. 

game 175, Winter - BlackMarlin: Winter captured a pawn early, opening files for BlackMarlin to threaten the white king. BlackMarlin gave two more pawns, then later regained them, its attack was not effective. Then in a QRN vs QRB position and with seconds on the clock BlackMarlin blundered, it captured a passer on the 7th rank and lost its bishop. Winter reduced to a RN vs R ending and used its last pawn to win, only its second win in this league.

game 192, Minic - Marvin: Marvin had an eval advantage from the start, and it steadily increased. The position opened and Minic created a passer, then it went a pawn up and reduced to a BNN vs BNN position. After a while Minic captured another pawn and added more passers, the win was just a matter of time. 

Standings after RR3: Minic +9, Arasan +8, Fritz +7, Halogen +2, Nemorino +1, Tucano 0, BlackMarlin -1, Marvin Velvet -2, Wasp -3, Weiss -4, Winter -15. It is very likely that Minic, Arasan and Fritz will advance. The 4th place is still open, Nemorino and Halogen are leading that race but more engines still have a chance. Marvin, Velvet and Wasp drifted down after negative scores in in RR3, it will be difficult for them to close the gap. 

game 204, Halogen - Marvin: Marvin was up  a pawn from the start, Halogen developed faster and evals became positive. One black bishop was trapped, Halogen had more space, the engines mostly shuffled but Halogen seemed to have a substantial advantage. However it chose to stay passive and didn't try to attack, the game ended in a 50 move draw.

game 210, Nemorino - Tucano: Tucano gave a rook for a knight without sufficient compensation, Nemorino reduced to a RB vs BN position. The endgame was slow, eventually Tucano gave a piece for the last white pawn and the game ended in a tablebase win.

game 227, BlackMarlin - Halogen: The engines shuffled from move 33 until both were playing on increment. BlackMarlin gave a pawn and Halogen moved a pawn, the shuffle extended to move 83. By then BlackMarlin had a big eval advantage, Halogen was forced to give a bishop to stop a mate threat, BlackMarlin reduced to a winning BB vs B ending. 

game 233, Minic - Nemorino: Minic had an eval advantage from the start, the black king was under pressure and then Minic added an advanced passer on the queen side. In the end Minic reduced to a R vs N ending with a pawn up and won.

Standings with 5 rounds to go: Minic +13, Arasan +10, Fritz +8, Halogen Nemorino +1, BlackMarlin 0, Marvin -1, Tucano Velvet -3, Wasp -4, Weiss -6, Winter -16. Halogen and Nemorino are tied in 4th place, BlackMarlin beat Halogen and is only 0.5 points behind. Marvin is also not too far behind. 

game 236, Arasan - Minic: Minic was up a pawn from the start, both engines had an advanced passer but the black passer had more support. After a while Minic managed to capture another pawn, and two more pawns became passers, all connected. Arasan tried to counter with an attack on the black king, after a series of exchanges the game reached a queen ending with Minic 3 pawns up, game over. This was the first game pair loss for Arasan in the league.

game 240, BlackMarlin - Velvet: Velvet blundered late in a RB vs RN position, it let the white king move forward and that was enough for BlackMarlin to reduce to a winning rook ending two pawns up.

game 249, Arasan - Halogen: In a RRB vs RRB position Halogen chose a line that led to a B for R exchange. The game reached a R vs B ending, Halogen had an advanced passer but it was not strong enough. Arasan was able to reduce to a tablebase win.

Standings with 2 rounds to go: Minic +14, Arasan +10, Fritz +9, BlackMarlin +2, Nemorino +1,  Halogen 0, Marvin -2, Tucano Wasp Velvet -4, Weiss -5, Winter -17. Halogen lost one game and Nemorino only drew, BlackMarlin won twice and is now in 4th place. Halogen has strong opponents in its last two games, it probably can't catch up. BlackMarlin and Nemorino will play each other in the last round, this may be the deciding game.

game 254, BlackMarlin - Tucano: Tucano pushed its king side pawns and left its king open to attack. BlackMarlin slowly increased the pressure while keeping its own king safe. In the end the game reached a B vs R ending, BlackMarlin was 3 pawns up with connected passers that ensured the win. 

All other games were drawn in the round, BlackMarlin is in 4th place and only Nemorino has a chance of catching up if it beats BlackMarlin in the last round.

game 263, Nemorino - BlackMarlin: The game reached a RB vs R position, BlackMarlin was a pawn up with an advanced passer as compensation for the piece. Evals were close to 0 when BlackMarlin blundered, it captured a pawn and created 3 connected passers but this allowed Nemorino to trap the black rook in front of the pawns. Nemorino gave its bishop to capture the black pawns and reduced to a winning rook endgame 2 pawns up.

With this win Nemorino and BlackMarlin are tied, and the win also means that Nemorino beats BlackMarlin on the head to head tiebreak.


Tuesday, August 30, 2022

Season 23 qualification league statistics

A summary statistics table of previous stages and seasons. 

The season 23 qualification league was a bookless event. Therefore the game pairing is not relevant and statistics related to it are not shown.

Draw rate, wins

Final draw rate was 48.1%.

Game termination

The three most common game termination causes were:
35.8% - SyzygyTB
32.1% - TCEC draw rule
22.2% - Mate

There were no actual crashes in the stage, but ClassicAra lost one game on time just before it was mated.

Moves per game 

Median= 66
Average= 70.7

There were 19 games longer than 100 moves, the longest was 193 moves (Winter - Velvet, game 107, draw).

Time per game (hours) 

Median= 1:02
Average= 1:00

Openings

Books were not used in this stage. The first letter of the ECO codes was distributed as follows: 


Wednesday, August 24, 2022

Season 23 qualification league

Season 23 started with a qualification league. It has been 4 months since the season 22 superfinal ended, during this time TCEC ran a cup, a swiss tournament, an FRC championship, a DFRC championship and other bonus events. 

The format of season 23 has changed a little, as change is one of TCEC's constants. This season there will not be leagues 3 and 4, after qualification there will be league 2 directly. Leagues 1 and 2 will each have 12 engines playing 2 DRRs, 4 engines are planned to advance to leagues 1 and 2 from lower leagues. The qualification league will be a swiss tournament with 18 engines and 9 double rounds. The engine placement in lower leagues is determined by their results in the swiss event of season 22, abandoning the league results. I assume this is due to the fact that some engines are rated above their league result, in season 22 there were only 2 engines advancing between leagues and some were left behind (Berserk is the most obvious example).

There are 18 engines in the qualification league trying to win one of 4 spots that move on to the next stage. The participating engines are:

played in season 22 league 2: ClassicAra, Winter
played in season 22 league 3: Weiss, Drofa, 
played in season 22 league 4: Zahak, Stash, MrBob, Amoeba, 
played in season 22 qualification league: BlackMarlin, Mantissa, Counter, Velvet, ChessFighter, Asymptote, Cheese, Bagatur, tomitankChess
new: Expositor 

Final standings


Velvet, BlackMarlin, Weiss and Winter advance to league 2. Velvet started strong including a double win against BlackMarlin, it kept the lead from the start to qualify. BlackMarlin recovered from its early losses, it won games at a steady pace to secure 2nd place. Many engines fought for the two remaining spots, luck was a significant factor. Winter and ChessFighter used the swiss system to get a double win in the last round against weak opponents, they joined Weiss in a 3-way tie. The other contestants had tougher opponents in the last round and stayed behind. For example ClassicAra lost a game in the last round against Velvet. Winter and Weiss qualified on a tiebreak, they had stronger opponents than the ones ChessFighter faced.

The qualifiers will play 2DDR in league 2 together with the following 8 engines:

played in season 22 league 1: Nemorino, Minic
played in season 22 league 2: Fritz, Halogen
played in season 22 league 3: Tucano, Arasan, Marvin, Wasp

Interesting games

games 3-4, ChessFighter - ClassicAra: Both engines won in white, which is unusual for engines with similar ratings and with no opening books. ClassicAra played weak moves as black in a Najdorf Sicilian, ChessFighter went 3 pawns up to win. In the reverse the engines left theory early in a QGD exchange variation, a late blunder by ChessFighter led to a winning queen ending with white a pawn up.

games 11-12, Velvet - MrBob: Velvet beat MrBob in both games, an unexpected result that perhaps hints that the actual rating difference is much higher than 2 (in favor of MrBob !), the official TCEC rating difference of these engines. The first game reached a RB vs BN ending which Velvet managed to convert despite being 3 pawns down. In the reverse MrBob chose a weak variant in a Giuoco Pianissimo opening, Velvet attacked the white king and traded Q for RB to win.

game 17, BlackMarlin - Winter: Winter was not accurate in the opening, BlackMarlin used its advantage to capture two pawns. The game reached an opposite color bishop ending, BlackMarlin captured another pawn and that was enough to win.

game 26, Weiss - ClassicAra: ClassicAra again was weak in the opening, it moved its queen forward and captured pawns, eventually it gave a knight for 3 pawns. Weiss attacked the black king and used its extra piece to force mate. 

game 28, Counter - Drofa: The game reached a B vs N ending, Counter was a pawn up but it seemed Drofa was holding. However something went wrong, Counter was able to give back the pawn and promote a passer to win. Drofa supposedly has a rating advantage of 100.

game 30, Mantissa - Stash: An attack on the black king resulted in a double rook ending with white 3 pawns up, a win for the lower rated Mantissa.

game 41, Stash - Winter: Stash may have missed a win in a RB vs RB ending up a pawn, Winter was able to hold the draw.

games 51-52, Amoeba - Mantissa: Mantissa missed a win as black in a N vs B ending and a pawn advantage. As white Mantissa had an early pawn advantage, after slowly exchanging most pieces Mantissa used a passer to gain material and win.

games 53-54, Velvet - BlackMarlin: Another double win for Velvet, this time against one of the stronger engines in the league. Velvet appears much stronger than its opponents in qualification. BlackMarlin chose to trade pieces as black that resulted in a RRB vs Q imbalance with black 3 pawns up. Velvet's rooks and bishops were strong, it managed to control the black pawns and reduce to a winning ending. As white BlackMarlin was a pawn up with a small advantage in a closed position. Late in the game the white queen came forward and captured 2 pawns, Velvet reacted with a deadly attack on the white king that resulted in material gain and mate.

Standings after 3 double rounds: Velvet +5, Expositor Weiss Zahak Mantissa +2, BlackMarlin +1, Counter MrBob Amoeba 0, Cheese ClassicAra Stash Drofa Bagatur Asymptote ChessFighter Winter -1, tomitankChess -6.

game 66, Amoeba - MrBob: MrBob missed a win in a QB vs QN position, it chose to capture a pawn and allowed Amoeba to exchange queens and reduce to a drawn ending.

games 67-68, BlackMarlin - Expositor: As white BlackMarlin trapped a black knight early and captured it for 2 pawns. The engines exchanged pieces until only R vs B remained, a won ending for white. The reverse game reached a QB vs QB position. At some point it seemed Expositor was winning, but it exchanged queens leaving a drawn opposite color bishop ending. 

game 69, Weiss - Mantissa: Mantissa captured a knight for a pawn, this opened a file through which Weiss attacked the black king. Weiss gained material and created an advanced passer to win. 

games 71-72, Zahak - Velvet: Another double win for Velvet. As black Velvet gave a knight for a pawn and opened a file in the center, the white king remained in the center and Zahak couldn't develop pieces on the king side. Eventually Velvet gained material and reduced to a winning RN vs R ending. In the reverse game Zahak moved its queen forward and couldn't find a way back. Velvet gave a rook for a bishop and attacked the black king, by the time the black queen made its way back the game reached a winning QB vs Q ending.

games 79-80, MrBob - Zahak: Both engines won as black, which is borderline weird. Zahak as black was a pawn down but the white king moved without castling. Zahak reduced to a RN vs RB position and captured two pawns, it used a passer to capture a piece and win. As white Zahak had an early R for N advantage with an advanced passer. Then it blundered when MrBob offered a rook, Zahak missed the deadly attack on its king that followed. The game reached a queen ending with black two pawns up, enough to win. 

games 85-86, Drofa - Winter: Both engines won as white. The first game reached a RN vs RB position, Drofa as white was two pawns up and Winter had a potential advanced passer as compensation. For a while it seemed Winter was holding but it made a mistake. Drofa exchanged rooks and controlled the black passer, Winter couldn't block all the white pawns supported by the king. In the second game Drofa ignored the danger to its king, the result of the attack was an opposite color bishop ending. Winter was only a pawn up but it had connected passers supported by the king, enough for a win.

game 88, BlackMarlin - Mantissa: Mantissa blundered in a B vs N ending. It captured the bishop for two pawns, then had to give the knight to stop a passer. BlackMarlin had enough pawns remaining to win. 

game 99, Zahak - ChessFighter: Zahak had an eval advantage, eventually ChessFighter cracked. The engines exchanged pieces until reaching a rook ending, material was equal but the white king and pawns were better placed. Zahak captured a pawn and created a passer to win.

game 102, ClassicAra - Expositor: The engines shuffled in a RBN vs RNN position, black had a passer on the 2nd rank but the game seemed to be heading for a draw. Then ClassicAra blundered and lost a pawn, this was enough for Expositor to create a second passer on the 2nd rank. Eventually Expositor queened a passer and won.

game 104Stash - Drofa: Stash had a passer on the 7th rank. For a while Drofa held on, then it gave a rook for a knight to capture the passer. Stash reduced to a RB vs NN position, it left one last pawn to ensure a win. 

Standings after 6 double rounds: Velvet +7, BlackMarlin Weiss +3, Expositor Stash +2, Winter Zahak Amoeba +1, ChessFighter Asymptote Mantissa Drofa MrBob ClassicAra 0, Counter -1, Bagatur -3, Cheese -5, tomitankChess -11. Velvet was slowed down but is still leading with a large margin. The other 3 qualification spots are still open, all engines but the 3 at the bottom still have a chance. Any encounter with a weak engine may result in a double win, part of the instability of the swiss system. 

game 121, Expositor - Weiss: The game reached a Q vs RB position, Expositor slowly captured black pawns until there was only one left. There were 3 white pawns, the advantage should have been sufficient. However Expositor could not convert, I couldn't say why exactly but apparently one wrong pawn move had deep consequences. Expositor bought time with checks but in the end it couldn't stop Weiss from queening first and this was enough for a draw.

game 124, BlackMarlin - Zahak: BlackMarlin had an eval advantage that gradually increased as the engines exchanged pieces. The game reached a rook ending with white a pawn up, BlackMarlin captured two more pawns and the white passers secured a win.

game 125, Stash - Velvet: The game reached a RN vs RB position and seemed drawn. After move 45 evals increased, Stash managed to capture a pawn and get an advantage. Stash created a passer and pushed it to the 7th rank, Velvet blocked it and held for a long time. Stash captured the bishop for the passer and then Stash blundered by capturing a white pawn. Stash kept its last pawn and exchanged rooks to get a tablebase win. 

Top engines with 2 double rounds to go: Velvet +6, BlackMarlin +4, Weiss Stash +3, Expositor ClassicAra Mantissa +2. Velvet lost a game for the first time in the league, but it will surely qualify. ClassicAra and Mantissa got double wins as gifts from the swiss system and are back in the race for now.  

games 135-136, Counter - Expositor: Both engines won as white. In the first game Counter was up a rook for a bishop, the game reached a RR vs RB position. Expositor captured a pawn without considering Counter's next moves, Counter gave the exchange back and reduced to a winning rook ending two pawns up. In the second game Expositor had an eval advantage that started to increase after move 44, Expositor gained material and reduced to a QR vs QN position. The black king was exposed to attacks, Expositor moved its queen across the board to capture a pawn and reduce to a winning R vs N ending. 

game 137, Amoeba - ClassicAra: ClassicAra played the opening better and it had an eval advantage. The game reached a RB vs RB position, ClassicAra had a better pawn structure. After a long shuffle ClassicAra captured 3 pawns, then used passers to gain material and win.

game 142, BlackMarlin - Stash: Stash moved its king without castling, giving BlackMarlin the advantage. BlackMarlin attacked the black king and the game reached a QRB vs QNN position. Stash had to give its queen to stop a passer, game over.

game 144, Velvet - Mantissa: The engines mainly shuffled in a QRR vs QRR position, Mantissa was a pawn up but evals were close to 0. Mantissa blundered when it captured a pawn and left the 7th rank unguarded. Velvet moved its rooks forward, captured a pawn and created an advanced passer. Mantissa had no defense, it lost a rook for the passer, giving Velvet the win.

Top engines before last round: Velvet +7, BlackMarlin +5, Weiss ClassicAra +3, Stash Expositor MrBob Zahak Drofa +2. Velvet and BlackMarlin will advance, the race for the other 2 spots will be fierce. Three more engines have a +1 score and are scheduled to play weak opponents, with a chance of a double win. It is quite possible that +3 will be enough to qualify and tiebreaks will be needed.

Winter and ChessFighter won twice against their opponents to end with +3, Counter failed to win even once and stayed on +1. Drofa, Expositor, Stash, Zahak, drew their games and stayed on +2. Weiss - which played against Zahak - stayed on +3. 

game 160, BlackMarlin - MrBob: BlackMarlin slowly increased the pressure on the black king, eventually the attack started and the result was a rook ending with white two pawns up. BlackMarlin used passers to win.

game 162, Velvet - ClassicAra: The black queen moved forward and captured a pawn, Velvet used this to develop its pieces faster. ClassicAra had a trapped rook and its king was exposed to attack, Velvet gained material and mated.

MrBob and ClassicAra lost a game each and their scores are under +3. Weiss and Winter join Velvet and BlackMarlin, ChessFighter is in 5th place on a tiebreak. This seems justified since Weiss and Winter faced the two leaders while ChessFighter did not.


Monday, May 2, 2022

Season 22 superfinal statistics

A summary statistics table of previous stages and seasons. 

Draw rate, wins
Final draw rate was 63%.

Game termination

The three most common game termination causes were:

53% - TCEC draw rule
30% - SyzygyTB
15% - Mate

There were no crashes in the stage.

Moves per game
Median= 71
Average= 74.4

There were 12 games longer than 100 moves, the longest was 194 moves (Stockfish - KomodoDragon, game 46, Stockfish won).

Time per game (hours) 
Median= 4:21
Average= 4:16

Openings

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

The engines had almost no freedom to choose the opening variant, all the games repeated the same ECO and the same opening variant twice.

Reverse pairs, wins 

Reverse pairs, same moves 

Pairs of reverse games diverged much slower than usual, 20% diverged immediately out of book, 44% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 26 plys (KomodoDragon - Stockfish games 79 and 80, Sicilian dragon, Yugoslav attack, two white wins). Allowing transpositions the maximal repeat was 38 plys in games 97-98 (Sicilian, Richter-Rauzer, two draws).