stockfish poor endgame knowledge

Discussion of chess software programming and technical issues.

Moderator: Ras

lech
Posts: 1169
Joined: Sun Feb 14, 2010 10:02 pm

Re: stockfish poor endgame knowledge

Post by lech »

The classic evaluate doesn’t match pawn endgames.
Simple example (one of many!) with a passed pawn:
[d]4k3/pp6/3KP3/8/8/8/P7/8 w - -
it is draw
It is win if the passed pawn e6 stays on e2 where his evaluate value (passed pawns) is nearly ZERO.
The other features of pawn (isolate, double, backward) are useless too.
In pawn endgames, the term advantage seems to be abstraction.
It needs to do one deeper step.
e.g. :wink:
Check material of pawn endgames (in material.cpp) and return it (if is) by a new factor e.g.: PAWN_ENDGAME = 253.
In evaluate function check factors earlier, before pawn hash table.
In the next line check this factor.
If true, omit the rest of evaluate and return the endgame part of value of position.
Maybe, the saved time will let Stockfish go deeper and check possible result.
tomgdrums
Posts: 736
Joined: Wed Dec 02, 2009 9:48 am

Re: stockfish poor endgame knowledge

Post by tomgdrums »

So the bottom line is that what you or me do "think" that is good is totally irrilevant, only real games test properly weights the feature.
I agree with this with regards to engine vs. engine type use, but doesn't this type of information effect using an engine for actual analysis?