gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] regression and TODO patch


From: Gunnar Farneback
Subject: [gnugo-devel] regression and TODO patch
Date: Mon, 17 Dec 2001 20:26:04 +0100
User-agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/20.7 (sparc-sun-solaris2.7) (with unibyte mode)

- TODO revised
- new and revised test cases

The new test cases is for a recent four stone NNGS game against
viking4. GNU Go played rather horribly in the early midgame and had a
completely lost position when everything looked settled. Then viking4
started to blunder even worse and GNU Go managed to get a small win in
the end.

/Gunnar

Index: TODO
===================================================================
RCS file: /cvsroot/gnugo/gnugo/TODO,v
retrieving revision 1.4
diff -u -r1.4 TODO
--- TODO        16 Dec 2001 15:57:36 -0000      1.4
+++ TODO        17 Dec 2001 19:19:11 -0000
@@ -45,41 +45,58 @@
 engine internals.  The issues are presented here in an approximate
 order of perceived difficulty.
 
-1. Complete the conversion to 1-dimensional representation.
+1. Add a check in patterns/mkpat.c that the main diagram and the
+   constraint diagram are consistent. A partial implementation would
+   only make sure that they have the same size.
+
+2. Complete the conversion to 1-dimensional representation.
    Check all comments before functions to make them agree with
    the actual function header.  In some cases these comments were
    missed when the function was converted to 1D.
 
-2. Break out handling of movelists into its own file and generalize it.
+3. Break out handling of movelists into its own file and generalize it.
    This is started in 3.1.16. Move lists are used, among other places, 
    in worms.c where it is used to store moves that capture, save, 
    threaten to capture and threaten to save the worm.
 
-3. Implement move lists storing important moves for dragons and eyes
+4. Implement move lists storing important moves for dragons and eyes
    in the same way as it is used for worms.  Half eyes are already
    halfway done.  The moves are stored, but not the attack and defend
    codes (LOSE, KO_A, KO_B and WIN).
 
-4. Make the cache not waste storage on 64 bit systems.
+5. Make the cache not waste storage on 64 bit systems.
+
+6. a) Add move history for "permanent" moves (i.e. ones done with
+   play_move(), in contrast to temporary moves done by
+   trymove()/tryko()) in the board code. Notice that the move history
+   must be added to the state in the Position struct.
+
+   b) Implement undo for "permanent" moves in the board code and
+   replace various other undo implementations in play_gtp.c,
+   play_ascii.c, and play_gmp.c with this.
+
+   c) Implement detection of superko violation in the board code. We
+   probably only want this optionally in play_move() and in a variant
+   of is_legal().
 
-5. The dragon data is split into two arrays, dragon[] and dragon2[].
-   The dragon2 array only have one entry per dragon, in opposition to
+7. The dragon data is split into two arrays, dragon[] and dragon2[].
+   The dragon2 array only have one entry per dragon, in contrast to
    the dragon array where all the data is stored once for every
    intersection of the board.  Complete the conversion of eye_data,
    half_eye_data, worm and dragon to use the same structure as the
    dragon2 array.
 
-6. Support for ko in eyes.db and optics.c.
+8. Support for ko in eyes.db and optics.c.
 
-7. Support for constraints in the eye patterns.
+9. Support for constraints in the eye patterns.
 
-8. Create a paradigm for handling other types of ko (approach move ko,
-   multi-step ko, etc) and then write code that handles them. (Difficult!)
+10. Create a paradigm for handling other types of ko (approach move ko,
+    multi-step ko, etc) and then write code that handles them. (Difficult!)
 
-9. GNU Go should be able to resign some games. This feature should
-   be able to be turned on or off since we don't want it during
-   tournament play. If all dragons are settled and GNU Go is
-   behind by a lot, it should be able to resign.
+11. GNU Go should be able to resign some games. This feature should
+    be able to be turned on or off since we don't want it during
+    tournament play. If all dragons are settled and GNU Go is
+    behind by a lot, it should be able to resign.
 
 //--------------------------------------------------------------
 // long term issues
Index: regression/trevor.tst
===================================================================
RCS file: /cvsroot/gnugo/gnugo/regression/trevor.tst,v
retrieving revision 1.37
diff -u -r1.37 trevor.tst
--- regression/trevor.tst       16 Dec 2001 15:57:36 -0000      1.37
+++ regression/trevor.tst       17 Dec 2001 19:19:31 -0000
@@ -571,7 +571,7 @@
 #? [1 H1]
 
 loadsgf games/trevor/trevor_69.sgf
-690 owl_attack H3
+690 owl_attack H2
 #? [1 G2]*
 
 
Index: regression/viking.tst
===================================================================
RCS file: /cvsroot/gnugo/gnugo/regression/viking.tst,v
retrieving revision 1.7
diff -u -r1.7 viking.tst
--- regression/viking.tst       18 Nov 2001 05:33:02 -0000      1.7
+++ regression/viking.tst       17 Dec 2001 19:19:31 -0000
@@ -24,3 +24,37 @@
 loadsgf games/viking1.sgf 189
 6 gg_genmove white 
 #? [B17|B18]
