[d]8/8/4k3/4P3/2bP4/2P1K3/3B4/8 w - - 0 1
well, this is a draw. Presumably, no engine uses 7-men tbs, so, as a general eval rule does not help here, the only way to make your engine not look stupid is, if you see that, white having score advantage more than 3 full pawns, and the score does not rise by more than half a pawn in the next 10 moves, this is simply a draw.
No pawn sacrifices that could not be seen in the search.
In this case, after 10 played moves, your engine will show 0.0 score, no elo gain, but how nice to watch by a human?
Inasted, the other option is to shuffle another 50 moves with huge artificial winning scores.
[d]6k1/5p2/4r2p/8/3Q4/8/6P1/6K1 w - - 0 1
Typical endgame fortress.
Eval changes might solve similar fortresses, but you have to specify a lot.
Instead, simply declaring draw, when you see score is above 3 full pawns in late endgame and has not changed up by more than half a pawn in the last 10 moves, should be the right solution.
How nice to see an engine showing 0.0 here after 10 played moves!
Otherwise, without 7-men tbs, we are to witness 50 moves shuffling here and there, with scores trying to convince us white is winning.
Actually, I do not see an exception to this rule in late endgame, does anyone?
OK, this does not gain you elo, as it does not cut the tree, does not pick optimal moves, and might even lose half an elo or so, as an additional rule is specified, but play will certainly look much more appealing and human-like.
Actually, I am not certain specifying such a rule will lose more than 0.25elo.
[d][d]8/1b6/8/8/7p/3k2pP/6P1/5K2 w - - 0 1
Seemingly, the rule also applies in Vincent's position above: black leads by more than 3 full pawns in terms of score, the next 10 moves the score does not improve by more than half a pawn, therefore the game is a draw.
This is possible of course, as in the late endgame, where most fortress positions occur, there are simply no available subtle pawn breaks that the search could not easily see, in sharp distinction to rich mg positions, where such breaks mihgt be easily missed by engines.
So I really think the above rule is good to apply in engines, even if it loses 0.5 elo in the process.
Actually, does not that kind of solve most endgame fortress positions, a crux for computer chess for a very long time?
If you are close to such an endgame position in the tree, and history data after a search suggests that from ply 10 until ply 30 the score for this position in the tree does not increase by more than half a pawn, while your eval tells you you are leading by more than 3 full pawns, you might use this information to take pruning decisions; you know this is just a draw, and maybe there are other lines with smaller than 3 full pawns scores that should be preferred instead.
If this is the case, a similar patch with such a rule could even gain you some elo.
What do you think, Daniel?
Even if Daniel disagrees, I am sure Carl will support me on this.
So, in short, the suggestion to try solving most endgame fortress positions runs as follows:
you declare the game as a draw, whenever the following conditions are met:
- non-pawn material is less than 1/4 total non-pawn material
- you are leading by more than 300cps in score
- in the last 10 moves/20 plies the score has not improved by more than half a pawn
If you are close to such a fortress position in the tree, leading by more than 300cps, and from ply 5 until ply 25 the score has not increased by more than 50cps, you might even use this rule to take pruning decisions, abandoning this sterile drawish line, and instead preferring a line with a smaller eval score, but more probable to win.
So, after all, after appropriate tuning, this might even gain you elo.
What do you think of the above suggestions?

