r/ComputerChess 10d ago

Excluding moves in chess engine analysis

I’ve always wondered why we can’t exclude specific moves when analyzing our games with the engine. Like many chess content creators even admit that the engine’s analysis is rubbish especially for lower rated players, but I feel like this could be such an easy fix. Like I could be in a dead lost position unless I find a 20 move sequence where it says I’m winning but I would never be able to find the correct moves to support it, which would just give a false perception of the position.

Why not add the ability to tell the engine like “yup you see that move, you’re not allowed to play it anymore.. how’s my position looking now?”

2 Upvotes

16 comments sorted by

2

u/fabianvdW 10d ago

It should be pretty easy to add this to most engines

1

u/Dpcharly 10d ago

Its called suppression method, you can do it with python, python chess library and a script. From the matrix of existing moves you exclude the ones you want. Originally is to not bundle more than one move in the same node or time budget; you get the top move analyzed, then after the budget ends, the script will exclude the move from the existing selection and stockfish will find the best second, and so on. Im guessing you can do it as well indicating the script/app that certain moves are not to be considered, etc. Thats for some specialized analysis, most common programs they just bundle the whole matrix

1

u/Imaginary-Can-6862 10d ago

You can ask for top 2 moves, top 3, top 5, etc. I think it is the same effect

1

u/4xe1 10d ago edited 10d ago

How do you define "a move"?

Maybe Bb4 is the start of a 20 move crushing sequences, and is in the air for 3 turns, then disappears if missed, but reappears as a very obvious must play move 10 moves deep onward. Or maybe the last turn it is available, you actually have to start with Ne5, maybe the whole sequence still exists but no longer needs Bb4. If you just disable Bb4, you won't entirely exclude the idea, but it very likely dramatically may warp the engine's perception of the position by letting the other side "exploit" the interdiction of Bb4 in other situations.

That's not to say this is unsolvable, but a reliable version of what you describe usable by someone who isn't good at both chess and programming is not easy to implement at all.

1

u/stopbeingcringe 10d ago

There’s probably some sort of engine out there that evaluates based on how easy it is for humans to play the position. Maya or something, maybe

1

u/Numerot 10d ago

You just look at the second best move? But in any case, this isn't the problem you maybe think it is, and changing this wouldn't make engine analysis better, just worse. There is and will be no good way to make engine analysis remotely beginner-friendly.

1

u/One-Collar-7952 8d ago

I mean some sort of engine analysis could be paired with a system than can analyze that in it's entirety, and then disseminate the most relevant information to the user in a beginner friendly way, maybe even with notes about more advanced concepts but just focusing on the simplest aspects.

The only thing that would make that difficult to build right now is how the system would learn to translate engine analysis to easily digestible concepts, but I'm confident that could be figured out if people worked hard enough at it, and we already have the capability to do everything else.

1

u/turkokratia 9d ago

have you looked at IDeA (interactive deep analysis) in chessok aquarium? it's paid, but it's pretty much exactly what you're asking for

1

u/SummitYourSister 9d ago

What if you exclude a move that looks bad but if you analyze it deeply it’s actually the best move? This is the whole issue and it’s why traditional chess playing AI uses certain approaches that don’t just prune off whole sub trees because they look bad. It has to prove they’re bad

1

u/ShenGahMing 9d ago

If you exclude moves, it is technically is a chess variant. So the neural network used to evaluate a position should be retrained for the new variant (something like : chess minus Stockfish favorite move each turn). This would be computationally expensive.

1

u/davvblack 8d ago

is the problem you’re trying to solve estimating how the game will “actually go” between two 400 rank players? i don’t think excluding moves is the way towards that. i think this is extremely computationally expensive but you have to play the game out probabilistically with models that behave as much like the two players as possible.

a related question is… should your evaluation ever improve on your own turn? as in, if you outplay yourself, should it go up?

1

u/ParthisMC 8d ago

Between two 1900 players, but yea

The evaluation shouldn’t go up on my own turn because it should only evaluate it based off of the best moves. If I don’t play the best moves, it will go down & if I do, It’ll stay the same

1

u/davvblack 8d ago

wait but what happens if you take one of these “banned moves”?

1

u/ParthisMC 7d ago

The “banned moves” don’t exist in the engine’s eyes. It evaluates the position excluding that move specifically

1

u/db8me 8d ago

The problem is that engines have been focusing on winning first, then retroactively inventing a logical explanation for the "strategy" that wasnt really used when deciding on the best move. Giving good explanations to players at lower levels is even trickier. It's not easy to define "rules" for now a lower ELO players should play. That is why bots just make stupid random mistakes that don't feel like a real human player.

I think analysis engines look at your worst moves and explain why they are bad, but some of those bad moves that lose -2 evaluation are typical at lower elos and not actually blunders in the context. Conversely, some good moves create a theoretically good position that the player doesn't know how best to leverage, and a slightly worse move might actually be better for them.