On Dec 13, 2009, at 11:30 AM, Corey Harris <charri...@gmail.com> wrote:

Was looking for a basic UCT data structure. I guess a tree structure is created in memory. How is this managed, because memory can be exausted pretty fast.


It isn't as fast as you might think. You want to use zobrist hashing for looking up nodes. IIRC, Many Faces discards the search tree after each move and simply does not create more nodes when it runs out of memory.



>>• record results for all visited nodes____________________________ ___________________

Where do you record the results?

Logically, every node in the search tree has an estimated win rate. It's also possible to store the win rate of all follow-up moves for a given node. That's friendlier on the cache but uses more memory per node. I'm unsure what most bots do.

tracking of win rates can be done in a few different ways:
• Total simulations, Win percentage
• Total simulations, # of wins
• Total simulations, # of wins - # losses
• # of wins, # of losses

More important than how to store those values is how they're initialized based on domain knowledge.



I appologize for the simple questions, I'm new at this.

On Sun, Dec 13, 2009 at 9:48 AM, Jason House <jason.james.ho...@gmail.com > wrote:
On Dec 13, 2009, at 9:38 AM, Corey Harris <charri...@gmail.com> wrote:

I know this is a simple issue but I'm not sure of the solution. I am currently in the very early stages of writing a go engine. I have the board state and simple opening library implemented (no play logic yet). I'm would like to output debugging/developnent output statements to the gogui shell window. If the engine sends printf ("some output\n"); gogui says "Sent a malformed response". If it fprintf(stderr, "some output\n"); nothing is displayed.

How can you print messages to the shell without disrupting the message protocol?

Writing to stderr works fine for me, but gogui does not show shell output immediately. It waits until some point in overall execution before showing anything in the shell output.




Also, is there a site that describes the workings of a UCT bot in detail similiar to some chess programming tutorial sites?

Not that I'm aware of, but senseis.xmp.net might be a good place to start. Basic UCT is simple:
• always start at tree root
• pick the child with the highest metric (upper confidence bound on win rate)
• repeat last step until you reach a leaf
• if simulations of the leaf > N, expand leaf and pick child with hi ghest metric
• play random game
• record results for all visited nodes______________________________ _________________
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/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to