From 44324f1e74f6ab83184fdffb94fe950446e91b9f Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Sun, 2 Mar 2008 19:17:40 +0100 Subject: [PATCH] UCT: Add compile-time UCB1_TUNED support --- uct/tree.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/uct/tree.c b/uct/tree.c index 58ace00..db8e00e 100644 --- a/uct/tree.c +++ b/uct/tree.c @@ -146,7 +146,15 @@ tree_uct_descend(struct tree *tree, struct tree_node *node, int parity) struct tree_node *nbest = node->children; float best_urgency = -9999; for (struct tree_node *ni = node->children; ni; ni = ni->sibling) { +#ifdef UCB1_TUNED + float xpl_loc = (ni->value - ni->value * ni->value); + if (parity < 0) xpl_loc = 1 - xpl_loc; + xpl_loc += sqrt(xpl / ni->playouts); + if (xpl_loc > 1.0/4) xpl_loc = 1.0/4; + float urgency = ni->value * parity + sqrt(xpl * xpl_loc / ni->playouts); +#else float urgency = ni->value * parity + sqrt(xpl / ni->playouts); +#endif if (urgency > best_urgency) { best_urgency = urgency; nbest = ni; -- 2.11.4.GIT