Miai Counting when Tally == 0

The miai value of a position is calculated by taking the point swings from each player playing first in the position and summing their absolute values, and then dividing the sum by the sum of the absolute values of the respective differences in how many moves were played by each player in the respective hypothetical playouts, as I understand it. In a normal game I’d count the above position as 4 points miai because (2 + 2)/(1) = 4, under the shortcut that sente has a Tally of 1 and gote of 2. But how is the Tally here not 0? Shouldn’t that be undefined? Is it saying that it is impossible to assign a value to a double-sente play? Is the actual answer sensical in the complex plane, and only appears nonsensical because we’re only calculating the real part? Maybe the magnitude of the vector from the origin to a way of calculating Tally which outputs a complex number would give a sensible answer?

This is significant because I’m trying to figure out how to count the value of plays in Thue-Morse Go, and I need something more robust than a binary gote-sente distinction.

I know absolutelly nothing on this, having skipped over the below link. But have a look at it. but as i remember the resident expert would be someone like @BHydden i think.

Check this out.

1 Like

Maybe This?

  • floor(x...): a variadic function which takes in 2 or more real numbers and returns the value of the smallest.
  • abs(x): a function which takes in 1 real number and returns the absolute value of that number.

  • BScore: the local score (B = positive, W = negative) if Black plays first.
  • WScore: the local score (B = positive, W = negative) if White plays first.
  • BStones: the number of stones Black plays locally in the sequence.
  • WStones: the number of stones White plays locally in the sequence.
  • BTally: abs(BStones - WStones) when Black plays first.
  • WTally: abs(BStones - WStones) when White plays first.

  • Swing: abs(BScore - WScore)
  • Tally: floor(BTally, WTally) + 1

  • MiaiValue = Swing/Tally


This gives (if I understand correctly) the same results as Miai Counting when playing orthogo, and seems to give reasonable results in TMG (Thue Morse Go). Does anyone have any better answers to the OP?

But how is the Tally here not 0?

The tally here is not 0 when the ambient temperature is high-enough
that one would tenuki - either the hane, or the first-line connection.
In this case, I think

it’s better to atari and not connect than to not atari
the hane-connect has miai value 20
the result has miai value 18


Absolute double-sente requires outcomes of +infinity and -infinity.
For such game values, the miai value is +infinity, since
one would play it before a T-point gote for all finite T.

For Thue-Morse play, one could probably approximate values by comparing

outcome of just coupons ​ ( Environmental Go at Sensei's Library )
outcome of those coupons plus the region

for each sub-sequence of the Thue-Morse sequence with
length equal to [number of coupons plus depth of region].

I’m not sure those will actually converge, but I’d be surprised if they don’t.

Wow, old thread with a question that nobody ever answered. :slight_smile:

Yep, @hoctaph is right. In any real situation, the tally is never zero. From the miai counting perspective, there is no such thing as double sente. In situations like @Samraku described above, for at least one of the players (often both, but at least one), the “double sente” move is not sente at all, it is simply an extremely large reverse-sente or gote move, merely one that happens to leave an almost as large gote followup for the opponent.

For example a “2 point double sente” might in truth be a gote 30 point gaining move that leaves a gote 28 point gaining followup by the opponent. In normal board situations, after the first player takes the 30 point gote, the 28 point gote move would be the next largest move on the board so the second player would take it next, making it appear as if it were a 2-point double sente. But double sente doesn’t exist. If elsewhere on the board there were an exactly 29 point move, then the second player would tenuki, revealing the true gote nature of the first player’s move.


Also, pro players understand this, at least instinctively. This is why in pro games or AI games, you sometimes see a player play what seems to be a sente or double sente move, the second player ignores and plays another huge move/threat/probe instead, the first player ignores and follows up on their original move, etc and some huge trade happens. In some cases, this is not merely fighting spirit or mutual damage or one player making a mistake - sometimes this is both players entirely logically playing the moves in correct order of size/urgency and that is just how the move values happened to turn out.

1 Like

I would also add that trying to assign a single miai value to a move as a means of putting them in order and then playing them in decreasing order is a shortcut that’s not really a shortcut in practice when you have quite large decision trees making giant fractions and there is not a smooth continuum of move sizes available. Tedomari is important and I actually find it easier to read and calculate situations like this as not a single number but “4 points gained if he answers, or leaving a 40 point followup if gote” (so you can call with 4 + (40/2) if you want) and then read out the other big endgames similarly and see how they combine.

1 Like