Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Pawn Majorities : some working examples...

Author: Robert Hyatt

Date: 06:52:02 09/21/99

Go up one level in this thread


On September 21, 1999 at 02:23:38, Ricardo Gibert wrote:

>On September 20, 1999 at 14:42:27, Robert Hyatt wrote:
>
>>
>>
>>OK... I now have some working code.  It is not perfected, by any stretch yet,
>>but it works in two pieces, and one of the two pieces is really good, from an
>>accuracy point of view.  Here is what I have done:
>>
>>1.  I have written a piece of code that is very good at enumerating candidate
>>passers in a possition.  Nothing fancy except that bitboards help a lot in
>>discovering which pawns are candidate passers.  I produce an 8-bit vector for
>>each side with a 1 on a file for a candidate passer being present, a 0 if no
>>candidate is on that file...
>>
>>2.  I am using this in a way that is conservative at present, but which works
>>pretty well.  If white has a candidate, I compare the 'outsideness' of that
>>candidate against real passers and candidate passers for the other side, and
>>give a bonus (that is bigger as material comes off) if it has an outside
>>candidate passer.
>>
>>Here are a couple of examples:
>>
>>       +---+---+---+---+---+---+---+---+
>>    8  |   |   |   |   |   |   | *K|   |
>>       +---+---+---+---+---+---+---+---+
>>    7  | *P| *P|   |   |   | *P| *P| *P|
>>       +---+---+---+---+---+---+---+---+
>>    6  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    5  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    4  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    3  |   |   |   |   |   |   | P |   |
>>       +---+---+---+---+---+---+---+---+
>>    2  | P | P | P |   |   |   | P |   |
>>       +---+---+---+---+---+---+---+---+
>>    1  |   |   |   |   |   |   | K |   |
>>       +---+---+---+---+---+---+---+---+
>>         a   b   c   d   e   f   g   h
>>
>>
>>(fen  6k1/pp3ppp/8/8/8/6P1/PPP3P1/6K1/ w)
>>
>>old (16.18 crafty) evaluates this as -36 (black is better) because of
>>those two doubled kingside pawns.  new crafty says +.36 because white has
>>a potential outside passer on the c file, black can't force a passer without
>>the king helping.  Better...
>>
>>Here is a test of that code, as it is not very well known that two doubled
>>pawns can stop a majority, when a duo can't, as in the previous example.
>>       +---+---+---+---+---+---+---+---+
>>    8  |   |   |   |   |   |   | *K|   |
>>       +---+---+---+---+---+---+---+---+
>>    7  | *P| *P|   |   |   | *P| *P| *P|
>>       +---+---+---+---+---+---+---+---+
>>    6  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    5  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    4  |   |   |   |   |   | *B|   |   |
>>       +---+---+---+---+---+---+---+---+
>>    3  |   |   |   |   |   |   | N |   |
>>       +---+---+---+---+---+---+---+---+
>>    2  | P | P | P |   |   | P | P | K |
>>       +---+---+---+---+---+---+---+---+
>>    1  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>         a   b   c   d   e   f   g   h
>>
>>This is the position prior to the last one.  I (as black) played Bxg3.  Old
>>crafty promptly plays Kxg3 and now it has to watch out for the passed black
>>pawn on the h file (eventually).  new crafty plays fxg3 and black isn't going
>>to make any passer.
>
>Be careful! It makes a difference where the g-pawn is. In the example I gave
>earlier (W: Pa3, b2 ,c2 B: Pb5, b7) both sides get a Q with white just ahead of
>black at the cost of a pawn. In your example (disregarding the Ks for the
>moment), after the move f5 the position is effectively moved up one rank so
>black is one rank closer from getting his Q AND white is one rank further away.
>White will be several tempi slower then. In this particular example, the move
>fxg3 appears to be fine despite this. Kxg3 allows black to get the better of it
>due the quality of his candidate (further from the center). I'm too lazy to
>figure out the evaluations more precisely. The "branching factor" is too high
>for me at this hour. Interesting example though.


this is caught separately, as there is code to evaluate whether _any_ passer
can 'run' and not be stopped by the opposing king...



>
>>
>>How this is going to work in games is anybody's guess...  the outside passed
>>pawn code has pretty well stood the test of time, this is just taking in one
>>level more abstract.
>>
>>More after I run it a while to see how it behaves.  BTW, as I mentioned, this
>>has not slowed me down one bit.  In fact, in adding this, I consolidated several
>>flags into one pawn hash entry to make room for the two new bitmaps (8 bits
>>each) and actually the new code is a bit faster than the old (without this
>>majority stuff)...
>>
>>If you have a position you'd like to see it evaluate, let me know.  Best kinds
>>are those that don't need a search, so we can see what it understands or doesn't
>>understand with pure evaluation.
>>
>>Maybe its endgame strength will increase a little more with this.  It certainly
>>seems reasonable at present to assume so...
>
>How does Crafty cope with: 5k2/8/pppppppp/8/PPPPPPPP/8/8/5K2 w - - 0 0
>Which move by white does Crafty examine first? A human can find the best first
>move without "calculating" if he/she knows his stuff. A very instructive
>position though maybe not so practical ;-)


this is based on the 'sneaker' from fine's book I believe.  IE you are looking
for b5, and by sacrificing a pawn, white gets a passer.  However in this
position it doesn't seem to work and the evaluation I have done doesn't worry
about such positions at all.  I am really only trying to recognize an off-side
majority that will turn into a distant passed pawn and win the game..




>
>>
>>Bob



This page took 0 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.