Russell Sherwood

Tip of the Week #18

Russell Sherwood  Saturday, October 16, 2021

Automation

One change I made to my own approach, which made a massive difference, was that of Automation.  Using this I was able to automate several analysis tasks, so that I was able to run those quietly in the background, whilst I am out of the house or occupied on other matters.  This can be done in a number of ways, but I suggest the use of the programming language Python and the Python-Chess package. This allows me, for example, to create a number of positions I want to analyse in a file and then set this running with a set of parameters on how I want to analyse. These run quietly in the background and I can return to review at a later time.

Programming sounds scary, but Python is a very simple language to learn with plenty of (a) resources to support leaning and (b) shared bits of code to aid your own development.

It is worth noting that a several products (inc. Chessbase) have their own forms of automated analysis, but personally I find these don't really meet my needs and by creating my own tools, I am able to get what I want!

Give it a go, you won't regret it (should there be adequate interesting I might run an article series)

CorrespondenceChessTipoftheWeek

Website Review - kszgk.com - Polish CC Federation

Russell Sherwood  Tuesday, October 12, 2021

Website Review #1 – KSZGK.com Polish Correspondence Chess Federation

 

In this new series I intend to review a number of websites and other resources  related or relatable to Correspondence Chess.

 

Before starting it is worth saying that many of the most interesting sites and not in English, so the use of the auto translate function in your browser is essential. This does mean that the language can be a little awkward but in general I find its readability to be acceptable.

 

 

Our first website is that of Polish Correspondence Chess Federation.  This is an excellent site for tournament reports and has quite a crisp feel to it.  It is an excellent example of what a National Federation website can be.

 

It is worth a poke around as a few hidden gems cane be unearthed at Kszgk.com

 

CorrespondenceChessWebsite

Chess Engines for Correspondence Chess #1

Russell Sherwood  Monday, October 11, 2021

Today We start a new series of articles around developing a chess engine specifically for Correspondence Chess.

 

Let’s start with a simple premise – Chess Engines are super-strong but are not developed to meet the needs of Correspondence players and this in itself is partial fuelling the “draw problem”

 

Why are Chess engines not optimized for CC players? There are two reasons for this – firstly, testing for longer time controls is massively time and resource consuming (and what is called Longer time control in Stockfish testing is not in Correspondence terms!)  and secondly optimizations for CC, would probably make an engine weaker in Short or very short time controls. The reason for this is that the main objective for a CC engine is different to that of a “normal” engine. In CC we are looking for the absolute best move, whereas a normal engine is looking for a “winning” move. This means that many of the SF optimizations, which bring great results as Shorter time controls, sub-optimize the engine for longer time controls.

Some work has been done in the area before. CorChess for example, gives a few optimizations related to CC but its overall benefits of this compared to Vanilla Stockfish are limited , as shown by testing. Others commercial engines suggest “ideal for CC” without any real evidence to back this up.

It is my intention to create an engine alongside the discussion, although this will be private in nature, with a very limited distribution.

So what are the first tentative steps in this journey? 

 

  1. Decide on Template engine
  2. Review current contenders
  3. Create initial version
  4. Make V1 ICCF rules complaint.
  5. Determine desired Features

Considering each in turn.....

  1. Is not as simple a choice as it first seems. Stockfish is the strongest engine out there but is LC0 better suited to Correspondence Chess? My initial view is that Stockfish is still the best option for the template engine as (a) “I can stand on the shoulders of Giant’s” in terms of the amazing work done by the Stockfish Developers and (b) MCTS can be used in Stockfish. From a practical point of view I am not trying to compete with these guys but work on a very niche area!
  2. There are a number of engines which have parts of what I believe need to be components of a CC engine – CorChess, ShashChess and SugaR ICCF to name three. The task here is to determine what features, these and other engines have, which are desirable.
  3. This is simply a case of setting up a GitHub repository
  4. Does the engine follow ICCF rules – SF and almost all the clones do not – the most obvious issue being the application of the 50 move rule. This is the first matter to correct within the engine.
  5. This is something to discuss next time but the aims are threefold –(1) automate/optimize some of the features which currently have to bodged to make work (2) Optimize some of these features and (3) Build a wish list of potential new feature which could be beneficial.  The problem then remains over testing the engine, but I have some ideas here!

Till the next time

CorrespondenceChessEngine

Tip of the Week #17

Russell Sherwood  Sunday, October 10, 2021

Be in the Zone!

Correspondence Chess is a game of precision, be it played with or without engine assistance.

This means that you need to be "at your best" when analysing and making your moves. 

