Thursday, April 14, 2005

Atari Teenage Mutant Network

I recently discovered the game of Go some months ago. The rules of Go are amazingly simple, yet the game play can be quite complex. The rules of Go are concisely:
  • Two players alternate placing stones of their color on any open point (intersection) of a 19x19 grid.
  • Groups of stones of the same color that touch horizontally or vertically are called units.
  • If a unit ever has all its adjacent (horizontal or vertical) points occupied by enemy stones, the unit is removed.
  • No player may place a stone that would cause a previous board configuration to be repeated.
  • A player may choose to pass instead of playing a stone. If both players pass in succession, the game ends.
  • Players take the number of open points they have surrounded, and subtract one point for each of their removed stones. The player with more points wins.
With such simple rules, one might think that a computer player would be able to use some simple algorithm to play well. That line of thinking is amazingly wrong. Good human players of Go have an easy time beating their binary counterparts. The problem is that the large board size offers hundreds of possible plays each turn, forcing the computer to consider thousands of options just to see a few moves ahead.

Software Neural Networks are algorithms that attempt to recognize patterns in complex systems. Since Go has simple and natural rules, patterns emerge during game play. These patterns may be detectable by a properly trained Neural Network. If it works, the network would essentially recognize patterns in the board configuration and use this analysis to choose its next move. An evolutionary mechanism may be employed to mutate the network to achieve mastery over the best human players.



People have tried using Neural Networks to play go, but there have been no major breakthroughs, however program development still has a long way to go. The idea of solving a complex game like Go is pretty exciting, and I think techniques like Neural Networks can be used to put a huge dent in the problem. Who knows, in the future we might get battles of Software Neurons vs Human Neurons.

0 Comments:

Post a Comment

<< Home