Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Account for a SEE ?

Author: Cristian Zaslo

Date: 12:15:25 03/17/99

Go up one level in this thread



On March 17, 1999 at 08:50:20, Peter Kasinski wrote:

>On March 17, 1999 at 04:31:02, Cristian Zaslo wrote:
>
>>On March 16, 1999 at 22:55:09, Robert Hyatt wrote:
>>
>>>On March 16, 1999 at 18:36:08, Peter Kasinski wrote:
>>>
>>>>On March 16, 1999 at 16:58:09, Robert Hyatt wrote:
>>>>
>>>>>On March 16, 1999 at 12:04:51, Dann Corbit wrote:
>>>>>
>>>>>>On March 16, 1999 at 02:50:20, Cristian Zaslo wrote:
>>>>>>
>>>>>>>Hi everybody !
>>>>>>>Will anyone be so kind and briefly explain me what sort of
>>>>>>>advantages would (not) have a chess programmer to implement
>>>>>>>a SEE in his code.
>>>>>>>Much obliged to you,
>>>>>>>Cristian
>>>>>>Er....
>>>>>>What's a SEE?  I've been programming 33 years and I have never heard of one.
>>>>>
>>>>>
>>>>>Stands for "Static Exchange Evaluator".  It is a procedure that analyzes all
>>>>>captures on a single square and returns a value indicating who comes out
>>>>>ahead.
>>>>>
>>>>
>>>>>It can be used to order captures so that you try QxP where the pawn is free,
>>>>>before you try QxR where the R is defended.  It can also be used to discard
>>>>>some captures in the q-search such as QxR where the R is defended and you are
>>>>>guaranteed to lose material.
>>>>>
>>>>>Used correctly it is possible to cut the size of the tree being searched by
>>>>>50% or more.
>>>>
>>>>
>>>>Bob, I looked at Swap() in Crafty where this is implemented.
>>>>Not using bitmaps I don't have a cheap way to determine what pieces attack a
>>>>given square. Would it still be profitable for me to compute these attacks in
>>>>order to use SEE?
>>>>
>>>>thank you,
>>>>PK
>>>
>>>There are far more non-bitboard programs than bitboard programs.  And SEE
>>>works just fine.  It will cost a little more probably, because there are
>>>loops that don't exist in bitmaps, but I had such a function in Cray Blitz.
>>>
>>>The idea is to take the target square, and first find out what pawns are
>>>attacking the  square, then bishops, knights, rooks, queens and finally
>>>kings.  Then the 'minimax' code at the bottom of my Swap() can be taken
>>>directly...
>>
>>So, am I right saying that SEE may be used to improve move ordering in the
>>Q-Search but it cannot be used as a single way to determine whether a leaf
>>node is or not a quiet one ?
>>
>>Thanks!
>
>
>
>But it leads to discarding some captures altogether.
>To me this means that SEE is used to:
>
>a) improve move ordering
>b) determine when you don't care if a leaf node is quiet or not because you
>discard the variation as futile.
>
>yes?
>
>PK

I agree with a) but regarding to b), what happens  when a single man is required
to defend several pieces same time. For example let’s assume  that the position
shown bellow is a leaf one and its value (PosVal) is slightly less than alpha.
	3Kbkn1/8/8/1p6/1P6/8/8/6R1 w - -
Also let’s assume that we shall search further only captures which bring up
PosVal above alpha. But SEE will be saying: "reject Rxg8 is useless!" although
actually it isn’t as we can trade a rook for a bishop and a knight.
 Have I misunderstood something or this sort of errors could sometimes appear?

Cristian



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.