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

RE: [computer-go] Dealing with aji in go programs




> -----Original Message-----
> From: computer-go-bounces@xxxxxxxxxxxxxxxxx
> [mailto:computer-go-bounces@xxxxxxxxxxxxxxxxx]On Behalf Of Arend Bayer
> Sent: Sunday, December 05, 2004 6:50
> To: computer-go
> Subject: [computer-go] Dealing with aji in go programs
>
>
>
>
> On Sat, 4 Dec 2004, Mark Boon wrote:
>
> > current Go programs. Recognising and evaluating aji is one. An important
> > concept that I don't think any program handles well, if at all
> (Goliath has
> > a half-hearted attempt in it.) Properly estimating the effect
> on the score
>
> Do you mind explaining how you tried to do this in Goliath? I have
> been sporadically thinking about how to do this for GNU Go since I
> joined the project 3 years ago.
>
> If I would try it now, I would include it in the influence function,
> i.e. add some "aji influence sources" or influence blocks. The
> "reading shadow" for groups that are only barely dead or alive would
> seem like a natural place for where to add these. But my guess it that
> it would be pretty hard to make this robust.

I actually had to go back to the code to see what was there, as I didn't
remember exactly. There are two main things. One is a board-array that has
some aji-values (the aji[] array :). These values are a simple feauture
counter, where each type of feature contributes to one single number. These
features are typically things like, dead stones but not tactically dead,
number of atari's without putting oneself into atari, weak groups with less
than one and a half eye (where the bigger the group,the more it contributes
to aji), etc. Note that these are actually examples of 'bad' aji.

Aji is not converted to a value that adjusts the score in Goliath. Instead
it's an auxilary feature of the score and used for tie-breaking moves with
the same score but different aji. I would have liked to have the score
affected, but didn't find a satisfactory way yet. A simple weighting of
features is not working, as especially in the end-game where the values of
moves are small, it will occasionally waste moves that lose points but
increase aji.

The other thing in Goliath is not computing aji, but it's a principle
designed to reduce bad aji. Whenever the opponent plays a move that seems to
add a stone to a group, after which it still evaluates as completely dead,
don't tenuki. Even when after reading it still looks completely dead.
Instead what it does (roughly) is play the most urgent looking move in the
neighbourhood of the dead group, thereby usually removing a great deal of
bad aji. Now, maybe some of you may wonder why you wouldn't take advantage
of the opponents bad move by playing a big move elsewhere...

The short answer is: reducing bad aji is important, and the best time to
spend a move on it is when it's for free.

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/