GNU Backgammon

Forum Archive : GNU Backgammon

Filter settings

From:   Robert-Jan Veldhuizen
Date:   18 November 2004
Subject:   Filter settings: some ideas
Forum:   GammOnLine

> Have there been any studies on what are the best filter settings?

Michael Depreli did an extensive study on this. The object was to see
how often a 0-ply filter with x candidates and tolerance y/100 would
find the best play at 2-ply, compared to either a very huge filter or no
filter at all (I don't remember that last one exactly).

My own interpretation from the results (and some experiments I did
myself) is that IN GENERAL, really small filters (say, 3 candidates,
0.05 tolerance) already find the best move very often (90-95% range I
think I remember, don't recall his exact figures). A bit larger filter,
such as 5 candidates with 0.08 tolerance and I think you're getting near

Another result from his table I memorized as follows: IN GENERAL, if you
use x candidates, something like a tolerance setting 1.6*x/100 might be

Based on this, if I just want GNUBG to PLAY (fast) at 2-ply, 3
candidates, 0.05 tolerance looks pretty good. For a rollout of the
opening position, or something very close to the opening position, with
a money-like score, I might also use such a small filter to save a lot
of time and because I think errors will cancel out mostly for both sides
in an (almost) symmetrical position.

Normally though, I'd use 5 candidates with 0.08 tolerance for a rollout
and more if I don't mind the extra time or when I think 0-ply
evaluations are relatively bad (containment f.i.) or when I think there
might be more candidate moves for many positions than is usually the
case (this often happens when checkers are spread out all over the board
for both sides, rather than just concentrated on a few points).

So, my "better" settings might look like 6/0.10, 7/0.11 or 8/0.13.
Normally I wouldn't go further than that, even though occasionally it
might matter. A question of speed vs. accuracy.

About changing the filter because of score/cube considerations:

I can't find a reason to change the number of candidates. Changing the
tolerance seems sort of logical though; here's a few thoughts:

*  With a dead cube, differences between plays tend to be clearly
   smaller than with a live cube. So, I usually lower the tolerance
   setting in cubeless situations. 5/0.08 might translate into 5/0.06
   with a dead cube for me.
*  If it's (also) a gammonless game, that also makes differences between
   plays smaller usually. At DMP, I'd pick 5/0.05 (or 8/0.08, etc.).
*  If gammons are worth MORE than for money, for one player or both, I
   tend to use larger tolerance settings. 5/0.08 would become 5/0.10 at
   -4,-4, 2-cube f.i.
*  Similary, if a position looks volatile with regard to cube usage, I
   might also increase the tolerance a bit. When one player is close to
   a cube, differences between plays tend to be higher than when the
   position is balanced.

For ANALYSIS, I use a larger filter (currently 13 candidates, 0.20
tolerance) because I don't mind the extra time there, and I like to have
many moves included at the higher plies (especially if they turn out to
be best of course, but also for comparison).

My filter still leaves out good (but not best) plays sometimes and very
rarely it misses the best play, but since I go through my matches move
by move anyway I don't mind that. If I would want a filter that is
nearly fool-proof at the cost of needing much more time, I think I'd go
for something like 25 moves, 0.40 tolerance or even 40 moves, 0.50
tolerance, to analyze at 2-ply.

On a final note: it's hard to give any objective advice. First of all,
it's a trade-off between speed and accuracy, and the optimum will be
different depending on the situation, method, objective and person.
Second, you'd really need a perfect rollout to compare the performance
of several filters and we don't have a perfect bot. A 2-ply rollout with
a huge filter might be sufficient, at least for some positions, but with
such a huge filter the rollout will be very slow too. Third, you'd need
an awful lot of different positions and rollouts with various filter
settings before you can start to generalize.
Did you find the information in this article useful?          

Do you have any comments you'd like to add?     


GNU Backgammon

Analyzing GamesGrid matches  (Roy Passfield, Dec 2001) 
Batch analysis tool  (Øystein Johansen, June 2004)  [GammOnLine forum]
Cache size  (Ned Cross+, Mar 2004)  [GammOnLine forum]
Compiling for Windows  (Øystein Johansen, Jan 2002) 
Edit mode removing checker from bar  (Scott Steiner+, May 2003) 
Entering an annotated match  (Albert Silver, Dec 2003)  [GammOnLine forum]
Error rates: Gnu vs. Snowie  (Raccoon, Mar 2006)  [GammOnLine forum]
Even-ply/odd-ply effect  (Raccoon, Nov 2004) 
Even-ply/odd-ply effect  (Tom Keith+, Oct 2003) 
Even-ply/odd-ply effect  (Scott Steiner+, Dec 2002) 
Filter settings  (Robert-Jan Veldhuizen, Nov 2004)  [GammOnLine forum]
Gnu 0.13 versus Jellyfish and Snowie  (Torsten Schoop, Aug 2003) 
Gnu 0.13 vs. Snowie 4  (Albert Silver, June 2003) 
Gnu 0.14 vs. Jellyfish  (Michael Howard+, July 2003) 
Gnu versus Snowie and Jellyfish  (Michael Depreli, Oct 2005) 
How luck factor is calculated  (Gregg Cattanach, Aug 2002) 
How rollouts work  (Gary Wong, July 1999) 
How to enter an illegal move  (Øystein Johansen, Aug 2003)  [GammOnLine forum]
Importing .gam files  (PAR+, Mar 2005) 
Importing PartyGammon matches  (rew+, July 2006) 
Improving your game using GnuBG  (D.U.G.+, Nov 2002) 
Installing on Windows  (maareyes, Oct 2001) 
Interpreting JSD's  (Adrian Wright+, Feb 2005)  [GammOnLine forum]
JSD's and confidence intervals  (Daniel Murphy+, Jan 2005) 
Logging rollouts  (Øystein Johansen, Oct 2004)  [GammOnLine forum]
Luck rate  (Kees van den Doel+, May 2002) 
MWC versus Equity (EMG)  (Ken+, Apr 2005)  [GammOnLine forum]
Manually entering first roll  (Andreas Graf+, Apr 2005) 
Match equity tables  (Raccoon, July 2005)  [GammOnLine forum]
Personal reflections  (Louis Nardy Pillards, Sept 2002) 
Playing two computers against each other  (Stanley E. Richards+, Mar 2008)  [GammOnLine forum]
Python scripting  (Øystein Johansen+, Nov 2004) 
Quasi-random dice in rollouts  (Ian Shaw, Mar 2004)  [GammOnLine forum]
Question marks in game list  (Jim Segrave, July 2005) 
Questions and answers  (Jim Segrave+, Jan 2003) 
Questions and answers  (Jørn Thyssen, Aug 2002) 
Restarting a rollout with different settings  (Jim Segrave, Apr 2005)  [GammOnLine forum]
Restarting a rollout with different settings  (Robert-Jan Veldhuizen, Apr 2004)  [GammOnLine forum]
Rollout settings  (geoff arnold+, Apr 2007) 
Rollout settings  (Stick+, Nov 2005)  [GammOnLine forum]
Rollout settings  (Robert-Jan Veldhuizen, Mar 2004)  [GammOnLine forum]
Rollout settings  (Ian Dunstan, Aug 2003)  [GammOnLine forum]
Rollout settings for the impatient  (Robert-Jan Veldhuizen, June 2004)  [GammOnLine forum]
Running rollouts in background  (Bruce+, Apr 2004)  [GammOnLine forum]
Saving rollout results from command-line interface  (Jeremy Bagai+, Apr 2006)  [GammOnLine forum]
Saving rollouts  (Mislav Radica+, May 2006)  [GammOnLine forum]
Setting GnuBG's playing strength  (JP White, Sept 2001) 
Setting skill level  (Jim Segrave, Apr 2004) 
Setting up and saving a rollout  (Albert Silver, Dec 2003)  [GammOnLine forum]
What's GNU?  (Gary Wong, Oct 2001) 
Which player is player 0?  (Neil Kazaross+, Oct 2004)  [GammOnLine forum]

[GammOnLine forum]  From GammOnLine       [Long message]  Long message       [Recommended reading]  Recommended reading       [Recent addition]  Recent addition

  Book Suggestions
Computer Dice
Cube Handling
Cube Handling in Races
Extreme Gammon
Fun and frustration
GNU Backgammon
Luck versus Skill
Magazines & E-zines
Match Archives
Match Equities
Match Play
Match Play at 2-away/2-away
Opening Rolls
Pip Counting
Play Sites
Probability and Statistics
Source Code
Strategy--Bearing Off
Strategy--Checker play


Return to:  Backgammon Galore : Forum Archive Main Page