+
+# Locally S5 is the only move.
+loadsgf games/viking3.sgf 79
+7 gg_genmove white
+#? [!T7]*
+
+# A1 is of course inferior to B3
+loadsgf games/viking3.sgf 93
+8 gg_genmove white
+#? [!A1]*
+
+# The position cries out for a move at J13.
+loadsgf games/viking3.sgf 103
+9 gg_genmove white
+#? [J13]*
+
+# K15 leaves too many cutting points.
+loadsgf games/viking3.sgf 113
+10 gg_genmove white
+#? [K16]*
+
+loadsgf games/viking3.sgf 113
+11 gg_genmove white
+#? [!G19]
+
+loadsgf games/viking3.sgf 137
+12 gg_genmove white
+#? [S14|S15]
+
+# J9 is an overplay since it can be cut off.
+loadsgf games/viking3.sgf 213
+13 gg_genmove white
+#? [J10]*
+
Index: regression/games/viking3.sgf
===================================================================
RCS file: regression/games/viking3.sgf
diff -N regression/games/viking3.sgf
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regression/games/viking3.sgf        17 Dec 2001 19:19:33 -0000
@@ -0,0 +1,43 @@
+(;GM[1]FF[4]
+SZ[19]HA[4]KM[0.5]
+PW[GnuGo (GNU Go 3.1.16)]WR[14k*]
+PB[viking4]BR[17k*]
+PC[NNGS]DT[2001-12-15]AP[gnugoclient:2.0]
+RE[W+8.5]
+AB[dd][pd][dp][pp]
+;W[qn];B[np];W[lq];B[mo];W[cf];B[fd];W[cn];B[hq];W[qf];B[cj];W[nc]
+;B[oe];W[qc];B[qj];W[qd];B[nm];W[bd];B[cc];W[dh];B[bj];W[hc];B[ge]
+;W[bc];B[ei];W[kc];B[en];W[bp];B[eh];W[cq];B[ko];W[rp];B[qq];W[jp]
+;B[in];W[jr];B[ql];W[rn];B[cb];W[bh];B[nr];W[rq];B[rr];W[rl];B[dq]
+;W[qp];B[qh];W[ho];B[hn];W[qr];B[po];W[hp];B[dl];W[gq];B[dm];W[oc]
+;B[gn];W[bl];B[rk];W[pg];B[nf];W[er];B[dr];W[eq];B[eo];W[cr];B[ds]
+;W[rg];B[ef];W[es];B[gp];W[gr];B[bb];W[ac];B[fp];W[fb];B[pq];W[qs]
+;B[qo];W[sm];B[ro];W[sr];B[cs];W[bs];B[br];W[ar];B[as];W[aq];B[so]
+;W[bs];B[ph];W[rs];B[og];W[as];B[bk];W[le];B[lg];W[kf];B[kg];W[jf]
+;B[bi];W[bf];B[ls];W[he];B[hf];W[ci];B[hd];W[bn];B[dg];W[cg];B[jg]
+;W[id];B[ie];W[je];B[ic];W[ib];B[jd];W[ga];B[hb];W[gc];B[jb];W[kb]
+;B[if];W[ia];B[ja];W[kd];B[ha];W[ka];B[mr];W[ri];B[rh];W[sh];B[di]
+;W[ch];B[ag];W[ah];B[qg];W[sg];B[pf];W[qm];B[qe];W[re];B[rf];W[se]
+C[L:9];B[gd];W[cl]C[L:10];B[dk];W[de];B[ee];W[df];B[eg];W[lf];B[mf]
+;W[jc];B[id];W[fq];B[ep];W[cm];B[od];W[pc];B[md];W[mc];B[qi];W[me]
+;B[nd];W[si];B[sf];W[qf];B[sk];W[rf];B[pe];W[ld];B[sp];W[sq];B[ai]
+;W[kp];B[jn];W[lo];B[lm];W[ln];B[kn];W[mn];B[pr];W[mm];B[ml];W[nn]
+;B[mq];W[pl]C[L:8];B[qk];W[ll]C[L:7];B[lk];W[km]C[L:5];B[jl];W[mk]
+C[L:6];B[nl];W[nk]C[L:7];B[kl];W[lm]C[L:5];B[om];W[on]C[L:6];B[ni]
+;W[lj]C[L:7];B[kk];W[mi]C[L:8];B[mh];W[ji]C[L:9];B[ol];W[pk]C[L:7]
+;B[oj];W[ok]C[L:8];B[sl];W[lp];B[hi];W[ik]C[L:9];B[jj];W[ki]C[L:10]
+;B[jm];W[ih];B[os];W[hh];B[gi];W[gg];B[ks];W[pj];B[oi];W[lh];B[fr]
+;W[iq];B[rm];W[sn];B[rl];W[pn];B[io];W[kr];B[ip];W[hr];B[go];W[hq]
+;B[ii];W[jh];B[ig];W[cd];B[ab];W[dc];B[db];W[ed];B[ec];W[dd];B[eb]
+;W[ak];B[fg];W[gf];B[kj];W[gh];B[pi];W[co];B[mj];W[nj];B[cp];W[bq]
+;B[ne];W[fh];B[ck];W[fi];B[fj];W[oo];B[mp];W[op];B[oq];W[lr];B[jo]
+;W[js];B[ms];W[ff];B[fe];W[li];B[kh];W[pm];B[hg];W[mj];B[aj];W[al]
+;B[dn];W[do];B[no];W[ps];B[rj];W[sj];B[];W[]
+C[final_score: W+8.5
+G19 removed
+F18 removed
+G17 removed
+A13 removed
+J9 removed
+F2 removed]
+)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]