Hello everyone,

I downloaded and installed gnugo on Apr. 9 with the commands: "git clone 
git://git.savannah.gnu.org/gnugo.git"
Then, I analyzed the attached game (cp1.sgf) with the commands: "gnugo -l 
cp1.sgf -o cp1-debug-3.8.sgf --decide-dragon g3"

--------------------------------------------------------
Output:
finished examine_position
G3 can be attacked with ko (good) at J8 (986 variations)
G3 can be defended at J8 (261 variations)
--------------------------------------------------------

GNUGO said G3 can be attacked at J8. However, GNUGO is actually wrong because 
it makes a mistake in variation 6 ("cp1-debug-3.8.sgf") which moves L1 by the 
pattern VA49, but this is not an effective self-atari.

The problem is that VA49 might be wrongly designed in 
"patterns/owl_vital_apats.db" as follows.

--------------------------------------------------------------
Pattern VA49
# tm New Pattern (3.1.18) (see trevor:430)
# FIXME: This is non-sense if the ataried stone has neighbours
# in atari (see trevorb:360)

X*    atari outside eyespace
oX

:8,-,value(35)

X*
AB

; lib(B) <= 2 && owl_eyespace(A)
--------------------------------------------------------------

I then modified this pattern to fix the self-atari problem (in the attached 
"owl_vital_apats.db"):

--------------------------------------------------------------
Pattern VA49
# tm New Pattern (3.1.18) (see trevor:430)
# FIXME: This is non-sense if the ataried stone has neighbours
# in atari (see trevorb:360)
# ccy revised on 2011/4/8

X*
oX

:8,-,value(35)

X*
AB

; lib(B) <= 2 && owl_eyespace(A) && olib(*) >= 2
--------------------------------------------------------------

After recompiling GNUGO with the above Pattern VA49, I analyzed the game 
("cp1.sgf") with the same command and it gave out:

--------------------------------------------------------------
Output:
finished examine_position
G3 can be attacked with ko (good) at E2 (674 variations)
G3 can be defended at J8 (162 variations)
--------------------------------------------------------------

Yeah! GNUGO now said G3 should be attacked at E2, not J8. The playout can be 
viewed in "cp1-debug-new.sgf".
I then did full regression test with this new pattern by the command: make test

--------------------------------------------------------------
Output:
./regress.sh . reading.tst 
./regress.sh . owl.tst 
./regress.sh . ld_owl.tst 
./regress.sh . optics.tst 
./regress.sh . filllib.tst 
./regress.sh . atari_atari.tst 
./regress.sh . connection.tst 
./regress.sh . break_in.tst 
./regress.sh . blunder.tst 
./regress.sh . unconditional.tst 
./regress.sh . trevora.tst 
./regress.sh . nngs1.tst 
./regress.sh . strategy.tst 
./regress.sh . endgame.tst 
./regress.sh . heikki.tst 
./regress.sh . neurogo.tst 
./regress.sh . arb.tst 
./regress.sh . rosebud.tst 
./regress.sh . golife.tst 
./regress.sh . arion.tst 
./regress.sh . viking.tst 
./regress.sh . ego.tst 
./regress.sh . dniwog.tst 
./regress.sh . lazarus.tst 
./regress.sh . trevorb.tst 
./regress.sh . strategy2.tst 
./regress.sh . nicklas1.tst 
./regress.sh . nicklas2.tst 
./regress.sh . nicklas3.tst 
./regress.sh . nicklas4.tst 
./regress.sh . nicklas5.tst 
./regress.sh . manyfaces.tst 
./regress.sh . niki.tst 
./regress.sh . trevor.tst 
./regress.sh . tactics.tst 
./regress.sh . buzco.tst 
./regress.sh . nngs.tst 
./regress.sh . trevorc.tst 
./regress.sh . strategy3.tst 
./regress.sh . capture.tst 
./regress.sh . connect.tst 
./regress.sh . global.tst 
./regress.sh . vie.tst 
./regress.sh . arend.tst 
./regress.sh . 13x13.tst 
./regress.sh . semeai.tst 
127 unexpected FAIL: Correct '2 2 (O15|O14|R13)', got '1 0 S19'
133 unexpected PASS!
134 unexpected FAIL: Correct '1 1 H2', got '1 0 H2'
./regress.sh . STS-RV_0.tst 
./regress.sh . STS-RV_1.tst 
./regress.sh . STS-RV_e.tst 
./regress.sh . STS-RV_Misc.tst 
./regress.sh . trevord.tst 
./regress.sh . strategy4.tst 
./regress.sh . owl1.tst 
./regress.sh . handtalk.tst 
./regress.sh . nngs2.tst 
./regress.sh . nngs3.tst 
./regress.sh . nngs4.tst 
./regress.sh . strategy5.tst 
./regress.sh . century2002.tst 
./regress.sh . auto01.tst 
./regress.sh . auto02.tst 
./regress.sh . auto03.tst 
./regress.sh . auto04.tst 
./regress.sh . auto_handtalk.tst 
./regress.sh . safety.tst 
./regress.sh . ninestones.tst 
./regress.sh . tactics1.tst 
./regress.sh . manyfaces1.tst 
./regress.sh . gunnar.tst 
./regress.sh . arend2.tst 
./regress.sh . nando.tst 
./regress.sh . thrash.tst 
./regress.sh . 13x13b.tst 
./regress.sh . joseki.tst 
./regress.sh . gifu03.tst 
./regress.sh . seki.tst 
./regress.sh . 9x9.tst 
120 unexpected FAIL: Correct 'F1', got 'B1'
./regress.sh . cgf2004.tst 
./regress.sh . kgs.tst 
./regress.sh . olympiad2004.tst 
./regress.sh . tiny.tst 
./regress.sh . gifu05.tst 
./regress.sh . 13x13c.tst
--------------------------------------------------------------

Unfortunately, there are four unexpected FAIL/PASS. I read the test cases, 
"semeai.tst", and the corresponding games to know what happened. However, it 
really confused me. For example, please see the no.127 test cases in 
"semeai.tst", and see the corresponding game at "regression/games/verybad.sgf". 
The test case says the moves shall be O15, O14, or R13, but GNUGO with the new 
Pattern VA49 fails this test. I cannot understand why it fails because I cannot 
even understand why GNUGO with original Pattern VA49 can pass this test. I 
think original/new VA49 can never move O15, O14, nor R13 because they should 
not match the Pattern VA49. Can anyone give me any comments?

Thank you ;-)

CCY, 2011/04/09
                                          

Attachment: cp1.sgf
Description: application/go-sgf

Attachment: owl_vital_apats.db
Description: Binary data

_______________________________________________
gnugo-devel mailing list
gnugo-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/gnugo-devel

Reply via email to