Ticket #99 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

possible decide-dragon error

Reported by: terrymac Owned by: gnugo
Priority: normal Milestone: 3.7.9
Component: patterns Version:
Severity: normal Keywords:
Cc: patch: yes

Description (last modified by arend) (diff)

The following go problem ( taken from Mastering the Basics, Volume 2, problem 25 ) the output of gnugo --decide-dragon B2 is:

$ gnugo --decide-dragon B2 ld_0025.sgf                 
finished examine_position
B2 cannot be attacked (3 variations)
B2 can be defended at D1 (2 variations)

This is incorrect; the two white stones can be attacked at B1 - which gnugo does discovers, when asked the status of the B3 group.

;GM[1]FF[4]CA[UTF-8]AP[CGoban:2]ST[2] RU[Japanese]SZ[19]KM[0.00] PW[loser]PB[to win]AW[ap][bp][cp][dp][ep][eq][br][cr][er][es]AB[aq][bq][cq][dq][ar][dr])

Attachments

gunnar_7_9.8.diff Download (2.3 KB) - added by gunnar 6 years ago.
owl tuning plus regression test

Regression Results

Attachment Rev. PASS FAIL Nodes Status
gunnar_7_9.8.diff Download never tested

Change History

comment:1 Changed 6 years ago by terrymac

  • Description modified (diff)

comment:2 Changed 6 years ago by arend

  • Keywords reading error removed
  • Component changed from source to regressions
  • Description modified (diff)

comment:3 Changed 6 years ago by gunnar

So the position looks like this,







and the question is whether the two white B2 stones be attacked. (Actually this is not in itself a central question since it would be perfectly fine to sacrifice them in order to capture the black stones. But here it works out the same.)

Since this is a very simple position with only a few nodes visited, the trace output is quite small:

$ ./gnugo -l ld_0025.sgf --decide-dragon B2 -t
finished examine_position
owl_attack B2
eye space at B1 of type 310
save lunch at A3 with B1, score 81, probable eye 2, max eye 2
  Trying black B1. Escape = 0. Current stack: B:B1  (variation 1)
  Pattern D1325 found at D1 with value 86
    Trying white D1. Escape = 0. Current stack: B:B1 W:D1  (variation 2)
A4 (2)  B4 (2)  C4 (2)  D4 (2)  E4 (2)  E3 (2)  B2 (1)  C2 (1)  E2 (2)  D1 (2)  E1 (2)
    save lunch at A3 with C1, score 81, probable eye 2, max eye 2
    save lunch at B1 with C1, score 61, probable eye 1, max eye 1
Variation 2: ALIVE (2 or more secure eyes)
Pattern A608 found at B1 with value 75
B2 cannot be attacked (3 variations)
[...]

The problem is quite clear. After black B1, white D1, all white stones are suddenly part of the dragon and it's considered safe. Naturally that analysis is bogus. How to solve it is somewhat less clear. The simplest solution is to adjust patterns, in particular D1325 which came up with D1, but there may be good reasons to fix it more systematically in the owl code.

Changed 6 years ago by gunnar

owl tuning plus regression test

comment:4 Changed 6 years ago by gunnar

  • Component changed from regressions to patterns
  • Milestone changed from 3.8 to 3.7.9

The attached patch gunnar_7_9.8 adds the position as a testcase. It also revises the constraints of D1322 and D1325 to check that neither of the own strings is in atari, making the move meaningless. Finally D1327 and D1328 are removed since they mostly duplicate D1322 and D1325.

comment:5 Changed 6 years ago by gunnar

  • patch set

comment:6 Changed 6 years ago by gunnar

The regression results are, excluding the new testcase,

gunnar:83       FAIL N10 [M10]
1 FAIL
Total nodes: 1683384885 3314439 12620693 (-0.029% -0.097% -0.016%)

This fail is totally accidental though, since the only direct effect of the patch is that the status of N9 changes from alive to critical, which is obviously correct.

comment:7 Changed 6 years ago by gunnar

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.