Hi all!
I'm trying to rollout a position as cubeless moneygame. I think I see a bug in
GNU Backgammon. So
here is my position:
GNU Backgammon Position ID: 960BAMCw+0MAAA
Match ID : cAkAAAAAAAAA
+13-14-15-16-17-18------19-20-21-22-23-24-+ O: gnubg
| | | O O O O O | O 0 points
| | | O O O O | O
| | | O O |
| | | O |
| | | O |
v| |BAR| | (Cube: 1)
| 7 | | |
| X | | |
| X | | X |
| X | | X X X | On roll
| X X | | X X X | 0 points
+12-11-10--9--8--7-------6--5--4--3--2--1-+ X: oystein
I strongly believe that this is a pretty simple position to play and I think
that X (on roll) will
lose about 15% gammon. It should not be hard to roll this out.
I generate this command file:
[oystein@jupiter gnubg_cubeless_rollout_bug]$ cat rollout.cmd
set rng mersenne
new match 0
set turn 1
set board 960BAMCw+0MAAA
set rollout trials 1296
set rollout cubeful off
set rollout initial false
set rollout quasirandom on
set rollout truncation enable off
set rollout bearofftruncation exact off
set rollout bearofftruncation onesided off
set rollout cubedecision plies 0
set rollout cubedecision cubeful off
set rollout cubedecision prune off
set rollout cubedecision noise 0
set rollout chequerplay plies 0
set rollout chequerplay cubeful off
set rollout chequerplay prune off
set rollout chequerplay noise 0
show rollout
show board
rollout
I can then start this rollout with the command file as input.
[oystein@jupiter gnubg_cubeless_rollout_bug]$ gnubg -t < rollout.cmd
And the result becomes:
Rollout done. Printing final results.
Current Position:
0.000096 0.000000 0.000000 - 0.999904 0.147699 0.000000 CL -1.147507
[0.000008 0.000000 0.000000 - 0.000008 0.007830 0.000000 CL 0.007830] 1r
Full cubeless rollout with variance reduction
1296 games, Mersenne Twister dice gen. with seed 642205659 and quasi-random dice
Play: 0-ply cubeful
Cube: 0-ply cubeful
Time elapsed 2s Estimated time left 0s
Estimated SE for "Current Position" after 1296 trials 0.007830
As seen, the rollout says 14.77% gammons. I can believe that! But now comes the
funny thing. Try the
same thing but with checkerplay 2-ply. That mean changing one line in the
command file to read:
set rollout chequerplay plies 2
And then run again. The new result is then:
Rollout done. Printing final results.
Current Position:
0.000098 0.000000 0.000000 - 0.999902 0.027877 0.000000 CL -1.027681
[0.000005 0.000000 0.000000 - 0.000005 0.011880 0.000000 CL 0.011726] 1r
Full cubeless rollout with variance reduction
1296 games, Mersenne Twister dice gen. with seed 642390699 and quasi-random dice
Play: 2-ply cubeless
keep the first 0 0-ply moves and up to 5 more moves within equity 0.08
Skip pruning for 1-ply moves.
Cube: 0-ply cubeful
Time elapsed 1m21s Estimated time left 0s
Estimated SE for "Current Position" after 1296 trials 0.011726
As seen here, the gammon losses are now only 2.79%. I do not believe this
result at all! Also look at
the standard deviation of this value. Could it be that the number is wrong due
to a missing
initialisation or something?
Please help me investigate.
-Øystein