How much does the size of the board influence whether a move is considered tenuki?

Despite the move history (usually) not mattering, looking close to to the last move is actually a very useful heuristic! If we take the average of distances between successive moves, this number will surely be lower for a good player than for a random bot.

(but of course, a weak human player may be playing too much locally, and will have an even lower average distance compared to strong play)

So for instance, when making an AI, it is counterintuitively helpful to supply it with the last few moves, even disregarding anything to do with ko.

I think it would be fun to make some sort of histogram over move distances throughout games at different levels, it’s a very easy thing to compute but could reveal some interesting patterns. I wonder if it’s better to use Manhattan or Euclidean distance for this purpose?


In the opening where most stones are disconnected and there is mainly open space, those distances may be meaningful.
But later in the game, longer strings of stones appear that separate different regions of the board and the safety of those strings (eyes, liberties, connectivity) would also play an important role in calculating some kind of distance metric that coincides with the perception of a human player about proximity/relatedness of any pair of board intersections. So I think that computing a meaningful distance metric becomes complicated very quickly. A good one might even require an AI.

1 Like

Well I was curious so I plotted a few games at different levels :slight_smile:


I calculated the Euclidean distance between each pair of moves, and rounded down to nearest integer to make these histograms. All games went to counting.

A randomly picked DDK game: (~15k)

A randomly picked SDK game: (~5k)

One of my games:

A KataGo game:

They all look quite similar honestly, but at least this shows quite well how even at KataGo-level, successive moves are more likely to be close together than not! And not only responding to attachments etc, even moves around distances 3-5 are more common than further away moves, at least in this game.

(I know this is quite obvious when you think about, but still cool to see visualized I think)


They all look quite similar honestly

You can clearly see the “tail” (ie. the range ~3–20) fattening with rank increase, though.


Indeed! Here are the averages from those same four games:

DDK: 2.928
SDK: 3.778
Dan: 4.822
KataGo: 4.907

From this sample size of 4 I conclude that this metric is perfectly correlated with strength, and we should all start tenuki:ing more to get stronger :wink:


How about for pros with different styles? E.g. Cho Hunhyun is known for his light play whereas Kobayashi Koichi was more slow and steady so perhaps Cho’s average displacement metric is larger?


I tried downloading a couple of games from each player, but I realized halfway through that I forgot to exclude games which ended by resignation, and then go4go started giving me some trouble. There’s probably too much noise anyways to conclude anything from just a couple of hand-picked games. If I could get my hands on a large collection of sgf:s from some different players that would be nice, but in the meantime, here are the averages for both players in this game:

Kobayashi Koichi: 4.299
Cho Hunhyun: 4.386

A very slight difference, but supporting your hypothesis :smiley:


go4go started giving me some trouble

There’s always Waltheri.

1 Like

Good idea! I filtered to games where the player in question played black, to make it easier to consider only their moves. I also filtered to games won by 0.5 points.

Here are all 4 games in Waltheri where Cho played black and won by 0.5 points:

Average: 4.460

Here are 4 randomly picked games where Kobayashi played black and won by 0.5 points:

Average: 4.697

So not looking great for the hypothesis anymore unfortunately :stuck_out_tongue: (but again, the sample size is way too small to say anything meaningful, especially given how much the number apparently changes from game to game)

Here’s the game responsible for that 5.775 outlier:

(white had an average distance of 4.641 in that game)


That outlier has many ko fights. Perhaps ko threats tend to be distant from the ko, thereby boosting the average distance?

Ko threats might seem geometrically unrelated to the ko, but semantically they are closely related to it (not really a tenuki).


In a way everything is tenuki for the perfect player as well: they don’t make choices that matter for themselves either, so one couldn’t really speak of “purpose” or “intent” there either.


So the typical average “awayness” in professional games (to borrow and misuse a term from Arimaa) is 4.0–4.8?

That’s already something I didn’t know.


Yes, it really brings us back to the original topic :slight_smile: Even if you had hundreds of games from each player and you noticed that one player had a higher average distance, it might be a better indicator of how much they like to fight ko’s than of how much they like to tenuki.

Although in that particular game, isn’t it interesting that black’s average is significantly higher than white’s? So it’s not only about kos.

Anyways, I think I’ve done enough numerology for one day now :stuck_out_tongue:


Obviously, a truly random play generator will make a perfect response sometimes, by any definition of “perfect”. Random doesn’t mean “probability zero of being correct”. Sometimes it means “probability .5 of being correct”, or some other number. Also, every random number generator has a probability distribution, which may be “flat random” meaning the same probability for generating any number, or some other distribution.

1 Like

Go Variant Idea:
Your Average Awayness must always be greater than x during the course of the game. If a play near your opponent’s last play would drop you below x, then it is greyed-out on the board.Your and your opponent’s current averages are displayed on the side for reference, and the effect of each move you consider is shown when you hover your mouse over a spot.


This gives me an idea: would it just as computationally challenging and interesting to program the weakest possible bot as to make the strongest?

Competitions could be held to see which bot could force its own loss.

Chinese rules, ofc, so that even dango score points and that easy route to loss is removed.

The EyefillTower bot?


It kind of reminded me of Benford's law - Wikipedia

I wonder is there some sensible assumptions that could lead to a predicted distribution. I’m not sure if it could be a poisson process to be a poisson, exponential or gamma type distribution.

Even weaker than the selfatari bot!

My intuition is that forcing a loss would be relatively easy to program. But new things can be learned by experimenting. Try it out on paper. See if you can write down an algorithm for losing, using operations that you simply invent as needed. I’ll bet it isn’t hard.

1 Like