Hi.

I've been thinking about pondering, and the way the tree has to be built to
support pondering. Because with pondering, the thinking time for a move can
be very big theoretically, I would like to handle automatic pruning of the
tree to avoid running out of memory. Right now I have a fixed size pool of
nodes, and I simply stop the tree from growing when I see that all nodes
are used. However I'm afraid this could hurt the performance when thinking
times are very long.

This brings me to my question: When I see that I'm running out of memory,
which leaves/subtrees of the UCT tree should be pruned?

-Prune moves with a low winrate and a low variance. This would favor nodes
near the root, and often lots of memory would be freed this way. However,
one has to be careful not to prune potentially good moves.

-Prune leaf nodes with little visits that are old. This would have a small
impact on the UCT search but the memory freed is very little, meaning I
would have to do a lot of pruning.

Another approach would be of course to just let the tree grow
indefinitely and hope that it will not use too much memory, but I'm not sure
it would work well in all situations.

What do you do in your programs? Have you tested other approaches? Do you
think hard pruning is bad in general?

Regards,
-ibd
-- 
Nur bis 31.05.: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate und
Telefonanschluss nur 17,95 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to