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

computer-go: Go4++: Passing in tsume searches.



Passing in tsume searches.
==========================

In go4++ I have an (alpha-beta-minimax) tsume searching module which 
searches local life and death situations. The search mechanism explores 
the tree of possible moves in neatly bound regions. The object of the 
search is to determine the status of a given group of stones. The group 
on the inside of the bound region is called the "defender" and the group 
around the outside is called the "attacker". All moves in the search must 
be inside the bound region or pass. The possible answers to the search 
are:

Alive.
Ko.
Seki.
Dead.
Unknown.

During the search there is effectively no ko rule. What I do instead is 
to repeat the search twice, once with the option "white wins all ko's" 
and once with "black wins all ko's". When "black wins all ko's" is set 
then white is simply not allowed to make a ko move in the first place, it 
becomes an illegal move that won't even be tried. If the search result is 
different depending on who wins ko's then the final result is said to be 
ko.

A node in the tree search can be considered "terminal" for several 
different reasons:

1. Part or all of the original defending group is captured in which case 
a value of "DEAD" is passed back up the tree.

2. A function determines that the defending group has 2 eyes in which 
case a value of "ALIVE" is passed back up the tree.

3. the previous two nodes were both passes in which case a value of 
"SEKI" is passed back up the tree.

4. the tree is deemed too deep or bushy in this variation in which case a 
value of "UNKNOWN" is passed back up the tree.

At each non-terminal node in the tree I have to generate a list of 
possible moves for the next turn. This often includes a pass move. There 
are clearly situations where the defender *must* pass. For example when 
the defender has exactly 2 liberties both of which are eyes. It should be 
noted that if the defender has 3 liberties, two of which are eyes then it 
could play a move on that third liberty instead of passing - that 
wouldn't affect the final outcome.

I now have two questions:

Are there any tsume problems where the defender *must* pass *more than 
once* (not necessarily consecutively) in order to prove it's alive or 
seki?

Are there any tsume problems where the defender *must* pass but the pass 
move is not the defenders last move before the search terminates?

My suspicion is that the answer to both these questions is "no", but I'm 
not sure. I would like to know the answer because then I could ban a 
whole load of pass moves and make the search tree much smaller.

Mick.