Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Classification of central pawn structures

Author: Ryan B.

Date: 14:09:41 02/10/06

Go up one level in this thread


On February 10, 2006 at 05:47:56, Tord Romstad wrote:

>On February 10, 2006 at 01:01:28, Ryan B. wrote:
>
>>I am surprised that there are so many more binary files being downloaded than
>>source.
>
>I was surprised for the opposite reason, in fact.  I thought the source code
>would only be interesting for programmers, and considering that there are only
>about 300 publicly available chess programs, it is remarkable that the source
>code has been downloaded more than 400 times.
>
>>I download the source from every engine I can no matter how strong it
>>plays.  I consider Glaurung a strong engine based on what I have seen.
>
>Compared to other open source engines, it isn't too bad.  When running
>on a single CPU, it's probably one of the strongest open source engines
>not derived from Fruit.
>
>>I like your center pawn structure code.  I think it can be refined some and
>>also use for other things in your eval.
>
>An evaluation discussion?  Cool, we don't have enough of these.  Thanks for
>bringing up the topic.  :-)
>
>For those not familiar with Glaurung's source code:  I classify the central
>pawn structure for each position evaluated, and store it in the pawn hash
>table.  The following comment from pstruct.c explains the different types
>of pawn centres I have defined so far:
>
>  /* Analyse the central pawn structure.  The following types of central
>   * structures are defined:
>   *
>   *     OPEN:         At most one pawn on the e and d files.
>   *     HALF-OPEN:    Two or three pawns on the e and d files, and no pawn
>   *                   is blocked.
>   *     HALF-CLOSED:  Two, three or four pawns on the e and d files, and
>   *                   there is a pawn ram.
>   *     TENSION:      A central pawn capture is possible.
>   *     UNRESLOVED:   Four central pawns, still not in direct contact.
>   *     CLOSED:       Four central pawns, none of which can move.
>   */
>
>I agree that this could be refined further, and that I could make more use
>of it than I currently do.  At the moment, I only use it for my bishop
>pair bonus.  Instead of having a constant bishop pair bonus, I use an array
>indexed by the pawn centre type (if the numbers look big, it is because I
>use pawn=256 rather than the more common pawn=100):
>
>int BishopPairBonus[7] = {
>  60,  /* UNKNOWN */
>  100, /* OPEN */
>  80,  /* HALF_OPEN */
>  0,   /* CLOSED */
>  30,  /* HALF_CLOSED */
>  70,  /* TENSION */
>  60   /* UNRESOLVED */
>};
>
>I have made some experiments with using the pawn centre type in other parts
>of my eval, but without much success.  I have tried to use it to scale my
>pawn shelter evaluation (a good pawn shelter should be more important in
>open positions), and for my side to move bonus (having the side to move
>is also more important in open positions).  In principle I think both of
>these look like good ideas, but making them work requires careful tuning.
>
>If anyone has thoughts about this, I would love to hear about them.
>
>Tord

Here is a slight refinement that should help with transitioning between center
pawn structure types.

int BishopPairBonus[] = {
60  /* Unknown */
100 /* Open */
90  /* Half Open with Tension */
80  /* Half Open */
60  /* Unresolved */
50  /* Half Closed with Tension */
30  /* Half Closed */
15  /* Closed with Tension */
0   /* Closed */
};

This of course could be even further refined with levels of half open and half
closed.  Also I suspect that slightly higher bishop pair values in the opening
than endgame would be productive.  Using this data for side to move bonus is
something I had not thought of but it sounds like a good idea.  My initial
though is that it should be useful for bishop pair, pawn shelter, pawn storms,
and knight value.

Ryan



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.