gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] (no subject)


From: Inge Wallin
Subject: [gnugo-devel] (no subject)
Date: Tue, 27 Nov 2001 22:41:05 +0100 (MET)

I tried to set AA_THREAT_DEPTH to 3 today to see if it worked as
intended.  Indeed it solved blunder:1 and blunder:16, which is what I
hoped and thought.  More interestingly, it FAILed blunder:13 and did
not pass blunder:17.

When I examined blunder:17 more closely, I found the following
problem:


   A B C D E F G H J K L M N O P Q R S T
19 . z . z A . . . . . . . . . . . . . . 19
18 z z z z A . . . . . . . . . . . . . . 18
17 A z A A y A A . A . A A A . . . A A A 17
16 A A A + . A x A A A A x x A A A x x A 16
15 . . . A . A x x A x A A x x x A x x A 15
14 . . . . . . A x x x x A A A x x . x A 14
13 . . A . A . A A A x x A A A A x . x A 13
12 . . . . . w A x x x x A x A x x x x A 12
11 . A . . v A A A A x x x x A A x A A A 11
10 . . . u A t t t A A x . . x x + x A x 10
 9 . A . A A t . t t A x . . . . . x x x 9
 8 . . A A t t t B B x . x x x x . . . . 8
 7 A A t t t B B B x x x . x B B x . . . 7
 6 A t t . . t t B B x x x B B B x C . . 6
 5 t . . . . t B B x x B x x B x x C x x 5
 4 . . t t . t B B x x B B x B x x x B x 4
 3 . t . t t t t B B B . B B B B B x B B 3
 2 . . t D t B B . . B . . B . B B x x B 2
 1 . . . D t t B . B . . B . . . B B B B 1
   A B C D E F G H J K L M N O P Q R S T

As you can see, S5 is amalgamated with Q7 (both are marked with x).
This is not surprising, since neither of them is attackable by
themselves.  But nevertheless it is possible to capture one of them,
and this is of course the reason why the atari_atari module is there
from the beginning.

The problem is that S5 should not be amalgamated with Q7.  First, it
destroys GNU Gos idea of who has territory where, and second it
destroys the notion of what has to be defended.

The cause of all this is that the information from atari_atari is not
used in the dragon analysis.  But this is a chicken and egg problem:
Atari_atari uses information about dragons and dragon statuses in
compute_aa_status() and the dragon analysis should use information
from atari_atari.

One way of solving this problem would be to run atari_atari twice:
Once before make_dragons() where we regard all strings as alive if
they are not tactically captured and only generate information about
capture status.  And then later like today where aa_status[] is
computed like now with information about live and dead groups.

The question is: Is there a better way to solve it?  Another, more
general, way would be to make amalgamation a revertible operation.
When we find information later in the process, we could split dragons
into smaller sub dragons.  The more advanced owl module is one example
of a module that could provide information that would make such a step
necessary: "we can live, but we lose a tail in the process".

By the way, to set the atari_atari depth to 3, change utils.c line 468
into the following:

#define AA_THREAT_DEPTH       3

It is a change that I suggest that we take even though it happened to
uncover a deeper problem somewhere else.

        -Inge



reply via email to

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