A Note on Applying Graffiti's Ideas to Go Programming

Current Go-playing programs are not close to playing at the professional level. Unlike in the case of chess, where computing power more or less led to the design of a machine that could play chess at the very highest level, there is reason not to expect raw computing power to seriously advance work on machines that play Go. Researchers in this field need new ideas--and various ideas are being explored. The point of this note is to contribute one more idea, an idea derived from Siemion Fajtlowicz's work on mathematical conjecture-making programs.

Fajtlowicz (a mathematician at the University of Houston) wrote a very successful program (Graffiti) that makes mathematical conjectures. Graffiti's conjectures led to numerous papers by such luminaries of graph theory as Paul Erdos, Laszlo Lovasz, Noga Alon and Fan Chung. The basic ideas of Graffiti are described in the section "Graffiti" of my paper "Intelligent Machinery and Mathematical Discovery," available at math.uh.edu/~clarson. These ideas were successfully used to make mathematical conjectures; they are general and there is reason to believe they can be used in other areas besides mathematical conjecture-making--but no attempt has yet been made to apply them elsewhere. An interesting question which history will answer is just what areas these ideas can be successfully applied to. What characterizes these areas? How closely must they be related to the fields in which Graffiti has demonstrated success? My own belief is that they will prove to be widely applicable.

How might Graffiti's ideas be applied in writing a Go-playing program? Assume for simplicity that a winning strategy for black is desired. In attempting to apply Graffiti's ideas one might try to find a system of constraints that black's move would have to satisfy; black should put his stone on the first point he finds that satisfies these constraints.

Let the "objects" (the data) of our interest be positions after black's move in games in which black was played by a professional and black has won. The "invariants" should be polynomial-time computable. The simplest example would be the number of black stones on the board. Another would be the number of white stones. Another would be the number of connected black groups, etc. The more invariants the better. Go-playing skill and knowledge will definitely be an advantage for finding/creating new invariants. Given well-defined objects and invariants, conjectures (constraints) can be formed exactly as Graffiti does in the field of graph theory (and chemistry, geometry and number theory)--as described in the aforementioned paper.

This note only sketches an idea. There are certainly difficulties. For instance, having determined a system of constraints, will it always be possible to make a move that satisfies these constraints? It is my sincere hope (and I assume Fajtlowicz's too) that Graffiti's ideas will be built on and successful in Go programming.