[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] move valuation patch

From: Gunnar Farnebäck
Subject: [gnugo-devel] move valuation patch
Date: Wed, 20 Oct 2004 05:07:54 +0200
User-agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/21.3 (sparc-sun-solaris2.9) MULE/5.0 (SAKAKI)

Sometimes an owl critical dragon has multiple tactical defenses as
well, some of which only work with ko or with a worse ko than is
possible to get. This patch devalues such moves.

Regression results:
arb:203         FAIL N3 [T7]
trevorb:140     PASS K2 [!H4]
trevorb:960     PASS C3 [!D5]
nicklas2:2103   FAIL A7 [PASS]
global:44       PASS D5 [D5]
nngs3:1080      PASS K7 [!H7]
olympiad2004:103 PASS C18 [C18]
Total nodes: 1617186235 2971992 12876935 (-0.17% -3.4e-05% -0.14%)

Breakage analysis:
arb:203       The value of N3 increases when the DEFEND P1 move reason
              is revalued. The change doesn't effect the territorial
              value, probably because P1 is inessential, but now the
              move gets a smallish but positive secondary value
              instead of two negative penalties (defense only with ko
              and suspected ineffective defense). This mostly seems

trevorb:140   Good pass. (There may be other issues there but the
              change in move valuation is definitely for the better.) 

trevorb:960   Very good pass. Actually similar to trevorb:140 but more

nicklas2:2103 Accidental failure. The problem is with group safety
              estimation and the patch removes a bogus penalty for
              suspected ineffective defense. 

global:44     The move valuation is rather confused but the patch
              looks like a real improvement. 

nngs3:1080    Mostly accidental.

olympiad2004:103 Good pass.

- devalue tactical defenses of owl critical dragons when there are
  better owl defenses elsewhere 


Index: engine/value_moves.c
RCS file: /cvsroot/gnugo/gnugo/engine/value_moves.c,v
retrieving revision 1.131
diff -u -r1.131 value_moves.c
--- engine/value_moves.c        13 Sep 2004 10:45:11 -0000      1.131
+++ engine/value_moves.c        22 Sep 2004 15:40:26 -0000
@@ -1866,7 +1866,18 @@
        secondary_value += 0.2 * this_value;
+      if (DRAGON2(aa).owl_status == CRITICAL
+         && (owl_defense_move_reason_known(pos, aa)
+             < defense_move_reason_known(pos, aa))
+         && !semeai_move_reason_known(pos, aa)) {
+             "  %1m:   %f (secondary) - ineffective defense of %1m 
+             pos, 0.2 * this_value, aa);
+       secondary_value += 0.2 * this_value;
+       break;
+      }
       /* Mark the string as saved, for evaluation in the influence code. */
       mark_changed_string(aa, safe_stones, strength, INFLUENCE_SAVED_STONE);
       TRACE("  %1m: defense of worm %1m\n", pos, aa);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]