gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Bug fix


From: Gunnar Farneback
Subject: Re: [gnugo-devel] Bug fix
Date: Thu, 25 Oct 2001 17:48:44 +0200
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)

Dan wrote:
> Luckily one that recent changes of Gunnar's makes easy to fix.
> Since all move reasons are now cached in the struct worm_data
> array, it is easy to go through and deprecate attack and
> defend move reasons that produce KO_A or KO_B.

As noted in another message, it's the attacks and defenses that are
stored in the worm array. However, this is only the case for the ones
found during make_worms(). Additional attacks and defenses can be
found by find_more_attack_and_defense_moves() in move_reasons.c and
won't be stored in the worm array. Hence the proposed solution is
somewhat insufficient.

As it happens I have a different implementation, which also involves
owl attacks and defenses, almost finished. Unfortunately it has got
mixed up with some other significant modifications which still require
some testing. I hope to be able to put up a working patch sometime
soon.

> For 1D debugging I recommend adding this to your .gdbinit file:
> 
> define pascii
> set gprintf("%o%m\n",($arg0)/20 -1, ($arg0)%20 -1)
> end

A shorter solution which is also robust against changes to MAX_BOARD
is

define asci
set gprintf("%o%1m\n", $arg0)
end

(I like the name "asci" as a 1D counterpart to the 2D "ascii".)

> +         if (worm[aa].attack_codes[u] == KO_A)
> +           this_value *= .9;
> +         else if (worm[aa].attack_codes[u] == KO_B)
> +           this_value *= .8;

I think a reduction by only 10% or 20% may be too small. The question
is how high a move which only accomplishes a goal with ko should be
valued compared to one which does without ko. In principle this should
only be possible to determine by analysis of the available ko threats,
but it seems likely that the ignored ko threat, which will give the
other player some compensation, would usually be worth more than 10%
or 20% of the ko size. I have tested with a reduction of 30% for a
"good" ko (i.e. one where the opponent must make the first ko threat)
and 50% for a "bad" ko. Maybe this is too much.

/Gunnar



reply via email to

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