Pachi Doetsu 4.00
[pachi/nmclean.git] / uct / prior.h
blobcaf7d490756d5fabd333eb5974948a6093e125d7
1 #ifndef ZZGO_UCT_PRIOR_H
2 #define ZZGO_UCT_PRIOR_H
4 #include "move.h"
5 #include "uct/tree.h"
7 struct tree;
8 struct tree_node;
9 struct uct;
10 struct board;
12 struct prior_map {
13 struct board *b;
14 enum stone to_play;
15 int parity;
16 /* [board_size2(b)] array, move_stats are the prior
17 * values to be assigned to individual moves;
18 * move_stats.value is not updated. */
19 struct move_stats *prior;
20 /* [board_size2(b)] array, whether to compute
21 * prior for the given value. */
22 bool *consider;
25 /* @value is the value, @playouts is its weight. */
26 static void add_prior_value(struct prior_map *map, coord_t c, float value, int playouts);
28 void uct_prior(struct uct *u, struct tree_node *node, struct prior_map *map);
30 struct uct_prior;
31 struct uct_prior *uct_prior_init(char *arg);
34 static inline void
35 add_prior_value(struct prior_map *map, coord_t c, float value, int playouts)
37 float v = map->parity > 0 ? value : 1 - value;
38 stats_add_result(&map->prior[c], v, playouts);
41 #endif