gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] arend_3_6.1: strategic_penalty() a bit more general


From: Arend Bayer
Subject: [gnugo-devel] arend_3_6.1: strategic_penalty() a bit more general
Date: Sat, 13 Jul 2002 12:53:18 +0200 (CEST)

While there are a lot of mistakes on both sides in the 2nd Maastricht game
against GoIntellect, GNU Go's move N12 (90) may be the single worst move
strategically.

The function strategic_penalty() was invented to prevent this problem
(running away with a single weak stone directly neighbouring a strong hostile
group). The patch below generalizes this function slightly, such that it
prevents this move.
(Probably I should rewrite this function using the new connection code.
It should test whether a move is connected to a living dragon.)
I've also added this move and two more from the same game to strategy5.tst.

The only other changed regressions are PASSes 13x13:40 and viking:13.
I have changed the latter test case, however, as it seemed wrong to me
(see the comment there).

Arend

 - strategic_penalty() slightly generalized
 - new tests, test revision

Index: engine/value_moves.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/value_moves.c,v
retrieving revision 1.42
diff -u -r1.42 value_moves.c
--- engine/value_moves.c        20 Jun 2002 22:32:22 -0000      1.42
+++ engine/value_moves.c        13 Jul 2002 00:42:58 -0000
@@ -1053,10 +1053,11 @@
    * whether all neighboring intersections belong to the opponent's moyo.
    */
   for (k = 0; k < 4; k++)
-    if (ON_BOARD(pos + delta[k])
-       && board[pos + delta[k]] != OTHER_COLOR(color)
-        && influence_moyo_color(pos + delta[k]) != OTHER_COLOR(color))
+    if (board[pos + delta[k]] == EMPTY
+        && influence_area_color(pos + delta[k]) != OTHER_COLOR(color))
       return 0.0;
+  if (influence_area_color(pos) != OTHER_COLOR(color))
+    return 0.0;

   for (k = 0; k < MAX_REASONS; k++) {
     int r = move[pos].reason[k];
Index: regression/strategy5.tst
===================================================================
RCS file: /cvsroot/gnugo/gnugo/regression/strategy5.tst,v
retrieving revision 1.3
diff -u -r1.3 strategy5.tst
--- regression/strategy5.tst    8 Jun 2002 14:35:38 -0000       1.3
+++ regression/strategy5.tst    13 Jul 2002 00:43:00 -0000
@@ -27,6 +27,23 @@
 225 gg_genmove black
 #? [O12]*

+#CATEGORY=CONNECTION
+loadsgf games/olympiad2002/game2-19-gnugo-goint-1-0.sgf 54
+226 gg_genmove white
+#? [F5]*
+
+#CATEGORY=OWL
+# F1 was played in the game as an owl defense of E4.
+loadsgf games/olympiad2002/game2-19-gnugo-goint-1-0.sgf 66
+227 gg_genmove white
+#? [!F1]*
+
+#CATEGORY=STRATEGY
+# Don't run away with an unimportant, weak stone.
+loadsgf games/olympiad2002/game2-19-gnugo-goint-1-0.sgf 90
+228 gg_genmove white
+#? [!N12]*
+
 ############ End of Tests #################

 # Report number of nodes visited by the tactical reading
Index: regression/viking.tst
===================================================================
RCS file: /cvsroot/gnugo/gnugo/regression/viking.tst,v
retrieving revision 1.14
diff -u -r1.14 viking.tst
--- regression/viking.tst       5 Jul 2002 14:48:04 -0000       1.14
+++ regression/viking.tst       13 Jul 2002 00:43:00 -0000
@@ -54,7 +54,12 @@
 #? [S14|S15]

 # J9 is an overplay since it can be cut off.
+#CATEGORY=CONNECTION
+# J10 is not much better either, as black can cut J10/K11 off with M11.
+# This is a non-transitivity connection problem.
+# L10 looks best, but anything repairing the connection K11/N9 should
+# make us happy. /ab
 loadsgf games/viking3.sgf 213
 13 gg_genmove white
-#? [J10]*
+#? [L10|L11|M11|N10|K7]*






reply via email to

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