zamar wrote:bob wrote:
Do you mean "protected passed pawn" as opposed to "unstoppable"???
No, this is the problematic position near the leaves.
[d] 5N2/8/6p1/7p/1pP5/4p1P1/k6P/3K4 w - -
Because of terrible static misevaluation (+7 or sth like that), stockfish never reaches a position where black promotes. Huge misevaluation makes possible that in search white can make even two null moves here and still thinking it's winning.
Even if black's pawn was in b2, Stockfish's dummy evaluation calculates that white is a piece up and white has an unstoppable passed pawn. Black's two passed pawns are not able to reduce the advantage enough.
Of course human easily spots that black's pawn in b4/b3/b2 is unstoppable and promotes with check but because white has a knight Stockfish's algorithm doesn't recognize this.
Do you have some code in crafty to recognize these kind of positions?
I wonder if you tried to change the definition of unstoppable pawn to be more narrow.
unstoppable passed pawn should be defined as a pawn the following conditions happen:
1)you are sure that the opponent king cannot stop it
2)you are sure that the opponent cannot promote earlier(or at the same time).
3)you are sure that the opponent cannot mare earlier(I guess that 3 is less important but I composed a diagram to show that it can happen)
[d]k7/P7/K7/6p1/8/8/1P6/8 w - - 0 1
It seems that the second part is missing from the definition of stockfish(otherwise it could avoid giving a big bonus for the white pawn)
Even without the knight stockfish evaluates the position wrong and does not see that black is winning.
[d]8/8/6p1/7p/1pP5/4p1P1/k6P/3K4 w - - 0 8
I think that it may be better to avoid pruning in positions when
only condition 1 is true and condition 2 is false(and you also may want to have evaluation that is closer to draw because of uncertainty).
Uri