[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Search heuristics
Many Faces uses a similar heuristic. For each cantidate
liberty, I count the number of adjacent empty points to that
liberty (Daniel's 2nd order liberties), then make a small
correction for nearby enemy stones and playing on a libety farther
from the edge, which captures some sense of the 3rd order liberties.
Since the enemies key point is often your own, when one of
your moves is refuted I change the order and try the move that
the enemy used to refute it next.
David
At 08:41 AM 11/22/99 -0800, Daniel Bump wrote:
>
>Consider the problem of determining whether a string
>can be capture. Different classes of attacking moves
>must be considered:
>
>(1) filling a liberty;
>(2) defending a boundary string which is under attack;
>(3) certain moves at a distance such as capping moves.
>
>The search tree can be pruned if the candidate
>moves are considered in an intelligent order. Often
>the best attacking move is also the best defensive move.
>
>Considering only moves of type (1), I want to suggest
>a simple heuristic which often finds the best move.
>
>Define an n-th order liberty to be an empty vertex
>at distance n from the string. Define a word
>(abc) where a is the number of liberties, b the number
>of second order liberties and c the number of third
>order liberties.
>
>The heuristic is that this word gives a good measure
>of the escape potential of the string. The words are
>ordered lexicographically.
>
>Let us consider the following problem:
>
>......
>...X.. The question is how the O string is to
>.XXO.. be attacked.
>......
>......
>------
>
>....3..
>...X23. After this attacking move there there
>.XXO123 are 3 second order liberties, 5 third
>...X23. order ones. The resulting word is
>....3.. (135).
>-------
>
>......
>...X.. This attacking move results in the
>.XXOX. word (134). This is smaller than
>.32123 (135) in the lexicographical ordering
>..323. so this attacking move is better.
>------
>
>...... After O extends X has three attacking
>...X.. moves at a, b and c. The associated words:
>.XXOX.
>..cOa. a: (233) The heuristic shows a to be the
>...b.. b: (245) best attacking move. This is
>------ c: (234) correct.
>
>The heuristic is not always correct but it is often
>a good guide. GNU Go does not use this exact heuristic
>but does use similar ideas to order the moves at each
>node during reading.
>
>Daniel Bump
>http://www.gnu.org/software/gnugo/devel.html
>
>