Crikey -- it worked!

Incorporating moves into the tree with a transposition table, I'm still getting 10,000 games per second with the dual cores. The games are still purely random -- UCT is tomorrow's job.

I went ahead and (*shudder*) created the TwinNode objects on the fly, rather than maintaining a pool of them, since they're much rarer than true Nodes. It looks like I create about one transposition in every ten runs using purely random games, but I expect this will drop off precipitously under UCT. If I'm wrong, I can always add a node pool.

Orego is hugely faster and uses an order of magnitude less memory than it did 24 hours ago. Thanks, everyone!

Peter Drake
Assistant Professor of Computer Science
Lewis & Clark College
http://www.lclark.edu/~drake/




On Dec 7, 2006, at 10:07 PM, Anders Kierulf wrote:

I was also hoping to use my DAG as a transposition table,
so I could use the Zobrist hash of the current position
to find where the child node would be if it existed. If
the space was already occupied (by a node at the right
depth), I would have a transposition.

If each "node" might really require several nodes, this
trick won't work. Oh, well. I guess I was trying to kill
too many birds with the same stone.

I'm solving that by using a separate hash table that points to the base node
for each position. But it seems like you should be able to use the DAG
directly as a transposition table too, with the twin nodes implemented as an
overflow list.

Anders Kierulf
www.smartgo.com

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

Reply via email to