Yes I used such a representation, not in the context of MC, but for
experimental algorithms where I needed to know all paths that could lead
from the root to a given node. I used a representation that I found
later to be described under the name 'twin node' (in someone's thesis I
guess, but I don't remember who). The idea is to have multiple duplicate
nodes whose state (board position after the move) is equivalent and that
are linked together in an circular "equivalence" list. The last move
that lead to the position is stored in the node. This means you need one
more pointer per node.
Antoine.
(This is all within the context of Monte Carlo.)
Is anyone storing a search DAG (as opposed to a tree) and using the
firstChild/nextSibling representation? I'm having trouble seeing how
this would work, since when you traverse children (e.g., in UCT) you
have to know which move is associated with which child node. If a node
might have more than one parent, the node can't store its last move.
Any clever solutions?
If not, any opinions (or better yet, evidence) as to whether the space
savings or the DAG transposition table is more valuable?
Peter Drake
Assistant Professor of Computer Science
Lewis & Clark College
http://www.lclark.edu/~drake/
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/