Thursday, June 30, 2022 09:56

Thinking about Computer Analysis

I got a number of wonderful gifts for Christmas. Among them eNotate and I just ordered Fritz 12 from the USCF Sales outlet on Amazon! Yay!

Update late morning 12/26: Tomorrow’s blog post will detail some of my troubles – it turns out I may or may not be able to use the Fritz 12 I ordered. :(

The rest of this post may not be quite oriented to the beginning player – we’ll have to see! I am discussing theoretical options in regards to computer postmortem analysis for weaker players below the cut.

Chess Databases (such as my ChessBase 2007 Light Premium) allow one to activate a playing program to analyze positions in a game. It can be a powerful tool to help you see where you went wrong, where you went right, and where you made a solid move but there is something better. (Not to mention that if you’re a Club Player writing a Chess Blog, it helps you to avoid recommending blunders!)

But one has to use them intelligently. If your goal is improvement, you can’t simply let the program analyze for you, look at it and move on and think you have actually learned something to help you in your game. I believe chess improvement is in part a combination of memorization, variation conditioning via positive and negative feedback, and learning to think differently while playing your game. Letting a computer figure things out for you can sabotage the last of these. (Arguably the most important of the three.)

It is still useful, and probably necessary at some level of play, to allow your computer to help you analyze positions.*

One problem, though, is that the advice isn’t always helpful. It is all well and good that moving White pawn to a3 on move 18 cements a positional advantage that comes to fruition with best play by both sides on move 32… Which is useful only if you reach that position itself, or a position in a future game that matches the need to put a3 with a positional advantage 18 moves later. ;)

And that is if the player can even figure that out. There are many times I cannot figure out why the program decided a next move makes sense. Sure, you get to the end of the recommended line and things look good. But I can’t figure out how to apply the program’s reasoning the next time I am in a game. (The same can apply to studying Grandmaster games.) Or there is a different move, still good, but not the program’s first choice that I can understand.

One method that may help bridge the gap: Cripple the program a little. No, seriously. Let the program calculate out on only a certain number of plies** ahead. This method is actually used by some playing programs to reduce their playing strength and give a weaker player a “fighting chance.” But limiting the ply depth of the search algorithm might also limit the program to the best options possible at the limit of your depth to understand.

Another advantage: If your program is searching to a reasonably low fixed ply depth, it may possible for it to calculate all possible board positions!*** Or at least, the reasonable positions.

Edited to add 12/26 11AM: As I was adding Rybka 2.2 to ChessBase this morning I discovered that one of its parameters is a way to adjust the Elo performance of the Engine. This may be a more efficient way to ‘dumb down’ the computer analysis to a more understandable level. I’m not sure if this is a general parameter for UCI engines or if it is something particular to Rybka. (Though I still think my fixed-ply idea has a little better merit.) It still carries the same risk as below in so far as limiting the computer’s strength may provide less-than-optimal analysis.

This has a risk as well, depending on how much you limit the search depth. If you limit to 8 ply, for instance, and the 8th ply looks cool but leads to a forced mate just outside the ply depth… Not good!

There is no single method that I’m aware of that can make this perfect. Another big factor: How far do you currently look ahead? (Both generally and in depth on candidate moves.) I think setting the engine to that level (or that level plus one) might lead to the most rapid improvement to the next level of one’s play, as well as allowing for increasing that ply depth over time as one’s strength improves.

I’m toying with the following concept for my own study:

ChessBase allows one to open multiple engines to analyze a position with. My poor and aged laptop isn’t quite up to snuff for this, but I have done it and it is possible. What I might start doing: Engage one engine in a full-power analysis mode, and then engage the other engine in a fixed-ply mode. (Maybe use different engines, maybe use two parallel-running copies of the same – don’t know yet.)

My immediate challenge is in learning how to issue the instructions via the UCI interface to limit the program to the ply depth I want.

This is one avenue I’ll be testing in the next few weeks and months to help me improve and thus better enjoy my chess. I’ll post the technical details as I am able to make it occur, and I hope the above might help you to better

Enjoy your Chess!

=-=-=

Footnotes

* Another method that some find useful: Run through the game manually the first time through. As you identify various candidate moves and variations – better and worse – in your manual analysis, enter them as new variations. Then use the program to either confirm or refute your judgment. This is also a powerful improvement method.

** A “ply” is a single move by a player. 1. e4 e5 2. Nc3 would be “3 plies.” 1. e4 e5 2. Nc3 Nf6 is 4 ply. But if you’re starting out from Black’s first move through Black’s second move (1. …e5 2. Nc3 Nf6,) you have returned to 3 ply. It is a common term in the field of computer chess.

*** (I haven’t done the math on this – I’m first guessed the number of fixed ply positions should be n*(p!), where n is the number of possible moves for the player and p! is the factorial of the ply depth. An awesome number, but reachable.

Actually, on second thought as I type this, the actual equation would probably be a sum iteration of the possible candidate moves for each side in a given position multiplied by the factorial of the ply depth remaining. I’m not sure how to write that mathematically, but I’ll learn to just for the joy of learning! ;) This is an even larger awesomely huge number unless there are very few possible move candidates and also the ply depth is extremely limited.

But, from experience, I know that my playing programs get up to 12 or 13 ply depth fairly quickly by using various pruning and candidate move selection methods. I think my proposal is still sound, though the math in a brute force analysis does not add up.)

Tags: ,

Comments are closed.