gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Scoring pb + GTP questions


From: Gunnar Farneback
Subject: Re: [gnugo-devel] Scoring pb + GTP questions
Date: Wed, 10 Dec 2003 13:58:20 +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)

I wrote:
> Although the black dragon in the lower right is topologically
> one-eyed, it is unconditionally alive by invincibility analysis.
> Apparently we have some bug here. Both --score estimate and --score
> final give W+115.5. Even more interesting is --score aftermath which
> returns B+9.5, somehow reaching the result that while black is alive,
> the enclosed white dragon only lives in seki, with O4, P4, and R3 as
> dame points. I'll investigate this.

All scoring modes give the correct result after applying the appended
patch. 

- computation of safety and status values in make_dragons() revised to
  more robustly handle invincible dragons

/Gunnar

--- dragon.c.orig       2003-12-10 13:47:23.000000000 +0100
+++ dragon.c    2003-12-10 13:48:21.000000000 +0100
@@ -520,12 +520,18 @@
       dragon2[d].safety = TACTICALLY_DEAD;
     else if (0) /* Seki is detected by the call to semeai() below. */
       dragon2[d].safety = ALIVE_IN_SEKI;
+    else if (dragon_invincible(origin)) {
+      dragon2[d].safety = INVINCIBLE;
+      /* Sometimes the owl analysis may have misevaluated invincible
+       * dragons, typically if they live by topologically false eyes.
+       * Therefore we also set the status here.
+       */
+      DRAGON(d).status = ALIVE;
+    }
     else if (dragon2[d].owl_status == DEAD)
       dragon2[d].safety = DEAD;
     else if (dragon2[d].owl_status == CRITICAL)
       dragon2[d].safety = CRITICAL;
-    else if (dragon_invincible(origin))
-      dragon2[d].safety = INVINCIBLE;
     else if (true_genus >= 6 || dragon2[d].moyo_size > 20)
       dragon2[d].safety = STRONGLY_ALIVE;
     else




reply via email to

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