Go (or weiqi or baduk) is an extremely popular strategy game in East Asia that became more popular in the West during the last century. I first came across it several years ago and have played on an off since then, mostly on the KGS server. The concept is relatively simple: control spaces on the board for points. The game ends when both players pass and agree there are no moves worth playing and points are tallied. However, because of the large game space and limited rules for legal moves, any given game state may have dozens or even hundreds of legal moves. This is a major factor as to why the best Go computer AI is still easily defeated by professional and high-level amateur players.
The first few moves of the game are the opening or fuseki. While there are no set rules for the opening, general guidelines are usually followed that result in similar openings for most games. A very handy website fuseki.info aggregates data from online Go servers and can be used to produce this “most-common” fuseki:This shows the common preference to play near the edges of the board early to attempt securing territory in the corners and sides of the board.
I downloaded several high-level amateur games from the KGS archives and parsed out the first few moves. This board heatmap of the first six moves shows the relative popularity of each point. Again we see a general preference for the corners, but a few games had non-traditional plays near the center.I was curious to see if there was a trend among the different moves so I next calculated the distance from the center of the board to each play made. This scatter plot compares distance from center to the move number (e.g. 7th move in the game). The colors are only a visual cue to show the alternating black-white plays. Finally, I added jitter since the x-axis is all integer data.Note that the first four moves are highly clustered and similar, then moves six and seven cluster a bit more towards the center, and moves seven through ten diverge from the opening moves in both directions. Also we can see that some players are willing to take risks early on by playing in the middle, but no one ever plays the extreme edge moves that pop up starting at move seven.
This semi-fixed strategy in the opening makes it possible for Go AI to cut down on calculations early on. It would likely be impractical and too time expensive to calculate best moves using a search tree when the board is so open. Instead, the fuseki seem like a good candidate for applying heuristic rules instead of probability algorithms. If you want to play around with your own variations, I definitely recommend fuseki.info or playing your own games on the KGS Server! There’s also always a couple of bots on the server to experiment with that span a range of difficulties. And if you’re interested in a technical implementation, GNU Go is a good place to start.