So don't play when overly tired, under the influence or angry!

It is worth saying that you do need to figure out what "at your best" means to you - some players prefer to have a drink to relax alongside a game but, as with everything else in life, moderation is the key!

CorrespondenceChessTipoftheWeek

Build your own Workflow #2

Russell Sherwood  Sunday, October 3, 2021

Last time we left of with our Version 3 Workflow. 

V3

1. Get move to be played

2. Consult Opening Materials

3. Analyse move

    3.1 Analyse move with Engine

4. Blunder Check

5. Make Move

Now let's look to start to improve this! The first improvement we can make is based on wanting to not repeat all the analysis, every time we come to a position. To do this we now add two new steps: Consult Our Game Notes & Add to our Game Notes. The purpose of this is to keep records of what we notice in a position, our plans, and any general thoughts we have about the position.

This gives us our V4

V4

1. Get move to be played

2. Consult Opening Materials

3. Consult our Notes

4. Analyse move

    4.1 Analyse move with Engine

5. Blunder Check

6. Make Move

7. Update our Notes

Not too bad but plenty still left to do.  One advantage that OTB players have is that when playing a game in “real time” they retain a memory of how a position came about, which has many benefits but the one of most interest for us, is that we can have a clue of what the other players’ plans are. We can mimic this effect by playing a some of  the last few moves of the game.

Our next improvement to consider is related to our opponent. When we play a game of chess it is not in isolation but in a partnership with our opponent. Therefore, we should consider our opponent's move, not just our own – what it what we expected, if it is not what is trying to achieve.

Adding these two steps in, we reach our V5

V5

1. Get move to be played

2. Consult Opening Materials

3. Consult our Notes

4. Play through last few moves

5. Analyse Opponents Move

            5.1 Move as expected

            5.2 Move not as expected

6. Analyse move

            6.1 Analyse move with Engine

7. Blunder Check

8. Make Move

9. Update our Notes

 

We are now reaching a point where we will start of refine and subdivide our steps. We will add one more refinement this time, though. Different analysis approaches are necessary at different stages of the game: What works well in one phase may not in another. Traditionally this would be thought of in 3 phases: Opening, Middle game and Endgame, but we can break this down a little more into Early Middle game and Late Middle game. 

We can also consider the twin concept of Pivotal Moves and transitions. These moves are the ones which make major decisions about the direction of the game and are often pivotal to its outcome. These moves need additional thought and effort. The transition factor is if these moves move us from one of our phases to another.

Adding these in, we now have our V6 Workflow

V6

1. Get move to be played

2. Consult Opening Materials

3. Consult our Notes

4. Play through last few moves

5. Analyse Opponents Move

            5.1 Move as expected

            5.2 Move not as expected

6. Pivotal/Transitional Move?

7. Analyse move

            7.1 Opening

                   7.1.1 Analyse move with Engine

            7.2 Early Middle game

                   7.2.1 Analyse move with Engine

            7.3 Late Middle game

                   7.3.1 Analyse move with Engine

            7.4 Endgame

                    7.4.1 Analyse move with Engine

8. Blunder Check

9. Make Move

10. Update our Notes

 

Till the next time! Again, if you have ideas on what should be in a work flow, reach out and let me know

 

 

 

CorrespondenceChessWCCFWorkflow

Tip of the Week #16

Russell Sherwood  Sunday, October 3, 2021

This time we come to a basic but often overlooked area - keeping your tools up to date. 

I just spent an hour or so updating engines and databases - why do this? 

Two reasons 

  • In terms of engine development , new versions are released on regular basis. Each of these only add the odd Elo to the strength of the engine, but these add up over time, so that if you do not update on a regular basis, then you set yourself at a reasonable disadvantage.  This was seen when a number of players continued to use the pre-NNUE version of Stockfish for and suffered strings of losses against those who had updated.
  • New Games are published all the time and keeping your database up to date is essential to not fall into "new" opening traps.

How often should you update? For Engines monthly is adequate but for databases it is mainly a case of determining how often your game sources are updated. 

 

CorrespondenceChessTipoftheWeek

Tip of the Week#15

Russell Sherwood  Sunday, September 26, 2021

A tip, "hot of the press" this week from a support interaction with another player.

Know how to access your engine's settings and how to change them, otherwise you might be missing out!

How do you change them - for most Chessbase products, simple click on the engine when it's analysing , select advanced, and then engine parameters

 

CorrespondenceChessTipoftheWeek

Tip of the Week#14

Russell Sherwood  Sunday, September 12, 2021

Engine rating lists 

