hgm wrote:For drawn positions this is of course exactly what one should do. But it seems to me that for won positions you would have the problem that the tablebases are no help at all in winning end-games that are generally won, but very difficult to win (like KQKR). Playing by DTZ would guarantee a win, and only suffer from a cosmetic problem that this win would not be the fastest (which playing by the engine eval would also not guarantee...). Which does seem preferable.
For a position that is won, the DTZ tables are used to filter out those moves that would throw away the win. This takes into account the 50-move rule (and 3-fold repetition: after the first repetition, it just plays according to DTZ).
So the engine is guaranteed to win the position, and it will avoid 99.9% of the cosmetic problems.
Note that the first version did play strictly according to DTZ and users were terribly confused by the preference for a pawn move over a mate in two. Anyway, I will soon implement an option to enable the old behaviour for positions that are won.
velmarin wrote:Many users use these engines to analyze, of little help if in a drawn position, the engine says +3 or + 17.
I agree the user should somehow be informed of the tablebase outcome. The problem is that UCI is a restriction here, so it is not immediately clear what is the best solution.
Also note that my Stockfish tree is experimental and unsupported and primarily intended as a quick hack to show how to integrate the tables and probing code into an engine. Still, I am open to good suggestions.