gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] endgame tuning


From: Arend Bayer
Subject: Re: [gnugo-devel] endgame tuning
Date: Sat, 22 Mar 2003 13:08:06 +0100 (CET)


- new prevent_attach_threat_helper() adds reverse followup value
- influence, endgame tuning
- DEBUG_TERRITORY made less confusing

This is what I suggest to do with paul_3_18.3. It's what I suggested in
my previous reply, i.e. fix some wrong barrier patterns, and use the
new helper for the reverse followup values.

This patch doesn't address the false eye problem yet.

Oh, and now it's possible to see which territory changes belong to the
move value, and which to the followup value -- I should have fixed this
a while ago I suppose...

Arend

Index: engine/value_moves.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/value_moves.c,v
retrieving revision 1.83
diff -u -p -r1.83 value_moves.c
--- engine/value_moves.c        17 Mar 2003 21:57:26 -0000      1.83
+++ engine/value_moves.c        22 Mar 2003 12:05:57 -0000
@@ -1931,19 +1931,25 @@ estimate_territorial_value(int pos, int
                                 pos, "followup");
       this_value = influence_delta_territory(OPPOSITE_INFLUENCE(color),
                                             &move_influence, color, pos);
+      if (this_value != 0.0)
+       TRACE("%1m: %f - change in territory\n", pos, this_value);
+      else
+       DEBUG(DEBUG_MOVE_REASONS, "%1m: 0.00 - change in territory\n", pos);
       move[pos].influence_followup_value
        = influence_delta_territory(&move_influence, &followup_influence,
                                    color, pos);
       store_delta_territory_cache(pos, color, this_value,
                                  move[pos].influence_followup_value);
     }
+    else {
+      if (this_value != 0.0)
+       TRACE("%1m: %f - change in territory (cached)\n", pos, this_value);
+      else
+       DEBUG(DEBUG_MOVE_REASONS,
+             "%1m: 0.00 - change in territory (cached)\n", pos);
+    }
     popgo();

-    if (this_value != 0.0)
-      TRACE("  %1m: %f - change in territory\n", pos, this_value);
-    else
-      DEBUG(DEBUG_MOVE_REASONS, "  %1m: 0.00 - change in territory\n",
-           pos);
   }

   tot_value += this_value;
Index: patterns/barriers.db
===================================================================
RCS file: /cvsroot/gnugo/gnugo/patterns/barriers.db,v
retrieving revision 1.50
diff -u -p -r1.50 barriers.db
--- patterns/barriers.db        17 Mar 2003 21:57:27 -0000      1.50
+++ patterns/barriers.db        22 Mar 2003 12:05:58 -0000
@@ -97,12 +97,30 @@ cad
 ;!(oplay_break_through(a,b,c,b,d)==WIN)


-Pattern Barrier4
+Pattern Barrier4a

 |,O

 :-,D

+|aO
+
+;!oplay_attack(a,a)
+
+
+Pattern Barrier4b
+
+|,o?
+|.OX
+
+
+:8,OD
+
+|ao?
+|.OX
+
+;!oplay_attack(a,a)
+

 Pattern Barrier5

@@ -458,6 +476,12 @@ OO
 --

 :8,D
+
+OO
+aX
+--
+
+;!oplay_attack(a,a)


 Pattern Barrier31
Index: patterns/endgame.db
===================================================================
RCS file: /cvsroot/gnugo/gnugo/patterns/endgame.db,v
retrieving revision 1.46
diff -u -p -r1.46 endgame.db
--- patterns/endgame.db 17 Mar 2003 21:57:27 -0000      1.46
+++ patterns/endgame.db 22 Mar 2003 12:05:58 -0000
@@ -240,7 +240,7 @@ Pattern EE7
 ?.X?
 O.*.

-:8,sOX,terri(0.75)
+:8,sOXe,terri(0.75)

 ?.X?
 O.*a
@@ -735,6 +735,44 @@ Pattern EE414
 +---

 :8,OXed,terri(3)
