That is a daring claim, for something you have not tested and goes against logic at the same time...syzygy wrote:Theoretically there may be cases where it goes wrong. In practice this seems to occur so rarely that I am confident that any "solution" (replace the minimax principle by somthing else?) would negatively affect playing strength.
My experience is that this is actually very common. In Chess there is almost always some backlash after materializing a gain, because while one side was occupied securing the gain the other could prepare for some retaliation. So you are almost always better off to postpose the gain to occur exactly on the horizon, conveniently push the backlash out of view.
Of course another common reason for ID not finding the shortest path first is that it initially was masked by some other line. Engines do not only switch root move now and then to reach the same position through a different path; usually they do it to realize a different objective altogether. The path to that new objective then has not been obtained through ID at all, it was found at the depth where the original plan fell through, a depth that might very well have been sufficient to already include an amount of stalling in the path to the new objective.
Delayed loss bonus also helps against other forms of minimax stupidity, btw: if the same final position can be forced starting with a sacrifice, and recouping the loss later, or by first gaining something, and having to give it up later, the latter would be preferred. (Because there you collect the delayed-loss bonus yourself upto the point where you have the give up the gain, while otherwise the opponent would get it.) The sac or gain can also be something as trivial as moving your Knight from b1 to c4 via a poor square (a3, a sac) or a good one (d2). If deeper search then reveals that going to c4 is not so hot as it first seemed, it would be better to get stuck on the good square than on the poor one...
One thing is for sure, though: resigning will never add any Elo to an engine!