gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] Defect in Pattern VA49 and a solution here


From: Chin-Chang Yang
Subject: [gnugo-devel] Defect in Pattern VA49 and a solution here
Date: Sat, 9 Apr 2011 02:05:05 +0800

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


reply via email to

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