Sorry HG, but I´m still not convenced that iterative deepening not solve this.
Let me try to explain more my reasonig with an example (of course a single example do not proof nothing and you said yet that could be usefull sometimes but sometimes not. But I think the solution to the example you gave me is more related with quiescense search and the purpose of give an example is to be sure you understand my idea):
We are talking of situations where exists a possibilitie of real gain, a situation where if the capture is doing now, the engine gains a piece but if do not capture it now, the opponent could save it.
I think the situation you proposed as an example where the valuation of the position of the king after promotion drives the engine to postponed the capture to push beyond the horizon the better position of the king, I think is a horizon effect that I do not pretend to solve with iterative deepening.
May be my thought is too much influenced by my actual stage of evaluation function... just count material!
Suppouse the capture could be done in ply 1 or ply 3 but if it is not do it in ply 1, in ply 2 the opponent could made a move that allows it to save the piece.
Example:
[d]4k3/7b/8/1p2ppp1/P4b2/3R2P1/1K1P3P/2B5 w - -
Here Soberango with search depth in 3 (in fact all the discusion here made for depths 1, 2 and 3 could be done for depths 21, 22 and 23), could find as best move axb5 seeing one of this six (wich find first) as best line (remember Soberango just count material and gives 300 cP to bishops):
1) a4xb5-Bxd2;Bxd2 score:+300
2) a4xb5-Bxg3;h2xg3 score:+300
3) g3xB-e5xf4; a4xb5 score:+300
4) g3xB-g5xf4;a4xb5 score:+300
5) g3xB-b5xa4;f4xe5 score:+300
6) g3xB-b5xa4;f4xg5 score:+300
Suppouse then that, just cause find it first and all others gives the same score, Soberango choice 1) axb5?
The opponent do then e4!
Then Soberango needs to save the rook alowing opponent to save the bishop:
For example: axb5-e4!; Rd5-Bc7... score: +100
(Soberango did not saw ...-e4 in the previous move cause ...-e4xR was beyond its depth 3 horizon):
a4xb5-e4?;g3xB score=+400
But with iterative deepening:
When depth=1 the best move is
gxB score:+300
When depth=2 the best move is one of this 3 (wich find first)
1) gxB-b5xa4 score:+200
2)gxB-e5xf4 score:+200
3)gxB-g5xf4 score:+200
a4xb5... could not be the best move anymore cause gxB was found first because for iterative deepening I choice first the best move of previous depth!!!!
Whith depth=3 the best move is one of this 4 (depends on wich was found first):
1) gxB-b5xa4;f4xe5 score: +300
2) gxB-b5xa4;f4xg5 score: +300

3) gxB-e5xf4;a4xb5 score: +300

4) gxB-g5xf4;a4xb5 score: +300
I hope I did not missed any option that invalidates my reasoning.
Thanks again and again for your time in case you want to use it for it!!
