Programming the game of Go with artificial intelligence (AI)IntroductionThe game of Go is an ancient board game that until recently has resisted attempts to automate the game of Go by reproducing the moves via computer. This paper will look at the use of artificial intelligence to help build a Go-playing program. Additionally, this paper will look at the latest ideas in artificial intelligence, applying them where such ideas might help a computer program play Go. The history of Go Game programs will also be examined, taking into account the mining techniques they employ. The questions to be answered are: Why is Go so difficult for computer programs to play successfully? What is artificial intelligence? And how could it be usefully applied to playing Go? What is fuzzy logic and could it be applied to playing Go? What is the latest Go programming idea. How successful have neural networks and techniques like Monte Carlo search been? What are examples of modern Go game programs? How well do they play? Which programming techniques brought the most benefits? Why is Go Hard programming? There are several reasons that make it difficult to play the Game of Go competently on a computer. Perhaps the most obvious difficulty is the size of the board. 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 should work fine on the 19x19 card. Unlike 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 means that a "brute force" approach that generates all combinations of mo...... middle of paper ......search involves repeatedly removing the first node from the queue, finding that node's successors, and insert them at the end of the queue. This continues until the first node on the queue is the target or target state or the queue is empty. If the first node is the target state the algorithm will report success (i.e. return TRUE). Otherwise the search fails. The nice thing about this algorithm is that by simply replacing the queue with a stack, the same algorithm now performs an initial thorough search. Having a stack allows the algorithm to "go back" to previous nodes and then select new paths from that node. Simply searching for a target on this basis is called "blind search". Using additional information that could help the algorithm find the target more intelligently is called "heuristic search", an example of which is the A-tree search algorithm*.
tags