I'm using dropout expansion as one of my book extending mechanisms. I found that, in a node to be expanded, expanding one move at a time (instead of all moves at once) works better for me. It is also necessary to choose the expansion set more carefully than by using the simple omega method: more "best-first" for deep nodes, and more "shallowest-first" near the root. The diagram below gives a dropout-like diagram of the current book in red, with the expansion set in green.Rein Halbersma wrote:In checkers/draughts, and also in other games, so-called dropout expansion has been very successful. See Ch. 3 of Thomas Lincke's Phd Thesis. It places all the nodes of the current book in a priority queue and repeatedly calling a search on the top node, expanding the book, and then recomputing the priorities. The priority can be user-configured, e.g. to emphasize breadth over depth, or vice versa. You can also guide it to expand specific opening lines (e.g. based on published play). It is also very easy to parallize, and e.g. let a few idle cores (OK, this paper was published before systematic large-scale testing!) expand the book around the clock.

In each green node I would expand the best move that is leaving the book. I have added an 'exclude <move> ...' command to my program to help find this move. Each expansion leads to 2 new searches to be performed: one for the child node, and a new exclusion search in the parent node to establish the next book-leaving move there. Visually in the dropout diagram that means that each expanded dot splits into two: one moving up 1 ply and staying at roughly the same value, and one moving a bit to the right on the value axis.
Progression is slow, but steady. However, I also have a couple of other book expansion methods to speed up learning. I don't believe that dropout expansion alone would be fast enough to maintain a good book for chess.