gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Proposed owl_determine_life() improvement


From: bump
Subject: Re: [gnugo-devel] Proposed owl_determine_life() improvement
Date: Sun, 3 Nov 2002 08:15:58 -0800

While we're on the subject of owl_determine_life, here's an
example of a not too uncommon type where something goes 
seriously wrong. I think this example is worth pondering.

set args -l gnugo-3.3.10-niki-200210281349.sgf -L 36 --quiet --decide-dragon B4
del
b silent_examine_position
run
fin
tb do_owl_attack
c
tb do_owl_defend
c
tb do_owl_attack
c
tb do_owl_defend
c
fin
tb do_owl_defend
c
tb do_owl_attack
c
tb do_owl_defend
c
set var verbose=1
set dump_stack()

Loading this script with GDB should give you:
W:C1 B:C5 W:D5 B:C6 W:B1 (variation 110)

Here's the position:

10 . . . + . . . .
 9 . . O . . . . .
 8 . . . . . . . .
 7 . . . . . . . .
 6 . . X . . . . .
 5 . O X O . . . .
 4 . X O O H . . .
 3 . X X X O . . .
 2 . . . . O . . .
 1 . O O . . . . .
   A B C D E F G H

The goal consists of the single worm at B4. The lunch at
B5 is found by owl_determine_life and capturing at B6
is assigned a value of 61.

Eating this lunch is very appealing because it immediately expands the goal.

But we have the following around line 2020 in do_owl_defend:

   if (eyemax < 2 && stackp > 2)
     move_cutoff = 99; /* Effectively disable vital moves. */

So the lunch is not eaten, and GNU thinks the X stones are
killed by B1.

Dan





reply via email to

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