bug-gnubg
[Top][All Lists]
Advanced

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

Re: [Bug-gnubg] Cmarked rollouts some moves stopping short of set trial


From: Philippe Michel
Subject: Re: [Bug-gnubg] Cmarked rollouts some moves stopping short of set trials
Date: Sun, 17 Jan 2010 13:51:11 +0100 (CET)
User-agent: Alpine 2.00 (BSF 1167 2008-08-23)

On Sun, 17 Jan 2010, Philippe Michel wrote:

[...] I get the same kind of behaviour all the time [...] It doesn't
particularly shock me [...]

On the other hand, there are other problems in the stop on JSD code :

This :

    /* it was stopped, catch it up to the other moves and resume
       rolling it out. While we're catching up, we don't want to do
       these calculations any more so we'll change the minimum
       games to do */

doesn't work with multiple threads. If a move seems weak enough, then gets close again after the other candidates have rolled out for some more trials, it never catches up. It restarts but the skipped trials are definitively missed.

It's even worse than that. Sometimes a candidate that should restart in the above scenario doesn't.

Consider the following capture of rollout started from the CLI :

24/23 13/9:
  0.501 0.143 0.005 - 0.499 0.196 0.021 CL  +0.019 CF  +0.019
 [0.003 0.004 0.001 - 0.003 0.007 0.003 CL   0.006 CF   0.006] 1r
Full cubeful rollout with var.redn.
855 games, Mersenne Twister dice gen. with seed 846192569 and quasi-random dice
Stop when best play is enough JSDs ahead: limit 2.326 (min. 324 games)
Play: supremo 2-ply cubeful prune [world class]
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
Cube: 2-ply cubeful prune [world class]
24/23 24/20:
  0.491 0.122 0.006 - 0.509 0.200 0.018 CL  +0.000 CF  +0.000
 [0.004 0.006 0.001 - 0.004 0.011 0.006 CL   0.009 CF   0.009] 3s 1.720
Full cubeful rollout with var.redn.
324 games, Mersenne Twister dice gen. with seed 846192569 and quasi-random dice
Stop when best play is enough JSDs ahead: limit 2.326 (min. 324 games)
Play: supremo 2-ply cubeful prune [world class]
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
Cube: 2-ply cubeful prune [world class]
13/9 6/5:
  0.503 0.137 0.002 - 0.497 0.227 0.037 CL  +0.018 CF  +0.018
 [0.004 0.004 0.004 - 0.004 0.008 0.005 CL   0.009 CF   0.009] 2r 0.111
Full cubeful rollout with var.redn.
846 games, Mersenne Twister dice gen. with seed 846192569 and quasi-random dice
Stop when best play is enough JSDs ahead: limit 2.326 (min. 324 games)
Play: supremo 2-ply cubeful prune [world class]
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
Cube: 2-ply cubeful prune [world class]
24/20 6/5:
  0.486 0.127 0.006 - 0.514 0.225 0.031 CL  -0.010 CF  -0.010
 [0.007 0.006 0.003 - 0.007 0.013 0.006 CL   0.016 CF   0.016] 5s 1.720
Full cubeful rollout with var.redn.
325 games, Mersenne Twister dice gen. with seed 846192569 and quasi-random dice
Stop when best play is enough JSDs ahead: limit 2.326 (min. 324 games)
Play: supremo 2-ply cubeful prune [world class]
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
Cube: 2-ply cubeful prune [world class]
13/8:
  0.491 0.130 0.005 - 0.509 0.169 0.013 CL  -0.003 CF  -0.003
 [0.004 0.005 0.008 - 0.004 0.008 0.003 CL   0.009 CF   0.009] 4r 1.907
Full cubeful rollout with var.redn.
496 games, Mersenne Twister dice gen. with seed 846192569 and quasi-random dice
Stop when best play is enough JSDs ahead: limit 2.326 (min. 324 games)
Play: supremo 2-ply cubeful prune [world class]
keep the first 0 0-ply moves and up to 16 more moves within equity 0.32
Skip pruning for 1-ply moves.
Cube: 2-ply cubeful prune [world class]
Time elapsed 9h21m27s Estimated time left 5h33m35s
Estimated SE for "24/23 13/9" after 1296 trials   0.004

It exhibits every problem :

- move 3 is a few games behind move 1, maybe because it leads to longer games. When the rollout stops, it will probably be a little short of 1296 like in Michael Deprelis's report

- move 5 was stopped for some time because it looked clearly weaker. It restarted but didn't caught up and even if it remains in contention until the end, he'll get only about 440-450 more trials, like moves 1 and 3, and will finish with only 930-940 instead of 1296 or almost so.

- moves 2 and 4 were stopped like move 5, but never restarted although the are now only 1.72 JSD behind.


This last problem seems to be avoided with the patch below :

--- rollout.c.orig      2009-12-29 20:25:13.000000000 +0100
+++ rollout.c   2010-01-13 22:00:44.000000000 +0100
@@ -1033,17 +1033,15 @@
with other moves, because it's been stopped for a few trials */
                                        if (fNoMore[ajiJSD[alt].nOrder]) {
/* it was stopped, catch it up to the other moves and resume rolling it out. While we're catching up, we don't want to do these calculations any more so we'll change the minimum
                                                   games to do */

fNoMore[ajiJSD[alt].nOrder] = 0;
- if (rcRollout.nMinimumJsdGames <= altGameCount[alt]) - rcRollout.nMinimumJsdGames = - altGameCount[ajiJSD[alt].nOrder];
+                                               (*active)++;
                                        }
                                }
                        }
                }






reply via email to

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