+
+
+Pattern EE415
+# pp New pattern (3.3.18)
+# Currently necessary (see trevorb:170, where N11 is otherwise rejected
+# as "strategically or tactically unsafe) /ab
+
+|*O?
+|OXX
+|.OX
++---
+
+:8,X,terri(0.1),reverse_followup(2)
+
+|*A?
+|OXX
+|.OX
+----
+
+;alive(A)
+
+
+Pattern EE416
+
+|.OO?
+|..*X
++----
+
+:8,OXe
+
+|.BB?
+|..aX
++----
+
+;xplay_attack(a,B) && !oplay_attack(a,B)
+
+>prevent_attack_threat(B)
+


 # miscellaneous first line moves
Index: patterns/helpers.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/patterns/helpers.c,v
retrieving revision 1.49
diff -u -p -r1.49 helpers.c
--- patterns/helpers.c  17 Mar 2003 21:57:27 -0000      1.49
+++ patterns/helpers.c  22 Mar 2003 12:05:59 -0000
@@ -391,6 +391,19 @@ threaten_to_save_helper(int move, int st
 }


+/* For use in autohelpers.
+ *
+ * Adds a reverse followup value if the opponent's move here would threaten
+ * to capture (str).
+ */
+void
+prevent_attack_threat_helper(int move, int str)
+{
+  add_reverse_followup_value(move, 2.0 * worm[str].effective_size);
+  TRACE("...reverse followup value %f\n", 2.0 * worm[str].effective_size);
+}
+
+
 /*
  * This is intended for use in autohelpers.
  *
Index: patterns/mkpat.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/patterns/mkpat.c,v
retrieving revision 1.116
diff -u -p -r1.116 mkpat.c
--- patterns/mkpat.c    17 Mar 2003 21:57:27 -0000      1.116
+++ patterns/mkpat.c    22 Mar 2003 12:06:02 -0000
@@ -296,7 +296,10 @@ static struct autohelper_func autohelper
                "play_connect_n(OTHER_COLOR(color), 0, %d"},
   {"seki_helper",              1, 0, 0.0, "seki_helper(%s)"},
   {"threaten_to_save",         1, 0, 0.0, "threaten_to_save_helper(move,%s)"},
-  {"threaten_to_capture",      1, 0, 0.0, 
"threaten_to_capture_helper(move,%s)"},
+  {"threaten_to_capture",      1, 0, 0.0,
+               "threaten_to_capture_helper(move,%s)"},
+  {"prevent_attack_threat",    1, 0, 0.0,
+               "prevent_attack_threat_helper(move, %s)"},
   {"not_lunch",                        2, 0, 0.0, "not_lunch_helper(%s, %s)"},
   {"eye",                      1, 0, 0.01, "is_eye_space(%s)"},
   {"proper_eye",               1, 0, 0.01, "is_proper_eye_space(%s)"},
Index: patterns/patterns.h
===================================================================
RCS file: /cvsroot/gnugo/gnugo/patterns/patterns.h,v
retrieving revision 1.53
diff -u -p -r1.53 patterns.h
--- patterns/patterns.h 17 Mar 2003 21:57:27 -0000      1.53
+++ patterns/patterns.h 22 Mar 2003 12:06:03 -0000
@@ -289,6 +289,7 @@ int not_lunch_helper(int apos, int bpos)
 int seki_helper(int str);
 void threaten_to_save_helper(int move, int str);
 void threaten_to_capture_helper(int move, int str);
+void prevent_attack_threat_helper(int move, int str);
 void defend_against_atari_helper(int move, int str);
 void amalgamate_most_valuable_helper(int apos, int bpos, int cpos);
 int finish_ko_helper(int apos);
Index: regression/trevorc.tst
===================================================================
RCS file: /cvsroot/gnugo/gnugo/regression/trevorc.tst,v
retrieving revision 1.46
diff -u -p -r1.46 trevorc.tst
--- regression/trevorc.tst      3 Mar 2003 04:30:50 -0000       1.46
+++ regression/trevorc.tst      22 Mar 2003 12:06:04 -0000
@@ -638,6 +638,10 @@ loadsgf games/trevor/auto/c62.sgf 118
 1120 gg_genmove white
 #? [A3]*

+loadsgf games/trevor/auto/c62.sgf 118
+1121 gg_genmove black
+#? [A3]*
+

 loadsgf games/trevor/auto/c62.sgf 120
 1130 gg_genmove white





reply via email to

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