From fd8a7accded2a912186ec227bb3fd04a1670bc38 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Wed, 14 Apr 2010 20:35:33 +0200 Subject: [PATCH] UCT dynkomi komi_by_value(): Some ratchet tweaking; reset age when lowering the bar --- uct/dynkomi.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/uct/dynkomi.c b/uct/dynkomi.c index 02bdb7d..d4775f4 100644 --- a/uct/dynkomi.c +++ b/uct/dynkomi.c @@ -287,9 +287,13 @@ komi_by_value(struct uct_dynkomi *d, struct board *b, struct tree *tree, enum st if (value.value < a->zone_red) { /* Red zone. Take extra komi. */ if (DEBUGL(3)) - fprintf(stderr, "[red] %f, step %d | komi ratchet %f -> %f\n", - value.value, score_step_red, a->komi_ratchet, extra_komi); - if (extra_komi > 0) a->komi_ratchet = extra_komi; + fprintf(stderr, "[red] %f, step %d | komi ratchet %f age %d/%d -> %f\n", + value.value, score_step_red, a->komi_ratchet, a->komi_ratchet_age, a->komi_ratchet_maxage, extra_komi); + if (extra_komi > 0) { + assert(extra_komi < a->komi_ratchet); + a->komi_ratchet = extra_komi; + a->komi_ratchet_age = 0; + } extra_komi += score_step_red; return komi_by_color(extra_komi, color); @@ -301,8 +305,8 @@ komi_by_value(struct uct_dynkomi *d, struct board *b, struct tree *tree, enum st /* Green zone. Give extra komi. */ extra_komi += score_step_green; if (DEBUGL(3)) - fprintf(stderr, "[green] %f, step %d | komi ratchet %f age %d\n", - value.value, score_step_green, a->komi_ratchet, a->komi_ratchet_age); + fprintf(stderr, "[green] %f, step %d | komi ratchet %f age %d/%d\n", + value.value, score_step_green, a->komi_ratchet, a->komi_ratchet_age, a->komi_ratchet_maxage); if (a->komi_ratchet_maxage > 0 && a->komi_ratchet_age > a->komi_ratchet_maxage) { a->komi_ratchet = 1000; a->komi_ratchet_age = 0; -- 2.11.4.GIT