bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnubg] patches for changing evaluation in mid-rollout


From: Jim Segrave
Subject: [Bug-gnubg] patches for changing evaluation in mid-rollout
Date: Tue, 29 Oct 2002 19:57:32 +0100
User-agent: Mutt/1.4i

I mistakenly sent this to Joern alone, rather than the list. 

And herewith the patches.

I did some short testing at home with small rollouts (36 trials), then
started a non-truncated rollout using a position from the Gammonline
reader's match which was widely analysed in the message forum:

Position ID: mG8LCAa78wAAAA
MatchID:     QYlqAUAAIAAA

Player 1 plays 5/off 5/3

For this I have one copy of gnubg using nontruncated, cubeful,
world-class with rotate rolls and variance reduction
I started a second copy using the same initial settings, then
switching to Expert evaluation after the 5th ply. 

Both move rollouts were started at the same time (about 1AM). When I
left this morning, after 8 hours on a 800MHz machine, the copy which
uses separate evaluation for later moves had processed 589 moves, the
one doing all world-class had done 505. So it looks like a significant
speed up. I will compare the results when I get home, the earlier
short trials with random positions seemed at first glance to give
results which varied by at most .001 to .002 in the various
probabilities.

Some comments on the patches:

The scale of changes in gtkgame.c was such that I couldn't build a
patch file which applied cleanly. So I did a quick'n'dirty hack - 
I #ifdeffed out everything from the definition of a rolloutwidget
until the end of SetRollouts(), then put my new code in.

The Settings/Rollout window now has 6 pages. There is a general page
with the common settings, then individual pages with chequer and cube
eval setups for player 0 first plies, player 1 first plies, player 0
later plies, player 1 later plies, and the eval to use at the
truncation point.

There are two checkboxes in this page which don't actually correspond
to anything stored in a rollout context:

[ ] Cube decisions use same settings as Chequer Play (default on)
[ ] Use same settings for both players (default off)

Tickiing the first will grey-out all the cube eval setups on the
various pages and, when you click OK, the chequer setting will be
copied into the corresponding cube setting of the rollout context.

Ticking the second will grey-out everything on the player 1 pages and
change the title of the tabs for player 0 to say 'Both'. Clicking OK
will copy the settings of player 0 to player 1 for both early and late
evaluations. Clicking both will copy the Chequer play eval of player 0
to Cube player 0, Chequer player 1, Cube player 1 and similarly for
the Late settings.

I only realised when I got to actually using the expanded evalcontext
that there is no current use for a Cube eval for truncations. This
could be removed.

I also added an explicit Truncate Rollouts checkbox, rather than
depending on setting the Truncation ply to 0. It simplifies some
things.

The show rollout output attempts to discover if the players have the
same settings and/or the cube and chequer settings are the same, in
which case the output is much shorted. If you use different cube and
chequer settings for each player, the overall output is, to put it
mildly, lengthy.

I was surprised that the speedup from using a more relaxed evaluation
wasn't more than it seems to be, while an approximately 15% reduction
in rollout time is good, I'd actually thought it might be larger.

Anyway, attached is a set of patches against the source from 29 Oct at
about 10AM. It compiles and seems to run, but one never knows...

-- 
Jim Segrave           address@hidden


Attachment: rollout.patches.gz
Description: application/gunzip


reply via email to

[Prev in Thread] Current Thread [Next in Thread]