GNU Go Documentation
1.5.3 Long term issues
These issues are strategic in nature. They will help us to improve the
playing strength of the program and/or enhance certain aspects of it.
- Extend the regression test suites.
See the texinfo manual in the doc directory for a description of
how to do this. In particular it would be useful with test suites
for common life and death problems. Currently second line groups, L
groups and the tripod shape are reasonably well covered, but there
is for example almost nothing on comb formations, carpenter's
square, and so on. Other areas where test suites would be most
welcome are fuseki, tesuji, and endgame.
- Tuning the pattern databases. These are under constant revision. This
is a sort of art. It is not necessary to do any programming to do this
since most of the patterns do not require helpers. We would like it if
a few more Dan level players would learn this skill.
- Extend and tune the Joseki database. It might be very useful to implement
a semi-automatic way of doing this.
- The semeai module is still in need of improvement. (This is underway.)
- The connection analysis is today completely static and has a hard
time identifying mutually dependent connections or moves that
simultaneously threatens two or more connections. This could be
improved by writing a connection reader. (This is underway.)
- GNU Go does not have a move generator that tries explicitly to build
moyos, or reduce/invade opponent's moyos. Such a move generator could
be built using the same type of code that is used in the owl life and
death reader, or the connection reader mentioned in point 5 above.
- A much improved combination module. The combination module of
today only finds combinations of threats to capture enemy groups.
A more useful combination module would e.g. find combinations of
threats to capture a group or enter opponent territory. It would
also be strong enough to find combinations of strategic moves and
more indirect threats (a threat to a threat). Possibly it could
combine threats in AND-OR trees (DAGs?) that could be searched
using ordinary tree search algorithms. (Revision of combination.c
is underway.)
- Speed up the tactical reading. GNU Go is reasonably accurate when
it comes to tactical reading, but not always very fast. The main
problem is that too many ineffective moves are tested, leading to
strange variations that shouldn't need consideration. To improve
one could refine the move generation heuristics in the reading.
Also, one should implement some more of the standard tree search
optimizations used in alpha-beta readers.
- Create a way to quickly assess the safety of a group. This might
take into account number of eyes / half eyes, moyo in corners, moyo
along the edge, moyo in the center, proximity to living friendly
groups, weak opponent groups etc. The point is that it should
involve no reading and that it is quick. This could be used to
make a strategic estimation of how a move strengthens a friendly
group and/or weakens an opponent group and how strong/weak groups
influence each other.
- In some positions GNU Go may report a group as alive or connected
with a living group. But after the opponent has placed one stone
GNU Go may change the status to dead, without going through a
critical status. It would be nice if these positions could be
identified and logged for later analysis of the GNU Go team.
- Automatic search for missing patterns by analysing games from
NNGS.