19
1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

1

An Efficient Algorithm for Eyespace Classification in Go

Author: Peter Drake, Niku SchreinerBrett Tomlin, Loring VeenstraPresented by: Xiaozhen Niu

Page 2: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

2

Outline Introduction Eyespace Simple and Improved Canonical

Form Whole Board Evaluation Summary Limitations

Page 3: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

3

Introduction Eye evaluation is important

for life and death problem Goal: create a database for

eyespace classifications

Page 4: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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

Page 5: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

5

Example Group A: alive, B: dead, C: alive, D: unsettled

Page 6: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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

Page 7: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

7

Size True:

Size 1 or 2 are dead Size 3 is unsettled

Assumption: Any eyespace of size 7 or more is

alive

Page 8: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

8

Shapes Shapes of eyespaces from size 1 to 6

Page 9: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

9

Graph Representation Adjacency matrix representation:

Page 10: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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

Page 11: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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?

Page 12: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

12

Example Group A, B and C are different, however they

should have the same representation!

Page 13: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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?

Page 14: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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

Page 15: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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

Page 16: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

16

Example A: dead, B: unsettled C: alive D: unsettled Therefore E is

alive

Page 17: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

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)

Page 18: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

18

Limitations Only handles

eyespace of one group!!!

Surrounding information is important!

Page 19: 1 An Efficient Algorithm for Eyespace Classification in Go Author: Peter Drake, Niku Schreiner Brett Tomlin, Loring Veenstra Presented by: Xiaozhen Niu

19

Another Example

Capture racing!

W: 27 liberties

B: 15 liberties But…