It is difficult to compare the relative strength of chess engines, there are many rating lists around, but most of these suffer from a very similar flaw which is the time control that is used in the games used to generate the rating list. It s far too short compared to that used by most correspondence players. 

To use an analogy if you wanted to know who the best middle-distance runner was,would you look at their 100 or 200 m times? No you wouldn't, you'd  look at the middle distance times. So how do we compare engines?

Firstly we know Stockfish is super strong, to gain the best appreciation we have to look at  the results of games played at longer time controls and the longer, the better but this doesn't always give us a true indication either because this is a measure of the engine playing on autopilot, which whilst an indication of how strong the engine can be, is subtly different to that when human input and direction is added on top. 

The general advice that can then be given is to use the rating lists but look at a number of factors:

  1. How the moves of the engine "feel" to you?
  2. How does the engine do in competition against other engines, some are closer to the top as they have a dominance over a specific opponent.
  3. Consider the results of Engines against test sets - this is a much older method of engine testing but one that, for our purposes, is much reliable.

 

Correspondence ChessTipoftheWeek

Tip of the Week #13

Russell Sherwood  Saturday, September 4, 2021

Double-Dip. This is not just a well known dinner time crime, but is also a useful engine analysis method.

Here we have let the engine run for a time, we move back a move and then back to the position we were analysing.  This has two benefits....

if you are using an online resource with a fixed analysis time it will cause the engine to go a little deeper and for those using a local engine it will (if the engine has a learning function) review the analysis used before. It still surprises me how often the engine will choose a different line is positions with multiple candidate moves with similar evaluations.

So here it is ok to Double-Dip!

CorrespondenceChessWCCF

Build your own Workflow #1

Russell Sherwood  Saturday, September 4, 2021

In Tip of the Week #12 , I touched upon standard methods and was surprised when several (actually quite a lot) of players contacted me asking for details in general and of mine specifically. Rather than do that, this  will be the first of a series of articles about building your own workflow.

So why used a standard workflow? The simple reason is that is gives two main benefits:

(a) You don't missing anything out 

(b) You have a basis to improve your methods.

Without knowing it, the majority of us already use standardized methods. A simple example of this is related to anyone who has to get up in a morning against a fixed deadline (Starting Work, getting to school and so on). We all tend to do the same things in the same order , from the moment we wake up. These actions fitting together to get us to our destination on time (or not, in some cases).

 

So let's start to develop our model - we will start very simply. I did this one lunchtime and got to V14 in fairly short order, and then thought of other items I'd missed after that!

Why not tell you the finished item? People learn best when they need to think rather than being spoon-fed!

So let's start with our Version 1 Model - one matter to realize is that we are only looking at one move in one game - once we reach a certain point in development we will change that!

So V1

  1. Get game with move to be played
  2. Analyse move
  3. Make Move

Simple at this point - you will notice no mention of Hardware/Software/Databases.......that is because early in development it is what that matters, not the How.

That's but somewhat lacking...let's move to V2

V2

1. Get move to be played

2. Analyse move 

2.1 Analyse move with Engine

3. Make Move

That's more realistic and shows us a convention - the step 2.1 is done at simultaneously with step 2.  A sad reality is that this is very similar (with probably one other step we will come to later) to what numerous modern CC players do - run SF14 for a while and then play its first choice. This is a major contributor to the increasing draw rates we all see.   If this step this is the case then the power of a player's hardware directly determines their rating.

This brings us to a side-discussion on how we improve our method - firstly we use critical thinking and secondly feedback from our games. If I were to look at V2 method, I can see two obvious improvements - the first sits between steps 2 and 3 and is a blunder check method. We can put all the effort in the world into the previous steps, but if we mess it up, then It's for nothing. The second improvement is that we are relying on our own and the engines' knowledge in Openings, so we move to V3

V3

1. Get move to be played

2. Consult Opening Materials

3. Analyse move

3.1 Analyse move with Engine

4. Blunder Check

5. Make Move

Now we are starting to make progress, although this process is still unlikely to generate "winning" moves at this point. Next time  we will continue this journey.

Just so I know I am not just simply screaming into the void, get in touch - let me know what you think is missing (and plenty of stuff is).

Till the next time

 

CCMethodsCorrespondence ChessWCCF
Welsh Correspondence Chess FederationBritish Correspondence Chess AssociationClergy Correspondence Chess ClubSchemingMind Internet Correspondence Chess ClubSocial Correspondence Chess AssociationNational Correspondence Chess ClubWelsh Chess UnionInternational Correspondence Chess Association