Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any tips for implementing SEE?

Author: Robert Hyatt

Date: 12:17:16 10/03/01

Go up one level in this thread


On October 02, 2001 at 14:05:27, Frank Schneider wrote:

>On October 01, 2001 at 14:46:27, Steve Maughan wrote:
>
>>I've been tinkering with my engine again and delved into the move ordering.
>>Currently I use pseudo SEE to order i.e. if no defenders then
>>value=captured_piece_value otherwise assume that value=captured_piece_value -
>>attacking_piece_value.  Quite simple and quick.
>>
>>Now I am wanting to implement SEE.  I've already done this in a program I wrote
>>a couple of years ago.  That implementation performed a normal search where the
>>only moves played were those that captured on the specific square.  This was
>>slow - although not horrendous.  I was thinking about trying to implement
>>something a little faster.  Leen Ameraal posted a simple routine that utilied a
>>table of attackers and defenders.  Once this table is filled the actual
>>evaluation is relatively quick.  I'm quite sure that this would be faster than
>>my original implementation.  However it is clearly not a simple task to fill
>>these tables.
>>
>>Here's a test position. Assume that White must evaluate the score of a) bxc6 and
>>then b) Rxe2
>>
>>[d]6k1/1p6/2n5/1P6/B7/4p3/1R1rp2R/K7 w - - 0 1
>>
>>To evaluate bxc6 correctly one needs to see that the Bishop has a valid xray
>>attack.  Does everyone bother with this type of situation?  I would imagine that
>>this is quite important so I would guess that they do.
>>
>>The second position is a little more subtle.  To see that Rxe2 wins a pawn one
>>must also see that after Black recaptures on e2, white is then, and only then,
>>able to recapture on e2.  This is a little more subtle as it's the Black piece
>>(i.e. opponents piece) that blocks the recapture.  This would be (more)
>>difficult to catch in a SEE routine.  How many programs would evaluate this
>>correctly?
>>
>>I suspect most do 'a' but not 'b'.
>
>Gromit does both.
>
>Who evaluates promotions in SEE correctly?
>
>Frank
>
>

I used to, but I decided it was not worth it.  If the promoted pawn
itself gets captured, it is a non-issue if you count it as 1 on the
8th rank and then remove it as a pawn (1) as well.  If it is left, then
it also doesn't really matter.  If it ends up a 1 (pawn) on the 8th, then
you won the series of captures most likely since pawns are used before
anything else.  And whether you got +3 for PxB, or +11 for PxB=Q really
won't affect much...

I removed that a long while back and speeded the SEE code up a couple of percent
without hurting the tree that I could find...



>>
>>All help appreciated!
>>
>>Steve Maughan



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.