gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] two tuning exercises


From: Trevor Morris
Subject: Re: [gnugo-devel] two tuning exercises
Date: Sat, 13 Oct 2001 18:51:49 -0400

SPOILER!!!  follows....


>2. strategy4:186, it's urgent to save the dragon in the center, but
>instead GNU Go 3.1.9 does something else. Solving this is a question
>of identifying and revising a faulty pattern in patterns.db. Trivial
>if you're familiar with the engine's workings. If you're not, tracking
>this down may be a good way to learn your way around.

This one was really easy to track down, even for me!

First, I tried the following command, to get the trace output:

gq -l games/owl29.sgf -L 134 -t
    (BTW: alias gq='../interface/gnugo.exe --quiet' )

The top moves clue us in to the problem:
Top moves:
1. O10 45.70
2. O8  38.38
3. P9  5.33
4. A5  4.01

GnuGo is on the right track, just thinks O10 saves the group - which
of course it doesn't, so I scroll back a bit and find:

...
  O10: 40.14 - strategic effect on J10
...
Move generation values O10 to 45.69

Whoops, this seems to be the problem.  So, now I start from the top
and start looking for detailed O10 move patterns, to see if I can
find the problem (I skipped looking at the move reasons, which also
provide a clue with - Move at O10 connects J10 and J17).

Ah ha, now we're getting close.  Clearly, O10 doesn't connect J17 & J10.
pattern 'CC13'+1 matched at O10
...cuts dragons O9, C18
...connects dragons J17, J10

So, I look up CC13, finding it in patterns.db:

Pattern CC13

O?
cut!
*X
XO

:8,BC

O?
*A
BO

;oplay_attack_either(*,A,B)


The B following ":8," means, "Cuts A & B".  The C means "Connects
the two white stones in the diagram".  This is the bug, as there
is nothing anywhere that says A or B must be captured, only that
they must be attackable.  That is, A or B may be able to escape,
and the pattern will still match (the case in this problem).

Now, the simplest answer is to just delete the offending C.  

I'll avoid the bigger questions of whether this pattern is even
necessary as a cutting pattern, or whether additional auto-helpers
should be added to insure that one of A or B can actually be
captured.

This isn't sufficient to pass the regression test, however:
# O8 only move.
loadsgf games/owl29.sgf 134
186 gg_genmove white
#? [1 O8]*

The correct answer follows.  We do get it by deleting the
offending C in Pattern C13:
#? [O8]*

-Trevor





reply via email to

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