1

I've been letting the engine analyze a position at depth D, then making the player's move and letting the engine analyze the resulting position at the same depth D, and then taking the difference between the first score and the second score (both from the same player's perspective, of course). This procedure has the property that it's possible to have a negative centipawn loss: it will be negative if the engine prefers the player's move to its initial choice after seeing one ply farther in the line beginning with the player's move. Is this expected and acceptable? The alternative would be to have the engine analyze the position after the player's move at depth D - 1, which would guarantee a non-negative centipawn loss.

4

No. Your assumption is based on searching everything up to depth D, but no modern chess engine would do that. It's complicated to explain, but fair to assume only some subtrees up to depth D are explored. The other trees got "cut" off for various reasons, most likely they are not good.

Chess programming is all about skipping the search tree accurately. The conditions could depend on the depth to the root, previously visited nodes, and many others. As you make a move on the board, all parameters change, even the cache for keeping the transposition table change. Trees that are previously visited may now be skipped, and vice versa. The change of information in the transposition table could have a significant impact in the new search path.

it will be negative if the engine prefers the player's move to its initial choice after seeing one ply farther in the line beginning with the player's move. Is this expected and acceptable?

Anything can happen. The difference can be positive, negative, or remain unchanged.

| improve this answer | |
  • 1
    Thank you for relieving me of my illusions surrounding how straightforward a modern engine's search function is. Is it the case, then, that you simply get an engine's evaluation with certain parameters, make the player's move, and get a second evaluation with the same parameters? That's what I'm doing right now. – DATACOMMANDER Mar 24 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.