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