Programming the Game of Go with Artificial Intelligence (AI)

1784 Words4 Pages

Programming the Game of Go with Artificial Intelligence (AI)

Introduction

The game of Go is an ancient board game which until recently has resisted attempts to automate Go game playing moves by computer. This document will investigate the use of Artificial Intelligence to aid the construction of a Go playing program. Also, this document will examine the latest thinking in AI, applying where such thinking might aid a computer program to play Go. The history of Go Game programs will also be examined with a view to mining techniques that they employ.

The questions to be answered are:

Why is Go so hard to enable computer programs to successfully play the game?

What is artificial intelligence? And how might it be applied usefully to play Go?

What is fuzzy logic and could it be applied to play Go?

What is the latest thinking in Go programming.

How successful have Neural nets, and techniques like the Monte Carlo search been?

What are examples of modern Go playing programs? How well do they play?

Which programming techniques have brought the most benefits?

Why is Go Hard to program?

There are several reasons that make the competent playing of the Game of Go by computer difficult. Perhaps the most obvious difficulty is the board size. Go itself can be played on a variety of board sizes such as 5x5, 9x9, 13x13, however the usual club or professional game will take place on a 19x19 board. For any computer program to be taken seriously, it really ought to perform well on the 19x19 board. Unlike in chess, an initial move can be placed anywhere on the board ( although it is true that strategically, only a handful of moves are actually considered). This does mean that a ‘brute force’ approach which generates all combinations of mo...

... middle of paper ...

...he search involves repeatedly taking the first node off the queue, finding that node’s successors, and putting them on the end of the queue. This continues until either the first node on the queue is the goal or target state, or the queue is empty. If the first node is the target state the algorithm will signal success (e.g. return TRUE). Otherwise the search fails. What is nice about about this algorithm is that by simply replacing the queue with a stack the same algorithm now performs a depth first search. Having a stack allows the algorithm to ‘backtrack’ to previous nodes and then select new routes from that node. Simply searching for a target on this basis is called a ‘blind search’. Using additional information that might aid the algorithm to more intelligently find the target is called a ‘heuristic search’ an example of which is the A* tree search algorithm.

Open Document