Chess Engine Tricks
Understanding the Chess Engine Displays in ChessBase and Fritz Chess Software
by Steve Lopez

Understanding the Chess Engine Display

The engine display doesn't do you a bit of good unless you can successfully interpret the information it's providing. Here's a quick rundown of the display info and what it means, beginning with a sample engine display - the engine is chewing on a position with Black to move:
chess engine

[You must be registered and logged in to see this image.]

Immediately to the right of the box that says "Fritz8", you'll see a box that says "14...Nc6 (1/36)". We'll start with the parenthesis. The "36" means that there's a total of thirty-six legal moves for Black in the current game position on the chessboard. The engine does a quick cursory ranking of these initial moves in order from roughly the most likely to roughly the least likely. The "1" means that the engine is currently considering the first move on this rough "list". As the engine proceeds with its analysis, you'll see the move change from 14...Nc6 to something else and the parenthetical value will change to "2/36". After a bit longer, it will display yet another move and the value will change to "3/36", and so on. This display gives you an indicator of how far Fritz has progressed in its analysis (and we'll return to this idea a bit later, so keep this part of the display in mind).

The "Stop" button lets you halt Fritz's analysis. The plus and minus buttons allow you to increase or decrease the number of variations shown in the variation box. In the graphic above, you'll note that Fritz is showing us three variations. We can increase this number (up to the maximum of thirty-six in this position) by clicking the plus button and decrease it down to a minimum of one by clicking the minus button. Here's a controversial point that's been argued on chess message boards for years: does increasing the number of displayed variations slow down Fritz's analysis? The answer is "yes", but unless you're trying to display some ridiculous number of lines (like all thirty-six variations), it likely won't make much of a difference - you're pretty safe to have Fritz display two or three possible continuations.

The next row starts with a "dashboard light" which is currently gray in color. Sometimes you'll see this light change to a green or red arrow. A green arrow means that Fritz has just found a variation which drastically changes the positional evaluation in favor of the moving side; conversely, red means that a radical change has been found that's in favor of the non-moving side.
The next box shows the evaluation of the best line of play that Fritz has found so far in its search. In this case, it displays the Informant symbol for "White is slightly ahead" (the little "plus over equals" sign), followed by a numerical evaluation. This value is given as a whole number and a decimal, measured down to 1/100th of a pawn (0.01). In the display above, Black's best move so far (14...Nc6) starts a variation that ends up in White's favor, but only by 37/100ths of a pawn (which is why White is only "slightly" ahead).
The "Depth" box shows how far ahead Fritz has searched. The first number (before the slash) indicates how far ahead Fritz has looked in a "brute force" search (trying to see every move, and every response, and every response to those responses, etc.). This figure is given in plies. A ply is a half-move (i.e. one move by one player), which is different from what most players normally think of when someone says "x number of moves". For example if someone says "My game lasted forty-five moves", he's talking about 45 moves for each player - this would actually be ninety plies when expressed in half-moves. So with a twelve ply brute force search (as shown in the display), Fritz is actually looking six moves ahead in the game.

The number after the slash refers to a selective search - variations resulting from forcing moves like captures and checks. Normally this number is much higher than the brute force value before the slash. I snapped the above graphic just as Fritz was starting its twelfth ply, so the values were the same at that time.

[...].When you see that number reach the total for the legal moves in a position (thirty-six in this case) and then "reset" to "1", you'll then see the brute force ply value increase by one. This is what makes that previous display important: you can see how far along Fritz's search has progressed within a given ply. For example (using the above graphic), when you see the value reach "19", you'll know that Fritz has looked at half of the thirty-six candidate moves in the current position and is starting to look at the nineteenth.

Note also that the brute force value shows the ply depth that Fritz is currently on; subtract one from this number to get the number of plies that Fritz has completely finished. Note, too, that engines don't look at every single possible move in their brute force searches. They "weed" the search tree by ignoring moves and variations that looked totally unpromising earlier in its search. That's why you'll see the "current move" value increment itself a lot faster as Fritz moves down its list of candidate moves - it's blowing off the moves that looked bad earlier in its search.
The last block shows the total number of positions that Fritz has evaluated so far. This is given as a "kN" value, which is short for "kilonodes". A "node" is one position, so a "kilonode" is propellerhead talk for one thousand positions. In the display above, Fritz has evaluated 24806 kilonodes, which means that it's evaluated 24,806,000 positions so far in its search.


The large box at the bottom is a scrolling display that lets you look at the best variation(s) Fritz has found so far. In the top variation, Fritz has found a line starting with 14...Nc6 which leaves White 37/100ths of a pawn ahead, which is also symbolized as "White is slightly ahead". The second-best variation starts with 14...Ng6 and this leaves White a bit better still (remember that it's Black's turn to move) at an advantage of a half-pawn even (0.50). The third-best variation shows White with a significant advantage (according to the Informant symbol) in which he's three-quarters of a pawn (0.75) ahead. Since it's obviously in Black's interest to play the move that's least advantageous to White, 14...Nc6 is the way to go so far. And the program provides a complete variation for each of these candidate moves, a variation which assumes best play by both players.

Sometimes you'll see a variation that displays just a single candidate move, even after Fritz has analyzed quite deeply into a position. This means that two or more of the replies to that candidate move lead to variations with evaluations equal to each other; Fritz delays displaying a complete variation line until a deeper search reveals which of these replies is the best one.

Now that you know how to read the display, you also should be able to see how useful it can be when playing over games from a database. You can start the engine, step through a game move-by-move, and watch the ebb and flow of the changing evaluation.

But sometimes you might not understand the point of a move and would like to know what the threat is...

Show Threat in the Chess Engine Display

In chess, a "threat" is defined quite simply as what a player could do if he could make two moves in a row. For example, a player might be threatening mate in one - if he could move twice in a row, his second move would mate the King. The opponent needs to make a move that blocks the threat; i.e. a move that stops the other player from mating.

The "Show Threat" toggle simply makes Fritz think that the player who just moved can move again, so Fritz will display the threatened move or variation. In ChessBase, just hit Shift-T to change the evaluation pane to show the threat:

[You must be registered and logged in to see this image.]

Note that when the pane is in "Show Threat" mode, the box displaying the name of the engine turns red - this is to remind you that you're in "Threat" mode.

The position being analyzed is still the one after White's fourteenth move, but Fritz now thinks that it's again White's move. If White could play two consecutive moves, he would capture the Knight on e5 by playing 15.fxe5 - therefore the threat in the position is 15.fxe5. It's that simple.

I deliberately changed the pane to display just the best variation so that I can show you how this display differs from the one we previously examined. When you display just one variation (whether in threat mode or normal analysis mode), you get some extra information at the end of the displayed best variation. You get the positional evaluation (which again applies to the position at the end of the proposed variation) in both symbolic and numeric formats. You also get to see how deep the engine had searched when it discovered that variation, how long it took the engine to find this variation, and how many positions were searched before the variation was discovered. In the display above, you'll see that Fritz is currently looking at the thirty-seventh of fifty-two legal moves for White (which happens to be 15.Na4), but that it found the proposed variation a wee bit earlier in its search. It shows the best variation (for White) that it's found so far; this variation leaves White materially winning (just a hair over four pawns, or a minor piece and pawn, ahead). It took a twelve ply brute force search/thirty-six ply selective search to uncover the displayed variation. The search was thirty-eight seconds old at that point and Fritz had evaluated over thirteen million positions when it found that variation.

Now that you know how to read it, go use it! You'll uncover a goldmine of information by running a chess engine while you're replaying games from your database.


—————————————————————————
© 2004, Steven A. Lopez. All rights reserved.

Steve Lopez is a professional chess writer from Maryland who has been writing about and supporting chess software for more than a decade.