Unofficial stockfish 28.04.2013 with rtb tablebases support

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

syzygy
Posts: 5697
Joined: Tue Feb 28, 2012 11:56 pm

Re: Unofficial stockfish 28.04.2013 with rtb tablebases supp

Post by syzygy »

Vinvin wrote:
zamar wrote: ...
To implement this for Stockfish, one could do following:

- Stockfish maintains a RootMoveList (a list of moves that are searched).
- If we have a tablebase position at root, check which moves preserve the win/draw. Remove other moves from root move list.
- Let the search run as usual.

This would result in "natural" play without ever losing a win/draw. It might not be optimal from time management perspective though.
As a generalization : each time it's SF side to move only select best moves (win or draw) from TB and add +20 to score if winning (and divide by 20 when it's draw). This not only on root ...
If the TB shows a win during the search, the position should simply be scored as a win very much like how a mate is treated and the engine should not search that branch any further.
Vinvin
Posts: 5290
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: Unofficial stockfish 28.04.2013 with rtb tablebases supp

Post by Vinvin »

syzygy wrote:
Vinvin wrote:
zamar wrote: ...
To implement this for Stockfish, one could do following:

- Stockfish maintains a RootMoveList (a list of moves that are searched).
- If we have a tablebase position at root, check which moves preserve the win/draw. Remove other moves from root move list.
- Let the search run as usual.

This would result in "natural" play without ever losing a win/draw. It might not be optimal from time management perspective though.
As a generalization : each time it's SF side to move only select best moves (win or draw) from TB and add +20 to score if winning (and divide by 20 when it's draw). This not only on root ...
If the TB shows a win during the search, the position should simply be scored as a win very much like how a mate is treated and the engine should not search that branch any further.
And how to chose a move when there are a lot of moves who lead to a DTC ?
syzygy
Posts: 5697
Joined: Tue Feb 28, 2012 11:56 pm

Re: Unofficial stockfish 28.04.2013 with rtb tablebases supp

Post by syzygy »

Vinvin wrote:
syzygy wrote:
Vinvin wrote:
zamar wrote: ...
To implement this for Stockfish, one could do following:

- Stockfish maintains a RootMoveList (a list of moves that are searched).
- If we have a tablebase position at root, check which moves preserve the win/draw. Remove other moves from root move list.
- Let the search run as usual.

This would result in "natural" play without ever losing a win/draw. It might not be optimal from time management perspective though.
As a generalization : each time it's SF side to move only select best moves (win or draw) from TB and add +20 to score if winning (and divide by 20 when it's draw). This not only on root ...
If the TB shows a win during the search, the position should simply be scored as a win very much like how a mate is treated and the engine should not search that branch any further.
And how to chose a move when there are a lot of moves who lead to a DTC ?
Choosing a move is only important at the root.
j_romang
Posts: 79
Joined: Mon May 16, 2011 2:52 am

Re: Unofficial stockfish 28.04.2013 with rtb tablebases supp

Post by j_romang »

Salut Ernest,
There is still some work to have the tablebases work properly in stockfish ; I will include a non-popcount/sse version in the next release :-)
syzygy
Posts: 5697
Joined: Tue Feb 28, 2012 11:56 pm

Re: Unofficial stockfish 28.04.2013 with rtb tablebases supp

Post by syzygy »

syzygy wrote:
Marek Soszynski wrote:To be fair, this early Stockfish-rtb is more a proof of concept than a fully practical engine.
In my private engine I have now implemented a more sophisticated handling of the root position which seems to be working quite nicely. I'll try to port it to Stockfish, but it will take a few days before I have time.
Done.

If Jean-François has time, he can integrate the changes into his tree and make a new compile.