David Fotland wrote:
> Can you elaborate on what is in a node, and what you mean by expand?   I
> assume you have simple node, where each node represents a position and
> the single move to get there.  Then when you find a node with no
> children and expand it, you allocate up to 81 new nodes, but you only
> make one random playout.  If uct picks a different leaf next time, you
> end up with most of the leaf nodes never visited.  In this case you run
> out of memory quickly.  If there are a few hundred K playouts to pick a
> move, and 90% of the leaves have no visits, then you need over a million
> nodes of memory.
>
>
>
> How do other programs handle this?  I see that aya has an array of all
> children in each node.  This still means allocating memory for all
> children when a new node is allocated.

MonteGNU has a linked list of visited children and a bitboard marking
moves which have not yet been visited. A new node is created without
children and the bitboard marks all possible moves.

> It think many programs run several simulations through a node before
> allocating the children.  I can see how this saves memory, but then how
> do you save the RAVE information from the early simulations?

I have never managed to implement RAVE successfully. It made my
program significantly slower but no stronger even at a fixed number of
simulations.

/Gunnar
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to