[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gnubg] Re: Gnubg: Rollout options
From: |
Nis Jorgensen |
Subject: |
[Bug-gnubg] Re: Gnubg: Rollout options |
Date: |
Mon, 21 Oct 2002 22:02:10 +0200 |
On 19 Oct 2002 15:37:23 -0700, address@hidden (Zorba) wrote:
>> I think it would be useful to randomise the sequences so that if you
>> terminate a rollout before it finishes, you will probably get more
>> meaningful results. So for multiples of 36, randomise the sequence of
>> first rolls, for multiples of 1296, randomise the sequence of first
>> roll pairs.
I have been "lurking" with some ideas for doing this for a while. I
don't feel that I have found the perfect way yet. My idea is in fact
to not randomize all 1296 pairs of rolls, but instead randomize and
repeat the 36 first rolls, then randomize and repeat the second rolls
as well, with an offset that is increased for each 36 rolls. This
would allow for rotation of the two first rolls no matter what the
length of the rollout is (!). See pseudocode below.
Unfortunately, I do NOT see a way of easily extending this to the 3rd
or further rolls.
>Yes. If not too complicated, the rolls could also be picked based on
>their equities and assure a spread around the average equity after all
>36 rolls, similar to "reduced evaluations".
I just looked at the code for reduced evluations ... it doesn't look
to me like it is looking at actual equity when choosing which third of
the rolls to try. Which I think is good (too much source for small
bias which might go undetected ...).
I am very sceptical towards any introduction of equity-based
selections of rolls - it introduces too much possibility of untracable
bias.
>I think this might not only improve interrupted results, but also the
>final result of a rollout. It might be a bit difficult to implement
>though, but perhaps it's not so bad if you only allow 216, 324, 432
>and 648 trials and then pick the second rolls like 17%, 25% 33% and
>50% speed 2-ply evaluation would. You could then rotate the first roll
>and also assure some kind of good spread for the second roll. Similar
>schemes could be used for the third roll if trials are more than 1296,
This is almost achieved by my suggestion.
Pseudocode
function GetRoll(TrialNumber, Rollnumber)
if TrialNumber=1 then
Rolls1 = Array containing 36 rolls in order
Randomize(Rolls1)
Rolls2 = Array containing 36 rolls in order
Randomize(Rolls2)
end if
if RollNumber = 1 then
Return Rolls1[TrialNumber mod 36]
elseif RollNumber = 2 then
Return Rolls2[TrialNumber mod 36
+ TrialNumber div 36 ]
else
Return RandomRoll()
end if
end function
--
Nis Jorgensen
Amsterdam
A coin has no memory.
Backgammon, however, is played with dice.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-gnubg] Re: Gnubg: Rollout options,
Nis Jorgensen <=