Years ago, the engine version of Shredder 10+ had such a 'god mode' where you could enter manually an evaluation after a certain line of moves, and then going back to the original position the engine's search would be different by excluding this move line. Or as an alternative, and instead of MultiPV or Next-Best-Move, I'd like to have the ability to exclude a specific move from the search. Such a function in the UCI options would help tremendously for the analysis, woudn't it? Or is it so that engine authors don't provide such a function because it really doesn't help?

Looking for alternative procedures, I've come to examine the chess engine SugaR AI ICCF 2.50 which writes "experience" files as a learning process, and I have even found some tools to edit such a file, there is a tool called PlainToEXP.exe where you can create an experience file based on such a initial format:

fen 5k2/8/1p6/1P4K1/P4P2/1B6/3b1P2/8 b - - 2 8 move f8e8 score 10000 ply 100 result 1 e

This is essentially telling the engine that the move f8e8 would lead to a win for white - wether this is true or not is a purely secondary aspect, and I found that this has indeed led to a different search well before this line happens on the board after linking such a created experience file. This, and the persistant hashtables leads to a much faster and newly oriented search - a feature where the synergy of a good human chess analizer and a strong engine would really work well together. But maybe that ain't so for various reasons?

As nice as it is, this is not an ideal solution but more a 'workaround' for what I'm looking for. I'm really interested to find an engine that has such a function built-in in the UCI options to quickly exclude lines where I don't want the engine to lose its time for futile searches. Or at least a function that comes close to it.

Thank you in advance for your responses, infos and ideas!

  • Most engines such as stockfish supports the uci directive (searchmoves) to search only a specified move or moves. With python script, your exclude feature can be easily implemented with the help of the searchmoves feature.
    – ferdy
    May 11 at 11:29
  • Thanks ferdy for your feedback! I have not noticed this function which is inside the UCI description provided by Shredder Chess. Although doing the exact contrary it will be helpful for me. Greetings!
    – MikeTrans
    May 13 at 18:28
  • 1
    If you are using a gui, you can use the winboard gui, install stockfish engine, analyze a position with multipv, exclude, and include moves are supported.
    – ferdy
    May 14 at 2:32
  • I think that UCI allows each engine some set of "idiosyncratic" options. But tournament main optimization goal for devs, is not conducive to features that allow human training or learning by playing with the internals. Even open source. Such things would be each developper own fancy or initiative. There may have been a time where some engine were expressly made to test and show a various set of hypothetic heuristics. Even old Fritz versions had some handicap chess mode that allowed freezing some material, while letting engine do its thing on the rest. Not anymore.
    – dbdb
    May 15 at 23:47
  • I think there is a more general question that would contain yours, and I would be that UCI and ability to enter a tournament imposes internal trace upon request from any position. maintained for all versions. Well, I cheated. I gave one example of what I think is needed to answer the more general question of looking beyond the oracle usage per position inferred from engine pool based ELOS measures (based on game outcomes). So I avoid the untangible trap, but also give options to consider other means to accomplish what you would seek, and my own other non-black box ways of sparring.
    – dbdb
    May 15 at 23:50


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.