What is a rollout?

A rollout (or "rolling a position out") is taking a position and playing to the end. You then take notice of the result, and use it to estimate the position's winning probabilities. This can either be done by hand, or letting a computer do it for you. Doing it by hand is very time-consuming, and the random error created during a hand-rollout is often larger than the equity differences between the positions.

This is where you will find backgammon programs very useful (provided you bought a program that does rollouts). Computers can perform rollouts much faster and more reliably than humans, thus giving more accurate estimates of a position's equity. Personally I use the program JellyFish, and often roll out positions to get reliable results of which moves are the best, and if my equity estimates during cube decisions where close to what they should be.

If you're new to rollouts you might wonder what the difference between the rollouts are. JellyFish can do 4 different types of rollouts, of which three are commonly used. The one that is least used is the "interactive rollout" where you play against JellyFish and it then records the result. This is of course just as time-consuming as doing a rollout all on your own. Therefore I use on of the three automatic rollouts.

First is the level 5 truncated rollouts. Here JellyFish takes the position it is given and plays a preset number of rolls onwards. Then its neural net analyzes the position and computes the equity (the winning probabilities). Doing rollouts this way has the advantage that it is quick and that the error percentage is low. The disadvantages is that JellyFish on level 5 is not an incredibly strong player, therefore it can make bad moves, and that you rely on the neural net's capability of evaluating a position. However, if one is looking for a fast result telling you if the move you made is good or bad, this is the preferred way of doing things.

Next is the level 5 full rollouts. Here JellyFish plays the game to the end, and it also uses the cube. The way the cube is used is quite interesting, and very simple. Before doing the rollout you enter a "settlement limit". The settlement limit is an equity number which JellyFish uses to simulate cube use. When a position reaches the settlement limit JellyFish will turn the cube and record a win for the player doubling (cubes are never accepted). It will then continue playing, and if the game turns around and the cube is again turned, it will record a win for the other player. At the end of the game JellyFish will record the result and use it for the cubeless equity. A level 5 full rollout therefore gives 4 equity figures: cubeless, cube centered, cube owned by player on roll, and cube owned by player not on roll.

The advantage of a level 5 full rollout is that it uses the cube. The disadvantages is that the level of error is much higher, and it takes more time. JellyFish also plays on level 5, so there's quite a possibility of it playing incorrect moves. Lastly, the settlement limit is fixed, and may not always be correct. One must therefore calculate the correct settlement limit for both players, do two set of rollouts, and then evaluate from there. Depending on the position a level 5 full rollout can be spot on, or way out. Therefore, one must think carefully when one looks at a level 5 rollout result.

Last is the level 6 rollouts. Here JellyFish plays on level 6, which has simplified 1-ply lookahead. This means that JellyFish' neural net analyzes the position and the roll, picks out what it regards as the best ones, and then looks at the opponents replies depending on which move JellyFish makes. The result is that JellyFish plays a lot better. I therefore regard a level 6 rollout as the most reliable when it comes to picking out best moves. The advantage of a level 6 rollout is that the level of error is low, and you're pretty sure that JellyFish does the right thing. The disadvantage is that it does not use the cube and that the rollout takes a lot of time.


Morten Wang <warnckew@online.no>
Last modified 1999-03-31 20:56