A while back, Sylvain Gelly posted this code:
ChooseMove(node, board) {
bias = 0.015 // I put a random number here, to be tuned
b = bias * bias / 0.25
best_value = -1
best_move = PASSMOVE
for (move in board.allmoves) {
c = node.child(move).counts
w = node.child(move).wins
rc = node.rave_counts[move]
rw = node.rave_wins[move]
coefficient = 1 - rc / (rc + c + rc * c * b)
value = w / c * coef + rw / rc * (1 - coef) // please here take
care of
the c==0 and rc == 0 cases
if (value > best_value) {
best_value = value
best_move = move
}
}
return best_move
}
From this, it appears that each node knows about its own counts and
wins, as well as the rave counts and wins of its children.
I understand (correct me if I'm wrong!) that the "value" line is a
weighted sum of the win rate among actual moves and the win rate among
RAVE moves.
My question is: what is the meaning of this line?
coefficient = 1 - rc / (rc + c + rc * c * b)
Why this formula?
Thanks for any help you can offer,
Peter Drake
http://www.lclark.edu/~drake/
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/