On Sat, Jun 22, 2024 at 12:22:27PM +0200, Frank Berger wrote:
Hi all,
I have a question about movefilter and the cli.
I want to use GnuBG by the cli, mainly eval and hint.
For eval it works as expected, here an example:
set lang C
set evaluation chequerplay evaluation plies 2
set evaluation cubedecision evaluation plies 2
set matchid UQngABAAIAAE
set board t20DAAa3OM8AAA
eval
eval evaluates the current position only, not the possible checker plays
or cube action, so the move filter is irrelevant. The evaluation is done
at the ply level you asked.
BTW I set lang to C so I don’t have to deal with different decimal point/comma
stuff.
So far so good but when I use hint like here:
set lang C
set evaluation chequerplay evaluation plies 2
set evaluation cubedecision evaluation plies 2
set matchid UQklAVAAQAAE
set board NrbEBRCD9wYDIA
hint
hint, on the other hand, evaluates multiple checkers play. The
movefilter is used for plies higher than 0. The "show evaluation
movefilter" explains what the various parametrs mean. For the "world
class" level, which is apparently what you had as default, it is:
(No game) show evaluation movefilter
`eval' and `hint' will use:
Chequer play:
Neural net evaluation:
2-ply evaluation.
Using pruning neural nets. Cubeful evaluations.
Noiseless evaluations.
Move filters:
Move filter for 1 ply:
keep the first 0 0-ply moves and up to 8 more moves within equity 0.16
Move filter for 2 ply:
keep the first 0 0-ply moves and up to 8 more moves within equity 0.16
Skip pruning for 1-ply moves.
[...]
In the above position the hint result is:
1. Cubeful 0-ply 7/5 6/5 Eq.: -0.117
0.553 0.215 0.005 - 0.447 0.106 0.002
0-ply cubeful prune [expert]
2. Cubeful 0-ply 13/11* 7/6 Eq.: -0.344 (-0.227)
0.488 0.181 0.006 - 0.512 0.152 0.010
0-ply cubeful prune [expert]
3. Cubeful 0-ply 13/11*/10 Eq.: -0.364 (-0.247)
0.488 0.182 0.006 - 0.512 0.162 0.011
0-ply cubeful prune [expert]
etc...
The best move is clear enough that there are no other "moves within
equity 0.16" and the evaluation stops at 0 ply.
I get only 0-ply evaluation. I found that others setup the movefilter, what
seems a bit strange to me because in the configuration are already move filters.
When I use the same reasonable movefilters like here:
set evaluation movefilter 1 0 0 8 0.16
it doesn’t make a difference (I tried 0,16 too) only when I disable the move
filters like here for 2-ply
set evaluation movefilter 2 0 -1 0 0
set evaluation movefilter 2 1 -1 0 0
If you disable the filter, or if you use the supremo level which is
Move filters:
Move filter for 1 ply:
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Move filter for 2 ply:
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
the result would be:
1. Cubeful 2-ply 7/5 6/5 Eq.: -0.117
0.553 0.211 0.005 - 0.447 0.106 0.003
2-ply cubeful prune [world class]
2. Cubeful 2-ply 13/11* 7/6 Eq.: -0.356 (-0.239)
0.490 0.183 0.007 - 0.510 0.160 0.009
2-ply cubeful prune [world class]
3. Cubeful 2-ply 13/11*/10 Eq.: -0.386 (-0.269)
0.489 0.186 0.007 - 0.511 0.173 0.010
2-ply cubeful prune [world class]
Moves 2 and 3 are now close enough at 0 ply to be evaluated more deeply.
Another possibility is to raise n in the "keep the first <n> 0-ply
moves". It probably makes sense only for analysis or hint, not for
actual play or rollouts.
But in this case a good value for n is not obvious. 1 is dubious and
could lead to issues like in
https://www.bgonline.org/forums/webbbs_config.pl?read=213668
Then how much? 2? More? Something somehow correlated to the "more moves
within equity" parameters?