[Pachi] Better semeai handling ?

lemonsqueeze lemonsqueeze at free.fr
Mon Apr 25 14:48:10 CEST 2016

Oops, i guess i meant to create another thread. You can ignore the other 
one ...



I've been wondering how to improve semeais:

I did some experiments reusing hashed moves from the tree in playouts as
in the alphago paper, it seems to work but only with early phases of the
semeai as the tree doesn't go very deep into it usually. So unless
playout policy can follow up on it doesn't seem to help much (or we'd
need the tree to read the whole sequence out somehow to have the moves
in the hash table ? doesn't look straight forward though ...)

I'm playing with a moggy unit test to see what's going on in the
playouts (t-unit/moggy_semeai.t in my moggy_test branch on github).
Looks like it gets in trouble as soon as it's more than 2 liberties race:

X . O X . O
X . O X . O
X . O X . O
. X X O O .
. . . . . .
. . . . . .

So moggy could definitely use some help. The thing i don't understand is
how it can work for alphago. If i understand correctly their fast policy
uses probability distribution from pattern features as in Remi Coulom's
2007 paper, which is also what pachi's pattern.c implements and uses for
priors, but not for playouts. (I see there was once a playout/elo.c
which did that. Just wondering, what was the problem with it ?)

It seems most of the features they use are also in moggy, but there must
be a big difference also (i doubt moggy gets 24% prediction rate =)
I guess this must be this one which we don't seem to have :

    "Response pattern"   Move matches 12-point diamond pattern near
                         previous move

So something like this ?
      * * *
    * * . * *
      * * *

Maybe their definition of 12-point / 3x3 pattern is different too ?

    "Patterns are based on stone colour (black/white/empy) and liberties
     (1, 2, ≥ 3) at each intersection of the pattern."

I don't understand much about the pattern code, but it doesn't look like
we take liberties into account for 3x3 patterns, right ?

Still puzzled how this could handle semeais decently without any
procedural code, but if it works, why not =)


More information about the Pachi mailing list