gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] look at regress file 13x13b:6


From: Evan Berggren Daniel
Subject: Re: [gnugo-devel] look at regress file 13x13b:6
Date: Tue, 1 Apr 2003 22:39:14 -0500 (EST)

I think your message basically confirms my original suspicion:

the owl code tries a move like B3, which is suggested by some pattern.
When the move is played, the B6 stones and the B3 stone are marked as part
of the same dragon.  If the owl code can save any part of a dragon, it
claims success.  Therefore, when owl saves the B3 stone, it declares
success in saving the B6 dragon.  This is a predictable result of the
stones being amalgamated into one dragon.  The problem lies in the pattern
that suggested the B3 move.  This pattern presumably has an attribute set
that says gnugo should assume the stones are connected, without doing any
checking first.  This is incorrect, because obviously the stones aren't
connected.

I have not actually verified that the above is the case, but I saw nothing
in your email that conflicts with this hypothesis.

Therefore, I conclude that the owl code is performing exactly as expected,
given a bad pattern.  The solution is therefore to find and fix the
problematic pattern.

I believe your understanding of the code is basically correct.

Evan Daniel

On Tue, 1 Apr 2003, kevin yong wrote:

> Hi, Evan:
>
>   i did more work on 13x13b:6. here are what i got:
>
>   1. where/how/why B3 was found to be a save move for
> dragon B6:
>
>   call sequence:
>
>     do_genmove()
>       examine_position()
>         make_dragons()
>           owl_defend()
>             do_owl_defend()
>               owl_estimate_life()
>               do_owl_attack()
>                 owl_estimate_life()
>               ... indirect recursive call
> defend/attack
>
>   each time before call attack/defend, it
> estimate_life first.
>   i made some print to see do_owl_defend/do_owl_attack
> works:
>
> do_owl_defend B6 with B3
>   do_owl_attack on B6 with B4
>     do_owl_defend B6 with C3
>       owl_estimate_life return TRUE, 2 or more secure
>         eyes
>       do_owl_defend success on B6 with C3
>   do_owl_attack on B6 with C4
>     do_owl_defend B6 with C3
>       do_owl_attack on B6 with B4
>         do_owl_defend B6 with D2
>           owl_estimate_life return TRUE, 2 or more
>             secure eyes
>         do_owl_defend success on B6 with D2
>       do_owl_defend success on B6 with C3
>   do_owl_defend success on B6 with B3
>
>   This is the my interpretation:
>   W move at B3 to defend B6;
>     B check dragon life, false;
>     B move at B4 to attack B6;
>       W check dragon life, false;
>       W move at C3 to defend B6;
>         B check dragon life, TRUE !!! (this is wrong)
>         so, no more attack
>       W claim success to answer B attack at B4.
>     (next)
>     B move at C4 to attack B6;
>       W check dragon life, false;
>       W move at C3 to defend B6;
>         B check dragon life, false;
>         B move at B4 to attack B6;
>           W check dragon life, false;
>           W move at D2 to defend B6;
>             B check dragon life, TRUE !!!(wrong again)
>             so, no more attack
>       W claim success to answer B attack at C4.
>     finally, W claim success to defend B6 with B3.
>
>   there are several issues here:
>     issue a: i have not fully understand
> owl_estimate_life() works: it does NOT take any dragon
> origin as input, but it take loca_owl_data as input,
> inside which, has owl->goals[] array, which suppose to
> contain the stones of the dragon (that's my
> understanding, corret me if i m wrong). but, when the
> dragon asserted to be alive by owl_estimate_life(), i
> print out what's inside owl->goals[]. for dragon B6,
> here is what i got:
>       J7
>       B6
>       H6
>       J6
>       K6
>       A5
>       B5
>       E5
>       F5
>       G5
>       J5
>       K5
>       D4
>       K4
>       L4
>       B3
>       C3
>       F3
>       M3
>       F2
>       H2
>       L2
>       M2
>       J1
>       K1
>   if you know more about this, please give me some
> indication about this.
>
>   issue b: at the second move, B move at B4/C4 to
> attack, W answered both with move C3, which is out of
> reach to save B6.
>
>   2. recommandation: some improvement on owl.c
>
>   thank you in advance.
>
> kevin.
>
>
>
>
> ______________________________________________________________________
> Post your free ad now! http://personals.yahoo.ca
>
>
> _______________________________________________
> gnugo-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gnugo-devel
>
>




reply via email to

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