gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] Half and false eye with ko.


From: Gunnar Farneback
Subject: [gnugo-devel] Half and false eye with ko.
Date: Sun, 25 Nov 2001 19:43:49 +0100
User-agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/20.7 (sparc-sun-solaris2.7) (with unibyte mode)

A typical false eye looks like this

.X..
.XOO
OO.O
.XOO
.X..

while a typical halfeye looks like this

.X..
..OO
OO.O
.XOO
.X..

There are more variations of course, but the analysis is fairly
straightforward. This is documented in doc/eyes.texi (particularly the
Eye Topology section) and implemented in topological_eye() and
evaluate_diagonal_intersection. Specifically we can notice that
topological_eye() returns the following values:

 2 or less if (m, n) is a proper eye for (color);
 3 if (m, n) is a half eye;
 4 or more if (m, n) is a false eye.

A weakness of this scheme, which is very apparent in e.g. test cases
trevor:350,470,471 but currently also makes itself known in
ld_owl:157, is that it can't handle diagonals whose status are
contingent on ko.

The typical cases of this would be

    .X..
(a) .XOO
    OO.O
    O.OO
    XOX.
    .X..

and

    .X..
(b) ..OO
    OO.O
    O.OO
    XOX.
    .X..

It seems to me like this could be handled by assigning the topological
eye value 3.5 to (a) and 2.5 to (b) and that this should be reasonably
straighforward to implement.

In order to make use of this we would also have to revise
compute_eyes() and compute_eyes_pessimistic() which would probably be
best done by effectively evaluating the eye space twice, once after
rounding the topological eye value up and once after rounding it down.

Comments?

/Gunnar



reply via email to

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