gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] pattern questions


From: Gunnar Farnebäck
Subject: Re: [gnugo-devel] pattern questions
Date: Tue, 28 Nov 2006 20:49:07 +0100

Alain wrote:
> In regression test nngs:308 , gg3.7.10 wants M9 which is 1 point
> gote. There are other much better moves (nearly 6 pts gote, 2 gote,
> 1 sente)

Actually M9 is reverse sente but indeed there are better moves.

> First pass move giniration gives:
> pattern 'DD6'+1 matched at M9
> pattern 'DD6'+6 matched at M9
> pattern 'DD6'+3 matched at M9
> pattern 'DD6'+4 matched at M9
> pattern 'Sente13'+2 matched at M9
> 
> and value 0 for M9
> then a second pass due to endgame is done and wrongly choose M9.
> 
> I read the doc, but so far dont understand everything :(
> 
> Q1/ what means +1 +6 after the DD6 ?

In general a pattern can be rotated and/or reflected in 8 different
ways. The +n tells which of these transformations were matched. This was
perhaps more useful long ago when the pattern matching was in active
development but even today it indicates that DD6 could be better
symmetry constrained. Try and see if changing the colon line to ":-,-"
saves a few nodes without any other effects. (Changing symmetry to "+"
is probably not safe since test_attack_either_move() doesn't look
symmetrical.)

> Q2/ M9 is gote, so i'm surprised to see "Sente13" pattern
> 
> Pattern Sente13
> # gf Revised constraint. (3.1.20)
> 
> *O
> 
> :-,sO
> 
> *a
> 
> ;lib(a) == 2 && !attack(a) && safe_xmove(*) && safe_omove(*)
> # Action adds a reverse followup value.
> >defend_against_atari(a)
> 
> I agree M9 seems sente, but the problem is after opponent answer
> we must capture to defend our string in atari, so it is gote.

Sente13 is a reverse sente pattern, which is perfectly appropriate.

> I tried to put lib(a)>=3 ... this crashed gnugo :)

Yes, the defend_against_atari() code asserts that it's only called for a
two-liberty string.

> Q3/ its not a question: the choice of the move is made during the
> second pass of endgame stuff, so it is probably another problem to
> fix.

Indeed. The endgame database adds this match:

pattern 'CF3'+0 matched at M9
...followup value 12.25

which incorrectly claims that the pattern is sente. Together with the
reverse sente found by Sente13 this move is considered double sente
and thus valued very high. Interestingly there's an old comment by me
in endgame.db that CF3 is redundant. Try to just remove it and see
what happens.

/Gunnar




reply via email to

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