I used to think that too. But recently, with the implementation of syzygy tb in stockfish, it has been shown that there is a measurable gain. Of course, it all depends on what you consider to be a non trivial gain. Jean Francois Romang measured +8 elo in 60"+0.05" (single threaded).Dirt wrote:No one to my knowledge has ever shown a non-trivial gain from any tablebases with an engine with decent endgame evaluation. We need a good implementation of tablebases to do proper testing, but the multitude of different Stockfish versions is inhibiting this. It can be done, of course, but it takes some will power.lucasart wrote:Is there a non trivial gain (elo-wise) in the root_probe() stuff ?
Yet Stockfish has an enormous amount of endgame specific knowledge. But all the endgame knowledge of Stockfish is in the eval. It mostly attempts to recognize draws or drawish positions, and sometimes helps to win some tricky ones (eg. KBNK).
I think that most of the gain lies in TB probing, which allows a lot of 100% accurate pruning in the search, when there are few pieces left on the board. With 6-men TB, and assuming the cost of probing is negligible, it makes sense that there is a measurable ELO improvement.
If you look at Ronald's implementation in Stockfish, you'll see that the cost of probing is not big at all. At the root node, he sets a variable
Code: Select all
use_tb = nb of pieces if <= 6, 0 otherwise
Code: Select all
if (nb of pieces <= use_tb) {...}
Also, using a TB makes late endgames look cleaner. Often it doesn't change the outcome of the game, but it improves the manner in which this outcome is achieved. That's why users like it, even though the elo gain is tiny.