A while ago I implemented what I thought was a fairly straightforward way to deal with transpositions. But to my surprise it made the program weaker instead of stronger. Since I couldn't figure out immediately what was wrong with it, I decided to leave it alone for the time being.

Just now I decided to do a search on transpostions and UCT in this mailing list and it seems to have been discussed several times in the past. But from what I found it's not entirely clear to me what was the conclusion of those discussions.

Let me first describe what I did (ar attempted to do): all nodes are stored in a hash-table using a checksum. Whenever I create a new node in the tree I add it in the hash-table as well. If two nodes have the same checksum, they are stored at the same slot in the hashtable in a small list.

When I add a node to a slot that already contains something, then I use the playout statistics of the node(s) already there and propagate that up the tree. When I have done a playout I propagate the result of the single playout up the tree, but at each step I check in the hashtable to see if there are multiple paths to update.

I've seen some posts that expressed concerns about using the existing statistics of another path. This may be the reason I'm not seeing any improvement. So I was wondering if there's any consensus about how to deal with transpositions in a UCT tree. Or if someone could point me to other sources of information on the subject.

Mark

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to