Typical problems in liberty races

Issue #46 new
dsmic created an issue

If two strings are close with liberties the outside string is killed first usually, as there are more moves touching from the outside due to the local rules in playouts. More starting points seem to result in touching the outside string.

  • The playouts should take care to reduce the liberties of the inside string with some probability?

Comments (6)

  1. dsmic reporter

    Would be great, if we could start a discussion on this. I have no idea how something like this could be implemented with good performance...

  2. Francois van Niekerk repo owner

    Semeai (liberty races) are notoriously difficult for MCTS engines. I think it is non-trivial just to detect situations like this.

    How do other program deal with this? I thinking specifically of open source programs like Pachi. If I recall correctly, some programs have a special heuristic for when two neighbouring groups each have two or fewer liberties. I'm not sure, but this might make sure that at least simple semeai are resolved correctly in the playouts.

  3. dsmic reporter

    I am trying to adress this issue at the moment. I have some ideas and I hope my first one will at least not harm:)

    I collect a statistic, after how many moves each position is played in the playouts. I want to reweight the random playout moves with this information (at least partly). This should make sure, that the group in danger is at least not calculated 95% alive as in the example and the tree search has a chance to further investigate the situation...

  4. dsmic reporter

    THe idea seams to be at least partly doing what I hoped. You might have a look at my branch reweight_and_naked.

    If you are interested you can play a little with test_p4 (it is a number of quick pick random moves from which the one is taken, which is played latest in the statistics) and have a look at the "show move probability" analyser tool. It shows black squares scaled with the mean number of moves till the position is played in playouts.

    From my understanding it is a good idea to weight random moves correctly! It is not a solution to only make the liberty races behaviour better, but should be good in principle?!

    test_p4 is only float because all my test parameters are float, will be int later:)

    I did not test naked behaviour. I will run a off line trainig with this.

  5. Log in to comment