Understanding Engines - Part 1

Getting familiar with the engines you use

Chess engines are very powerful tools and can help you a lot with your chess improvement, but as most strong players will tell you, relying too much on computers can be detrimental to your chess.
This brings up to important question of how to use engines to your benefit. It’s difficult to give an answer which covers every case, but understanding how engines work will give you an idea of their strengths and weaknesses. I want to explain engines in this series of posts and I start with classical engines in this post.

What are classical engines?

I call all engines without a neural network classical engines. These engines include basically all engines up to 2017 and specifically all Stockfish versions up to Stockfish 11. The newest versions of Stockfish contain an NNUE which I will discuss in a later post.

The most important part (at least for practical players) of these engines are the evaluation function and the search function.

Evaluation function

The evaluation function gives each position one value (the evaluation) which is based on many different aspects of the position. These functions are handcrafted for classical engines which means that someone determined how the engine should factor in the different aspects of the position (the easiest example are the piece values). But for most engines, the values are fine tuned through self-play.

It’s important to note that the evaluation function only evaluates the current position. This means that when the position would be equal, but one side has a forced mate the evaluation of the function will still be roughly equal. The engine needs the search function to go deeper into the position.

Search function

The search function steps through the tree of variations and decides which positions should be evaluated and then finds the most promising continuation. The most common search algorithm is called Minimax algorithm. As the name suggests, with this algorithm one player (for chess engines this is black) tries to minimize the score (since negative values are good for black) and the other player (white in this case) tries to maximize the score. So each player wants to play the moves which are best for them (according to the evaluation function).

This all sounds good in theory, but in practice there are way too many legal moves to consider – even for computers. For this reason, every chess engine has to cut branches from the tree, which is called pruning. This means that engines also have blind spots which is important to keep in mind when working with them.

Where does the final evaluation come from?

After reading that every position in the analysis tree gets it’s own evaluation, you might wonder where the final evaluation comes from. This is just the evaluation of the final position of the main line, the so-called principle variation (PV).

This leads to a couple of problems, first of all that the engine might underestimate strong moves along the way. Secondly, the engine might run into something called ‘horizon effect’ where there is a tactic in the final position, but the computer misses it because it didn’t go deep enough. And another issue is that the evaluation can often depend on many moves which are hard to find.

Takeaways

Firstly you should remember that engines are very strong, but not perfect so you should always question their moves and evaluation. Secondly, engines can give very confusing lines in quiet positions because there are many moves with a similar evaluation and the engines try to calculate in a position without tactics. And finally you should always make an effort to try to understand why the engines gives it’s recommendations and evaluations.

If you enjoyed reading this post, please consider supporting me on Patreon.