Adversarial reasoning: a logical approach for computer go

Go is a game with simple rules but complex strategy requiring ability in almost all aspects of human reasoning. A good Go player must be able to hypothesize moves and analyze their consequences; to judge which areas are relevant to the analysis at hand; to learn from successes and failures; to generalize that knowledge to other “similar” situations; and to make inferences from knowledge about a position. Unlike computer chess, which has seen steady progress since Shannon’s [23] and Turing’s [24] original papers on the subject, progress on computer Go remains in relative infancy. In computer chess, minimax search with pruning based on a simple evaluation function can beat a beginner handily. No such simple evaluation function is known for Go. To accurately evaluate a Go position requires knowledge of the life and death status of the points on the board. Since the player with the most live points at the end of the game wins, a small mistake in this analysis can be disastrous. In this dissertation we describe the design, performance, and underlying logic of a knowledge-based program that solves life and death problems in the game of Go. Our algorithm applies life and death theory coupled with knowledge about which moves are reasonable for each relevant goal in that theory to restrict the search space to a tractable size. Our results show that simple depth-first search armed with a goal theory and heuristic move knowledge yields very positive results on standard life and death test problems – even without sophisticated move ordering heuristics. In addition to a description of the program and its internals we present a modal

[1]  Richard Bozulich,et al.  The Go player's almanac , 1992 .

[2]  Dexter Kozen,et al.  RESULTS ON THE PROPOSITIONAL’p-CALCULUS , 2001 .

[3]  Marc Pauly,et al.  Formalizing the dynamics of information , 2000 .

[4]  B. V. Bowden,et al.  Faster than thought , 1953 .

[5]  D. A. Mechner,et al.  All Systems Go , 1998 .

[6]  C. Shannon A chess-playing machine. , 1950, Scientific American.

[7]  M. de Rijke,et al.  A Proof System for Finite Trees , 1995, CSL.

[8]  Albert Lindsey Zobrist,et al.  Feature extraction and representation for pattern recognition and the game of go , 1970 .

[9]  David Wilkins,et al.  Using Patterns and Plans in Chess , 1980, Artif. Intell..

[10]  R. Parikh The logic of games and its applications , 1985 .

[11]  R. Goldblatt Logics of Time and Computation , 1987 .

[12]  Igor Walukiewicz Notes on the Propositional |-calculus: Completeness and Related Results , 1995 .

[13]  Willem P. de Roever,et al.  A Calculus for Recursive Program Schemes , 1972, ICALP.

[14]  Dexter Kozen,et al.  Results on the Propositional µ-Calculus , 1982, ICALP.

[15]  Jonathan Leonard Ryder,et al.  Heuristic analysis of large trees as generated in the game of Go , 1971 .

[16]  Martin Müller,et al.  Computer go as a sum of local games: an application of combinatorial game theory , 1995 .

[17]  Willem P. de Roever,et al.  Recursive program schemes: semantics and proof theory , 1976, Mathematical Centre Tracts.

[18]  David Lichtenstein,et al.  GO is pspace hard , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[19]  Anders Kierulf,et al.  Smart Game Board: a workbench for game playing programs, with Go and Othello as case studies , 1990 .

[20]  Thomas Wolf The program GoTools and its computer-generated tsume go database , 1994 .