Rollout consideration and a practical example
You can choose which search interval to use in a rollout. The rollout will be
slower as shown in the table above.
Again, the user has ultimate choice but our recommendation is to use
3-ply normal, the time gained compare to 3-ply huge can be used to increase the
rollout length (resulting in 1.29 reduction of the confidence interval).
In average there is a difference every 45 moves. If there is an error
that could make a noticeable effect it will need to be in the next move or the
following one. I think a much better solution than to use larger interval is to
set the first move to use a higher ply: 4-ply will analyze up to 8 moves in
3-ply (within 0.160) so it is equivalent to a Huge interval. On top of that it
still makes a 4-ply analyze. The speed cost is not that bad as the first move
need to be calculated only 21 times (the rest of the time the program will get
the result from the cache). For the rest of the rollout using the Normal
interval keep the rollout fast.
Let’s examine an example: consider the following position and its 2-ply
analyze
|
is
Player 2
score: 0
pip: 75 |
Money session |
pip: 51
score: 0
is
Player 1 |
|
XGID=-CDBBaBB------a----bbbbcb-:1:-1:1:62:0:0:0:0:10 |
to
play 62 |
1. |
2 ply |
7/1 7/5* |
eq: +0.309 |
|
Player:
Opponent: |
67.21% (G:1.04% B:0.00%)
32.79% (G:1.20% B:0.02%) |
|
|
2. |
2 ply |
7/1 4/2 |
eq: +0.191 (-0.118) |
|
Player:
Opponent: |
62.36% (G:0.05% B:0.00%)
37.64% (G:1.27% B:0.02%) |
|
|
3. |
2 ply |
7/1 3/1 |
eq: +0.179 (-0.130) |
|
Player:
Opponent: |
61.83% (G:0.05% B:0.00%)
38.17% (G:1.36% B:0.02%) |
|
|
4. |
1 ply |
7/1 6/4 |
eq: -0.382 (-0.691) |
|
Player:
Opponent: |
42.73% (G:0.10% B:0.00%)
57.27% (G:4.20% B:0.06%) |
|
|
In this case the 3-ply Normal search interval will not analyze any
further as the 2nd move is
more than 0.080 away from the first. The Large interval will analyze the 2nd
move only. and the Huge interval will analyze the top 3 moves.
1. |
3 ply |
7/1 4/2 |
eq: +0.225 |
|
Player:
Opponent: |
63.63% (G:0.06% B:0.00%)
36.37% (G:1.14% B:0.01%) |
|
|
2. |
3 ply |
7/1 3/1 |
eq: +0.221 (-0.004) |
|
Player:
Opponent: |
63.47% (G:0.04% B:0.00%)
36.53% (G:1.21% B:0.01%) |
|
|
3. |
3 ply |
7/1 7/5* |
eq: +0.125 (-0.100) |
|
Player:
Opponent: |
58.92% (G:1.92% B:0.01%)
41.08% (G:1.27% B:0.02%) |
|
|
4. |
1 ply |
7/1 6/4 |
eq: -0.382 (-0.607) |
|
Player:
Opponent: |
42.73% (G:0.10% B:0.00%)
57.27% (G:4.20% B:0.06%) |
|
|
It now realizes the other moves are much better (rollout shows the
blunder to be 0.085).
Let’s see how this has an effect on rollouts. Let’s back up the position one
move and roll the choice leading to the position above.
Out of 21 possible dice, the 62 will make an error of 0.085. The other rolls are
played properly.
It means the average error for the next roll is 0.085/18=0.0047
We can expect that error to be carried around to the RO.
|
is
Player 2
score: 0
pip: 81 |
Money session |
pip: 51
score: 0
is
Player 1 |
|
XGID=aCDBB-BB-----a-----bbbbcb-:1:-1:-1:51:0:0:0:0:10 |
to
play 51 |
1. |
Rollout1 |
Bar/20 12/11 |
eq: -0.778 |
|
Player:
Opponent: |
10.50% (G:0.11% B:0.00%)
89.50% (G:0.81% B:0.01%) |
Conf: ± 0.001 (-0.779...-0.777)
Duration: 1 minute 04 seconds |
|
|
1 20736 Games rolled with
Variance Reduction.
Rolled for both No double and Double
Moves and cube decisions: 3 ply
|
Now let’s use the huge interval
1. |
Rollout1 |
Bar/20 12/11 |
eq: -0.782 |
|
Player:
Opponent: |
10.24% (G:0.12% B:0.00%)
89.76% (G:0.73% B:0.01%) |
Conf: ± 0.001 (-0.783...-0.781)
Duration: 1 minute 36 seconds |
|
|
1 20736 Games rolled with
Variance Reduction.
Rolled for both No double and Double
Moves and cube decisions: 3 ply
Search interval: Huge
|
As expected the error was carried on because the error happens on the very 1st move (note that the rollout was 1.5
slower).
Let’s try using 4-ply for the first move (normal interval) and 3-ply for
the rest (normal interval)
1. |
Rollout1 |
Bar/20 12/11 |
eq: -0.782 |
|
Player:
Opponent: |
10.25% (G:0.12% B:0.00%)
89.75% (G:0.78% B:0.01%) |
Conf: ± 0.001 (-0.783...-0.781)
Duration: 1 minute 12 seconds |
|
|
1 20736 Games rolled with
Variance Reduction.
Rolled for both No double and Double
First 1 moves: 4 ply, cube decisions: 3 ply
Remaining moves and cube Decisions: 3 ply
|
Using that mode
find the best move and the error is not showing. Note that this is faster than
the 3-ply Huge.
Now let’s back up another move and let’s see the influence of the error
when it happens 2 moves ahead
|
is
Player 2
score: 0
pip: 81 |
Money session |
pip: 60
score: 0
is
Player 1 |
|
XGID=aCDBB-BA-----a--A--bbbbcb-:1:-1:1:54:0:0:0:0:10 |
to
play 54 |
1. |
Rollout1 |
16/7 |
eq: +0.784 |
|
Player:
Opponent: |
89.37% (G:1.74% B:0.01%)
10.63% (G:0.11% B:0.00%) |
Conf: ± 0.001 (+0.783...+0.785)
Duration: 1 minute 19 seconds |
|
|
1 20736 Games rolled with
Variance Reduction.
Moves and cube decisions: 3 ply
|
1. |
Rollout1 |
16/7 |
eq: +0.784 |
|
Player:
Opponent: |
89.41% (G:1.73% B:0.01%)
10.59% (G:0.11% B:0.00%) |
Conf: ± 0.001 (+0.783...+0.785)
Duration: 1 minute 50 seconds |
|
|
1 20736 Games rolled with
Variance Reduction.
Moves and cube decisions: 3 ply
Search interval: Huge
|
The error is not visible anymore. This makes sense as the 0.085 error
happens only four time of 1296, creating a error of 0.000262 equity (or 0.013%
which can be seen in the winning percentage)