[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: unmake move?




I don't do anything fancy.  I just count liberties.  There
are a few shortcuts.  If it is the opponent's move
and the string has one liberty, you can stop, so there
is no need to get to zero liberties.  And I look at
approach moves and second order liberties, so often I
can prove early that a string must be able to get 5 liberties.
That lets me avoid search for single stone groups with 4
liberties and lots of space around.  I also look at the liberty
count of neighboring enemy groups, and stop if there are
a lot of enemy neibors with 1 or 2 liberties.  I also recognize
small eyes and seki.

The main thing for me is to do good move generation and sorting.
Only try moves that have high probability of working.  You can
get pretty good move sorting just by looking at second order
liberties (liberties of liberties).  I have about 3500 lines of
move generation code, but it's been tuned for 15 years :)

David


At 01:33 AM 6/9/00 -0400, you wrote:
>
>> String tactics is fast since the evaluation is just the
>> number of liberties.  Stable is 5 liberties, and captured is
>> zero.
>
>I do this too, but I don't do it very well.  I'm  not sure which moves
>to cover.  I consider all moves to the  liberties of the target string
>and have some simple stopping rules to  try to control  the search.  I
>include some  moves that attack the  opponent if it's  relevant to the
>target string.  I can  find ladders and the  thing does work, sort of.
>I also test  for trasnpositions.   I  call the routine  twice for each
>string.  I believe what  I'm doing is fairly  standard, but I know  my
>implementation is  broken in  the sense that   I'm including too  many
>moves.
>
>Is there a good description of how this might be done somewhere?  I am
>sure I don't have it right.
>
>I had  always thought that programs  do some static evaluation  in the
>tactical search to  avoid the blowup  and that  that is  what is wrong
>with my routine.   I can imagine that  there might be  ways, with some
>kind of simple (or not  so simple) analysis,  to find out that further
>searching is  futile for this  tactical string search.  I just haven't
>figured it out.
>
>Don
>
>