gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] reverse followup valuation


From: Evan Berggren Daniel
Subject: Re: [gnugo-devel] reverse followup valuation
Date: Tue, 12 Aug 2003 15:53:32 -0400 (EDT)

On Tue, 12 Aug 2003, Paul Pogonyshev wrote:

> i have recently spotted quite a few positions where reverse
> followup is completely inadequate.  here are two very common
> cases:
>
>       XXXX
>       XO.O
>       XO.O
>       XXXX
>
> in this position the moves at '.' are avarded large reverse
> followups because they prevent an atari.  i can see no way to
> prevent such positions from matching in `Sente13' pattern.
> i'd propose the following solution: start a pattern database
> named say `invalidate.db' which will remove inappropriate
> followups/reverse followups/anything else.  the reason to
> have a separate database is that we need to be sure that
> invalidation patterns match after all other patterns.  first
> pattern in this database would look like
>
> Pattern Invalidate1
>
> O*O
> O.O
>
> :+,O
>
> A*B
> AaB
>
> ; lib(A) == 2 || lib(B) == 2
>
> > remove_reverse_followup(*);
> > remove_reverse_followup(a);

This will match in exrta places.  Namely, the following:

XXXX
XO*O
XO.O
XXOO

A play at * is worth a full point, because of the reverse followup.

>
>
> second common position is like this:
>
> OXXXXX
> .OO*..
> ------
>
> the move at '*' is avarded a reverse followup because it
> "prevents" atari.  actually, it only prevents atari from
> happening at '*' and moves it one/more vertices to the right.
> the proper solution would be to improve defend_against_atari()
> in `helpers.c'.  i'd suggest something like this:

Actually, I think this is correct:

A play at * is B's sente, or W's gote.  The swing is therefore 1 point,
and the local tally is 1 play.  Miai value is therefore a full point.  In
gnugo-style counting, it is a play with a reverse followup.

>
> IF move is adjacent to the string we are "saving" from atari
> AND after the move the string still has two liberties
> AND opponent has a safe atari on the string after the move
> THEN no reverse followup should be added
>
> maybe the first condition is not necessary because of not so
> common third position:
>
> O*XX
> O.OX
> O.OX
> OXXX
>
> here move at '*' receives a reverse followup because it prevents
> atari on the second white string.  but actually, it doesn't -
> it only prevents one of two possible safe ataries.
>
> i'd like to hear comments on this.  reverse followup valuation is
> important, especially in endgame.

Definitely agreed.  I think this database would probably work, but I am in
favor of local reading to try to find the answer instead of yet another
database.  Perhaps a hybrid approach would be best.

Evan Daniel




reply via email to

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