The above position occured in a game on CGOS. My experimental bot ggexp played as black and defended at H6. Looking into the details, I discovered that GNU Go currently largely overvalues the defenses in that area (values over 20 points).

Although I'm now rather familiar with most of the GNU Go source code, influence tuning keeps being a mystery to me. So I started this page in the hope that more experienced hackers in the team can tell me if I am in the right direction. Hopefully, it will also help others to get in touch with this rather obscure part of the GNU Go source code.

After having a look in the debug output (options -d0x1841 -m0x3ff), I understood that the white influence extends widely through the critical black stones at G4/H4. After a few attempts, I came up with following pattern:

Pattern BarrierXX

OXXx
X.,.
X.,,
...,
----

:8,sA

The idea is to make the engine understand that, while the capture is possible, the defender will sacrifice the stones by driving down the attacking ones. Pattern class A means, O plays first and X tries to block. Pattern class s necessary because not all X stones are alive.

After that change, the territory valuation of B:H6 looks much more accurate (again, to me), around 9 points.

Am I on the right track ? Or is there a better (more generic?) way to deal with the situation ? Maybe the pattern needs a constaint ?

-- Nando

Ok, I already found some issues by myself. First, it is probably better to make sure that the two leftmost X stones in the pattern are actually tactically unstable. Another problem consist in the possible skewing of O moves valuations somewhere on the right side of this pattern, because barriers are omnidirectional (not only related to the influence sources identified by the pattern). I cannot see a proper solution to this problem though.


The best tool by far for tuning influence is view.pike, although it doesn't help much with finding what patterns cause certain things to happen.

In this case it might be worth trying

Pattern BarrierXX

OXXx
X,..
X,..
.,..
----

:8,sA

with the constraint that the upper X stones are alive and the left ones tactically unstable. Then add a non-territory pattern marking the appropriate points as non-territory for black.

-- Gunnar

For the record, the black defense move is worth 18 points. Gunnar's suggested pattern probably won't work since both black strings are tactically stable (at least they should be).

Anyway, it's a difficult tuning area, unfortunately.

-- Arend


Thanks to both of you for responding, I haven't found a proper solution, but my understanding got already better.

Another "problem":

Pattern Intrusion54
# ab New pattern (3.3.10)
# X cannot play double hane.

..X?
.XQo
!.oo

:8,B,value(40)

.eG?
fXQb
!dac

;(o_somewhere(a) || o_somewhere(b) || o_somewhere(c))
;&& (o_somewhere(a) || oplay_attack(d,a,a)) && oplay_attack(e,f,G)

Last week, I was analyzing a position where this pattern was apparently questionable. Unfortunately, I don't remember in which game, so I don't have the example anymore. Still, isn't it possible that X might under circumstances prefer to sacrifice the G-labeled stone and allow O to intrude at e ?

-- nando