next up previous
Next: Bibliography Up: The Go-Playing Program Called Previous: Experiments

Discussion and future work

The swarm intelligence tries to avoid the two main problems in building an artificial player for Go: large branching factor and difficult evaluation of game positions. The exponential growth of the game tree is avoided by exploring a constant number of nodes at each depth. Difficult evaluation is avoided by evaluating positions only in the very end of the game when evaluation is trivial. Swarm intelligence can also benefit a lot from parallel processing, since different ants can be separated to different processes easily.

There are numerous ways to improve Go81: One could tune numerical parameters in the program by using for instance genetic algorithms [1]. The ants seem to get distracted when there are dead stones on the board. They waste moves to actually capture them, when one could just wait and do more important moves elsewhere. The ideas of Bouzy et al.[5] seem to help in that. To make Go81 more fit to play on bigger boards, one should consider patterns larger than 3 by 3. They would be especially usefull in the opening, so perhaps the patterns with just a few stones would suffice. Also, the swarm provides an estimate on who is leading the game. When ahead, one should be more defencive and vice versa.

One interesting perspective would be to provide more information to the ants. Especially local search trees answering some tactical problems would be useful. A simple special case of that would be to provide the ants with miai points, that is, if the opponent plays to one of two points, the ant should immediately answer by playing to the other one. This would help to achieve a better level of reading complicated tactical fights.

Go81 plays the game only twice to the end to determine the focus of the game in sense of large undetermined territories. This can be generalized in case more information than just the two games are available. A promising way to do that seems to be the covariance between the outcome of a certain point with the score (i.e.  the sum of outcomes of all points). That is, whenever one of the players thrives in some part of the board, how important it is for the whole game. Figure 5 shows an example situation. Human players tend to agree that the critical area seems to be the one suggested by this heuristic. One could guide the ants in various ways depending on how far they are in the search tree. First they would be guided by expected outcomes (smell traces), then by covariances, and finally, deep in the search tree, letting them function without guidance. Stern et al. [8] model the territorial outcome given the current position by using data from professional games. Perhaps they would benefit from having the covariances in the data in addition to the expectations.

Figure 5: Left: An example board position on a 13-by-13 board. Middle: Expected outcome for each point. Darker colour represents a greater probability to end up as black players territory. Right: Covariance of outcome of each point with the score. Darker colour represents greater covariance.
\begin{figure}\begin{center}
\epsfig{file=fut_e_cov.eps,width=0.9\textwidth} \end{center} \end{figure}

Hyötyniemi searched for patterns in Chess position [11] even if Chess programs are typically not pattern-based. Go-playing programs, on the other hand, quite often use patterns. Automatic acquisition of patterns from Go game records has been studied as well [10]. These ideas can be extended by supplementing the board position with other information such as the expected outcome for each point. That way one could also predict the score based on the game state and a learned model. Figure 6 shows a very preliminary result on extracting patterns. 10000 board positions from 13-by-13 games are supplemented with the expected outcome information, and principal component analysis (PCA) is applied to the data. The resulting features resemble closely the features from applying PCA to natural image patches. No wonder it is often said that Go is a visual game.

Figure 6: First 15 principal components for data containing the board positions and the expected outcomes on a 13-by-13 board.
\begin{figure}\begin{center}
\epsfig{file=pca_13.eps,width=0.9\textwidth} \end{center} \end{figure}


next up previous
Next: Bibliography Up: The Go-Playing Program Called Previous: Experiments
Tapani Raiko 2005-05-10