gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] influence and more


From: bump
Subject: Re: [gnugo-devel] influence and more
Date: Sat, 23 Nov 2002 07:21:49 -0800

> 1. I'd like to get rid of the distinction in influence.c according to
> "territorial_influence". This will require reevaluating the long "if"
> clauses in dragon.c that decide (based on pre-owl influence)
> (a) whether a dragon shoould be owl analyzed
> (b) its safety.
> As I am somewhat skeptical about how tunable such if-constructs are, I'd
> suggest to
> 
> 2. use compute_dragon_weakness() already pre-owl for this decision.
> As far as I am concerned, the safety values
> WEAK, WEAKLY_ALIVE, ALIVE, and STRONGLY_ALIVE could be all be treated
> as ALIVE, and if we need to make a decision based on the weakness of
> a dragon, we use the continuos .weakness instead. (INESSENTIAL,
> TACTICALLY_DEAD and INVINCIBLE should stay, as they do contain
> important additional information that .weakness cannot provide.)

If I understand correctly you want to get rid of the function
segment_influence. You don't like this whole approach and
you are probably right that you can do better. The question
is when, should we do this before 3.4?

At issue is the partitioning into territory and moyo from
the function segment_influence. This is an ingredient in
the conditional

      if (DRAGON2(str).escape_route > 25
        || DRAGON2(str).moyo_size_pre_owl > 20
          || (DRAGON2(str).moyo_size_pre_owl > 10
                && DRAGON2(str).moyo_size_pre_owl > dragon[str].size)) {

around line 350 of dragon.c. I think these are the if clauses
you are referring to.

Currently the sequence of events regarding the computation
of influence and weakness. From examine_positions:

(1) First compute_initial_influence() is called at line 134 of
genmove.c. From this, segment_influence is called.

(2) Then make_dragons() is called. The influence is resegmented
at line 294 of dragon.c. Calls to segment_influence also
occur just before this during compute_escape().

(3) Still in make_dragons, the conditionals arrived at above are
reached.

(3) Next compute_initial_influence() is called again from line 172
of genmove.c.

(4) Next compute_refined_dragon_weaknesses() is called from line 180
of genmove.c. This function calls compute_dragon_weakness_value
around the board. After this, dragon2.weakness is available.

Currently the dragon2.weakness is *not* available until after
make_dragons is finished. 

Therefore when you say ``use compute_dragon_weakness() already pre-owl''
this means a very major revision.

I think before making a change this big we should consider
where we are in relation to 3.4.

Dan




reply via email to

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