This is an ancient patch by SP Lee, most recently revised in http://lists.gnu.org/archive/html/gnugo-devel/2004-09/msg00242.html
Finally I had time for my patch 5.5.1b which has been pending for long
time. I have minimized the modification so that the tuning is minimum.
The original break_chain3 is to find the chain with 3 liberties and
check the escape potentials through all the 3 liberties. Suppose a, b
and c are the resulting liberties of the chain after playing a stone in
turn on the 3 liberties, sorted in decending order. The original
function break_chain3_moves only adds break chain moves if b is less
than 4 (a>=b, b>=c).
My patch changes the above constraint to b less or equal to 4 and c<4.
Furthermore I have also added some constraints to let the chain breaking
stone not easy to be captured, unless it's a single stone.
Regression changes:
./regress.sh . arb.tst
203 unexpected FAIL: Correct 'T7', got 'N3'
./regress.sh . nngs.tst
370 unexpected PASS!
371 unexpected PASS!
./regress.sh . global.tst
22 unexpected FAIL: Correct 'F2', got 'J6'
./regress.sh . 13x13.tst
39 unexpected FAIL: Correct 'H4|J4', got 'J5'
./regress.sh . owl1.tst
263 unexpected PASS!
./regress.sh . nngs4.tst
420 unexpected FAIL: Correct 'G6', got 'F4'
./regress.sh . ninestones.tst
370 unexpected PASS!
./regress.sh . 9x9.tst
210 unexpected PASS!
Totally 4 fails and 5 passes. However, the passes are more impressive
than fails, refer to the comments in the .tst file:
# W misses break-chain (I think!?!) -tm
loadsgf games/nngs/Lazarus-gnugo-3.1.17-200112301450.sgf 82
371 attack R5
#? [0]*
# Extremely bad misread. (Made GNU Go play at L9 with the last move
before
# that position.)
loadsgf games/wing-yuhiko-gnugo.sgf 115
263 owl_defend M13
#? [1 R11]*
On the other hand, most of the regression fails are debatable. I'll put
the detailed explaination below.
arb:203
12 . O . . O . . . O . . O O O O O O . O 12
11 O . . . . O . . . . . . . . . O X O . 11
10 X O O + O X O O . + . . . . . O X X O 10
9 X X O . O X X O . . . . O . O O X . X 9
8 . X O O O X . X O O . . O O X O X . X 8
7 . X X X X . . X X . O O X X . X . X . 7
6 . . . . X X X . . X X X O X X X X O O 6
5 . . X . . O . . . . X O O O O O O X . 5
4 . . . X . . X . . X . X X X X O X X X 4
3 . . . . . X O . X . . X . O O O O X . 3
2 . . . . . . X . . O O . X O . O O O X 2
1 . . . . . . . . . . . . X O X . O X . 1
A B C D E F G H J K L M N O P Q R S T
This is a complicated situation with up to 6 ko's in the lower right
corner. I don't think gnugo can really handle this situation until some
time in the far future. T7 is a good move in that it makes the black
alive for sure and let white not easy to live. However, black is also
not dead even playing on N3. For example, B:N3,W:T1,B:T7,W:T3,B:T5. Or
B:N3,W:P7,B:R7,W:S8,B:T11. Both before and after patch, the ko_depth is
reached during tactical reading (attack n6). Surprisingly, the reading
code after patch generates less variations in this situation.
global:22
After the patch an extra tactical attack move is generated during owl
analysis, resulting in a similar situation as I mentioned in
http://lists.gnu.org/archive/html/gnugo-devel/2004-09/msg00238.html. In
another word, this patch reveals another weak point of gnugo.
13x13:39
8 . . . . . . . . . . . . . 8
7 . . . + . . + . . + X . . 7
6 . . . X . X X X . . . X . 6
5 . . . . . X O O . . O O X 5
4 . . X + O O X . . O . . O 4
3 . X . O . . . X X O . . . 3
2 . . O . . . . X O O . . . 2
1 . . . . . . . . . . . . . 1
A B C D E F G H J K L M N
The move J5 is clearly better than H4 or J4, in my opinion. The black
group on lower side has no chance to live.
nngs4: 420
12 . . X O . . . . . . . . . . . . O . . 12
11 . . X O . . . . . . . . . . . . O X . 11
10 . . X X . X . . . + . . . . . + X . . 10
9 . . . . . . . X . . . . . . . . . . . 9
8 . . . . . O O X . . . . . . . . . . . 8
7 . . X . X O X O O . . . . . . . . . . 7
6 . . . . O X . X . O X . . . X . X . . 6
5 . . . O . X . . X O . . . . . . . . . 5
4 . . . + O . O . X + O . . . . O . X . 4
3 . . O . . . . . . . . . . O . O X . . 3
2 . . . . . . . . . . . . . . . . . . . 2
1 . . . . . . . . . . . . . . . . . . . 1
A B C D E F G H J K L M N O P Q R S T
G6 makes an ineffient shape of black. Although black can then catch 3
white stones, the black group doesn't have 2 eyes and has to catch the 3
stone in the end game. The newly generated move F4 is interesting in
that black is threatening to catch G4 (for example
B:F4,W:G6,B:G5,W:G7,B:F3), which is larger than the 3 white stones. I
don't think there is any misreading here.
Any comments and suggestions are welcome.