This patch revises the small bonus given for moves connecting strings,
with the aim to encourage capturing opponent stones when that is about
as solid as connecting or extending a string. Regression results:
kgs:40 PASS A6 [A6]
1 PASS
Total nodes: 1671873725 3158993 13114688 (-0.0045% 0% -0.0043%)
- move_connects_strings() revised
/Gunnar
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:39:55 -0000
@@ -34,10 +34,14 @@
/* Count how many distinct strings are (solidly) connected by the move
* at (pos). Add a bonus for strings with few liberties. Also add
- * bonus for opponent strings put in atari or removed.
+ * bonus for opponent strings put in atari or removed and for own
+ * strings in atari adjacent to removed opponent strings.
+ *
+ * The parameter to_move should be set when color is the color to
+ * move. (This function is called for both colors.)
*/
static int
-move_connects_strings(int pos, int color)
+move_connects_strings(int pos, int color, int to_move)
{
int ss[4];
int strings = 0;
@@ -80,8 +84,11 @@
else {
if (countlib(ss[k]) <= 2)
fewlibs++;
- if (countlib(ss[k]) <= 1)
+ if (countlib(ss[k]) <= 1 && to_move) {
+ int dummy[MAXCHAIN];
fewlibs++;
+ fewlibs += chainlinks2(ss[k], dummy, 1);
+ }
}
}
@@ -3054,8 +3063,8 @@
/* Add a special shape bonus for moves which connect own strings
* or cut opponent strings.
*/
- c = (move_connects_strings(pos, color)
- + move_connects_strings(pos, OTHER_COLOR(color)));
+ c = (move_connects_strings(pos, color, 1)
+ + move_connects_strings(pos, OTHER_COLOR(color), 0));
if (c > 0) {
float shape_factor2 = pow(1.02, (float) c) - 1;
float base_value = gg_max(gg_min(tot_value, 5.0), 1.0);
_______________________________________________
gnugo-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnugo-devel