# Most complicated mode for chess engines

I have used many chess engines, especially Stockfish and I want to ask you, if it possible to change its mode to the most complicated one. What I mean:

Now, most engines work as following: 1) Mate the opponent asap. 2) If it is not possible to mate him, then draw him asap. 3) If it is not possible to draw him, then delay its mate as longer as you can.

Or something similar, I don't know. So my question is if it can change, so anytime engine will choose this move that makes the game as complicated as possible.

An example: Imagine we are in a position that engine can choose two moves: A or B.

The A one, is the best defense and if the opponent is engine can mate us in minimum 30 moves. But also the win by a simple human of 2000 Elo is possible. Just applying simple theory. In 50-60 moves, human also can mate.

The B one is not good, an engine can mate us in 10 moves but this combination of 10 moves is completely unique and it is very difficult to be seen by a human, neither by Carlsen. If a mistake will be done, then we will win the opponent.

Simply said, the first move is the best one if the engine plays against an engine because it delays the mate much, but if it plays against a human it is very simple to lose. The second move is bad if the engine plays against an engine because it can be mated in 10 moves, but if it plays against a human, even against Carlsen, it is a bluff move, because this combination of the next 10 moves is completely invisible by humans and a mistake is 100% sure to be done, so engine will win human.

Is it possible to change this mode in engines? Or can an engine detect whether it plays against engine or human and adjust its moves? So if it loses and plays against human, it can choose the most complicated moves, hoping for a human-blundering...?

• For starters, it's incredibly difficult to define "complicated" to a computer. Jan 21, 2019 at 17:01
• It can be done by comparing different depths of analysis. For example, let's suppose we have the following depths of analysis (moves): 14, 18, 22, 26 and 32. If a move has a monotonic analysis in all these depths, for example, 14: +1.13, 18: +1.10, 22: +1.17, 26: +1.19, 32: +1.18, then it is not expected to be complicated. Neither for engines, maybe nor for humans. But, if the deviation is much larger for example: 14: +2.03, 18: -3.37, 22: +0.02, 26: -7.11, 32: +3.14, it is kind of complicated for both engines and humans. Jan 23, 2019 at 13:00

You are talking about playing suboptimal moves for bluffing. Stockfish is not good at that... Chess programming theories are no good because it’s hard to define a complicated position. There were research articles on this topic but it’s still an unsolved problem.

I believe you will need a good mathematics model. Stockfish doesn’t have it.

• It can be done by comparing different depths of analysis. For example, let's suppose we have the following depths of analysis (moves): 14, 18, 22, 26 and 32. If a move has a monotonic analysis in all these depths, for example, 14: +1.13, 18: +1.10, 22: +1.17, 26: +1.19, 32: +1.18, then it is not expected to be complicated. Neither for engines, maybe nor for humans. But, if the deviation is much larger for example: 14: +2.03, 18: -3.37, 22: +0.02, 26: -7.11, 32: +3.14, it is kind of complicated for both engines and humans. Jan 23, 2019 at 12:59
• @Konstantinos It won't work for sure. Evaluation score is not a good proxy for human plays.
– ABCD
Jan 23, 2019 at 13:01

This is definitely not possible in Stockfish. An engine like Stockfish plays the moves it would play against an engine, not a human. To get an engine playing with a human reasoning is very difficult due to the fact that the engine would have to determine how "human" every line is. You need a human brain to determine how complicated a specific variation is to a human.

The best you could try to get human play is to install an engine running on neural networks (LeelaChess being a good example) by using the neural network that enables the engine to play at an approximate ELO of the human you would like to simulate. Even this won't result in 100% human play.