gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] strategic effect


From: Gunnar Farneback
Subject: Re: [gnugo-devel] strategic effect
Date: Tue, 04 Dec 2001 18:07:36 +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)

Arend wrote:
> Trevor's patch that removed the strategic effect from the move valuation
> caused a remarkable number of PASSes in the regression test suites. I
> looked at them in some detail. In case others are interested, below is
> is a list with short explanations of problems that were uncovered.

Very interesting analysis, thanks.

> 1. At the moment, the surrounding moyo size is computed as the size of the
> moyo to which the origin of the dragon belongs. This is wrong, as a
> dragon can belong to more than one moyo (e.g. via a diagonal connection).
> This can cause a wrong status evaluation. (arend:2, dniwog:7, global:22)

I knew there still was something wrong in the surrounding moyo
evaluation, but hadn't tried to debug it yet. The influence code is
definitely not the easiest part of the engine to debug, so you did a
good job finding this.

> 2. Sometimes the strategic effect overlaps with other effects. E.g. a move
> gets both a owl-followup value as it threatens to attack a dragon, and a
> strategical attack value for the same opponent's dragon. Has happened
> with owl-followup and defend_both.

Double valuations is a recurring problem. We have fixed (and
introduced) a lot of these over time. It would be good if we could
come up with some scheme to handle this more robustly.

> 3. Sometimes a move should get a strategic bonus and does not, and so
> an inferior alternative that (correctly) gets the strategic bonus is
> preferred. Happens with combination attacks (strategy:17);

Is strategy:17 the intended example? It looks more like an example of
the first problem.

> owl-attacks that capture a dragon in between two friendly dragons do
> not get a strategic connect bonus. (global:22, ego:8)

They do get a strategic defense bonus, but not the larger connection
bonus. This is only automatically awarded for tactical attacks. The
reason for this is that owl attacks are too unreliable in semeai type
positions so we haven't dared give the full strategical bonus. It's
possible that we should reconsider this, especially if the semeai
module becomes stronger.

> 4. There remain a few where the strategic bonus is simply too high.
> (Maybe strategy:1,strategy2:65, viking:2). Capping the size of the
> strategic effect might help here. OTOH, after seeing these results
> in detail I do no longer believe that this capping is very
> important;

If we cap I'd like a soft capping, so that a bigger dragon is still
valued higher than a smaller one. A simple example would be the
mapping
       
x -> a*x/(a+x)

where x is the dragon size and a is the asymptotic value for large
sizes. 

> it is probably less urgent than trying to find an educated guess of
> how much a strategic attack/defense hurts/helps the respective dragon.

Agreed, the current heuristics are far from satisfactory. One
relatively simple improvement would be to take into account how the
surrounding moyo sizes change with a move. I've tried to implement
this before, but had to give it up since it slowed down the engine way
too much. This was quite some time time ago, however, and today the
influence function is called for almost every interesting move anyway
(to compute the territorial value). This would be worth trying.

> Also, the guess about how safe a dragon is should be improved. (E. g.
> dragons with a 5 pt eye space in a row need less strategic defense than
> a dragon with 20 pts moyo but no 100% eye space. Doing this intelligently
> should automatically turn off annoying strategic effects in the endgame.)

Improved eyespace analysis would be a critical step here.

> Unexpected PASSes:
> ego:4 PASSED -- difficult to solve this one

This is of the variety where saving a critical dragon isn't worth it
because neighboring positions are seriously weakened by the fight (and
the opponent is generally strengthened). It would be nice if we could
give a negative strategical value in such cases. The difficulty is of
course to come up with some robust heuristics to detect the situation.
I have no good ideas here.

> ego:8 PASSED -- correct move does not get as much strategic effect as
> it deserves; it seems connecting yields more strategic effect than connecting
> by capturing the lonely G11 stone in between

The problem here is that G11 can't be captured tactically. If that had
been the case, a connection move reason would have been added
automatically. However, when we get a working readconnect it should
discover that F12 does indeed connect G13 with E11 by capturing
(tactically) either E12 or G11 if they try to interfere.

As a general rule we shouldn't try to work around mistakes that can be
attributed to weaknesses in the connection analysis. Although there
has been no visible progress for readconnect.c recently, dynamic
connection analysis is high enough on the agenda that we should assume
it to become reality in some form or another in the near future.

/Gunnar



reply via email to

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