1
An Efficient Algorithm for Eyespace Classification in Go
Author: Peter Drake, Niku SchreinerBrett Tomlin, Loring VeenstraPresented by: Xiaozhen Niu
2
Outline Introduction Eyespace Simple and Improved Canonical
Form Whole Board Evaluation Summary Limitations
3
Introduction Eye evaluation is important
for life and death problem Goal: create a database for
eyespace classifications
4
Life and Death Definitions:
Alive: even if the attacker plays first, the defender can ensure alive
Dead: even if the defender plays first, the defender can not ensure alive
Unsettled: neither alive or dead
5
Example Group A: alive, B: dead, C: alive, D: unsettled
6
Eyespace Relevant features of an eyespace:
Size Shape Which points within the space, if any,
are occupied by friendly or enemy stones
Which points within the space, if any, are on edge or corner points
7
Size True:
Size 1 or 2 are dead Size 3 is unsettled
Assumption: Any eyespace of size 7 or more is
alive
8
Shapes Shapes of eyespaces from size 1 to 6
9
Graph Representation Adjacency matrix representation:
10
Simple and Improved Canonical Form Simple canonical form:
consider all possible numberings of the vertices, and choose the one that produces the lexicographically largest adjacency matrix
11
Drawbacks N! ways of numbering a graph with N
vertices Not enough information (internal
stones, edge of the board…) Different shapes really need different
representations?
12
Example Group A, B and C are different, however they
should have the same representation!
13
Improved Canonical Form Adding 7 label bits at the each row:
Stone (2 bits): 00 for black, 01 for white, 10 for empty
Edginess (2 bits): 01 on edge, 00 not on edge, 10 at corner
Neighboring (3 bits): how many neighbors it has?
14
Whole Board Evaluation How to determine
eyespaces? Use a simple
heuristic: if a contiguous group partitions the board to one or more disjoint regions, all of them except the largest one are eyespaces
15
Eyespaces of a Group If there is a
viable (unsettle or alive) enemy group inside one of the partition regions, that region does not count as eyespace
16
Example A: dead, B: unsettled C: alive D: unsettled Therefore E is
alive
17
Summary An accurate eyespace representation Can be used in static evaluation or during the
search Compared to Cazenave’s approach, slower but
more powerful, offering more information (internal stones, edges and corners)
18
Limitations Only handles
eyespace of one group!!!
Surrounding information is important!
19
Another Example
Capture racing!
W: 27 liberties
B: 15 liberties But…