File: TODO

package info (click to toggle)
gnugo 2.4-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 1,816 kB
  • ctags: 1,828
  • sloc: ansic: 22,091; tcl: 401; sh: 376; makefile: 202
file content (111 lines) | stat: -rw-r--r-- 4,941 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
-------------------------------------------------------------------------
-- TODO
-------------------------------------------------------------------------

                          Gnu Go Task List

You can help make GNU GO the best Go program.

This is a tasklist for anyone who is interested in helping with Gnu Go.
If you want to work on such a project you should correspond with us
until you we reach a common vision of how the feature will work!

If your revisions are extensive, the Free Software Foundation will
want you to sign a copyright disclaimer before they can be part of
the official release. 

Here is a list of things YOU could work on. Two of these tasks
are marked TAKEN because someone has already started thinking
about them.

EVEN IF AN ITEM IS MARKED TAKEN, if you have an idea about how it
should be done, write to the person who is working on it. They may
want your help.

//--------------------------------------------------------------
// long term issues
//--------------------------------------------------------------

These issues are more strategic in nature, they will help the 
program play better or enhance certain aspects of it.

1. Convert documentation to texinfo. We can maintain the documentation
but could use some help converting it.

2. If you can, send us bug FIXES as well as bug reports. If you see
some bad behavior, figure out what causes it, and what to do about
fixing it. And send us a patch! (If you find an interesting bug and
cannot tell us how to fix it, we would be happy to have you tell us
about it anyway. Send us an sgf file.)

3. Tuning the pattern database. This is a sort of art. It is not
necessary to do any programming to do this since many of the programs
do not require helpers. We would like it if a few more Dan level players 
would learn this skill.

4. The reading code assumes that a string with four liberties is
safe. Sometimes this leads to expanding a dead group into enemy
territory, a simple waste. An improvement in strength would result 
from either increasing this to five liberties, or (better) giving 
heuristics based on moyo/escape route considerations.

5. Semeai module is vastly in need of improvement. In fact, semeai can
probably be only analyzed by reading to discover what backfilling is
needed before we can make atari. Also, semeai module should be able
to change the status of dragons.

6. Figure out what we should do about ko fights. This may require a
paradigm shift in the reading code---the routines in reading.c
recognize the outcome of a read as alive or dead, but not ko. Maybe
we'll get the type of reading that results in ko in the context of the
limited alpha/beta search proposed under 8 below. At another level,
GNU needs to understand how to go out an look for ko threats.

7. Instead of diag_miai_helper forcing a connection, have it set
a connection goal for two dragons. Then search for a better way
of connecting. Or, more simply, write patterns with a slightly
higher value which make better connections.

8. One move lookahead (say for candidates valued > 80, which would
include most moves intended to attack and defend strings) would
prevent many errors. The worm, dragon, half eye and strategic distance
data would have to be pushed and popped.

9. Item 10 is a first step towards alpha-beta pruning. Implement a
reading mode in which a static evaluation function based on the
territory estimation in moyo.c is very selectively evaluated at
deeper nodes of the move tree. Even very selective deeper reading and
alpha/beta pruning will allow Gnu Go to make more informed decisions 
than is currently possible. At least, Gnu Go should be able to evaluate as
many variations as a shodan without too much time penalty.



//--------------------------------------------------------------
// short term issues
//--------------------------------------------------------------

- Some -m options are broke 
- Document -m levels in gnugo.6
- fix Bill Shubert's URL throughout (gnugo.6 and README)
- fix nuri.net (gnugo.6 and README)
- some modules don't call move_considered
- revise TODO
- revise docs/OVERVIEW

- make every part of the program use the calls in interface
- add capability for gnugo to talk to cgoban in more detail... sgfp
- increase test suite
- liberty.h needs to be broken into a public header and a private
   header. Though actually, if it is interface/ which is defining an engine's
   public interface, then stuff can be defined there instead of an
   engine-public header.
- Looks like the help output is not nicely lined up : perhaps there's
   some tabs in there instead of spaces..?
- Find a better way to pass movenum and boardsize to engine.
  Possibly collecting the game info into the structure, then 
  passing this structure into the engine as part of its 
  initialisation. (Perhaps this was Nils' original plan..?)
- separate the public and internal prototypes into separate header files.