Hi all,
here is a proposal for a set of rules to tell "false eyes" from "real eyes". I am not yet 100% sure, if these rules do work or if there are any good for implementation in a go-program. But I would be happy to know your thoughts on them.
Thanks and best regards
Christoph
============================================
First some terminology....
A "cluster" is a set of connected black or white stones
A "region" is a set of connected empty vertices surrounded by one or more clusters or the border of the board.
Two clusters are "linked", if they share at least one common region. I will then say that the clusters are "linked via this region".
A "group" is a set of linked clusters. I consider "life or death" a property of a group.
When looking for eyes of a group, all regions belonging to this group are candidates.
Now the question: Which regions are real eyes and which regions are false eyes?
I propose this rule:
1. A region having only one cluster is a real eye.
2. A region having more than one cluster is a real eye, if any two of its clusters are linked via another region. (the region in question does not count).
3. A region of size >3 is a real eye in any case.
What would you say. Are these rules correct? Can you find any counter-examples?
Example 1: Take this position:
..........
.oooooooo.
.oxxoxxxo.
.ox.xx.xo.
.oxxoxxxo.
.oooooooo.
..........
o = white, x = black, . = empty
In the above terms, this position translates to:
..........
.00000000.
.01102220.
.01a22b20.
.01102220.
.00000000.
..........
0 = white cluster #0
1 = black cluster #1 linked to cluster #2 via region a
2 = black cluster #2 linked to cluster #1 via region a
a = black region #1
b = black region #2
Region a is a false eye: It has two clusters #1 and #2 and those are only linked via region a.
Region b is a real eye: I has only one cluster #2.
Example 2:
..........
.oooooooo.
.oxxooooo.
.oxaxxxxo.
.oxxoooxo.
.ox.o.oxo.
.ox.oooxo.
.ox.o.oxo.
.ox.oooxo.
.oxxo..xo.
.oxbxxxxo.
.oxxooooo.
.oooooooo.
.........
x = black, o = white, . = empty, a = empty, b = empty
Regions a and b both look like false eyes first because they have two clusters. But in both cases, the two clusters are linked via a different region, so both eyes are in fact real and the black group is alive.