# Computer Chess Club Archives

## Messages

### Subject: Re: Static Exchange Eval (SEE)

Author: Tony Werten

Date: 00:38:16 07/13/01

Go up one level in this thread

```On July 12, 2001 at 17:13:14, Brian Richardson wrote:

>On July 12, 2001 at 15:09:51, Leen Ammeraal wrote:
>
>>On July 12, 2001 at 07:16:43, Steve Maughan wrote:
>>
>>>Leen,
>>>
>>>Do you sort the tables att[] amd def[]?  I ask since I cannot see a loop in the
>>>SEE routine.  If there is no ordering it is possible that the scores returned
>>>are incorrect e.g. it may be profitable to take with a Bishop but not a Queen
>>>since the piece is defended by a Rook.
>>>
>>>Am I missing something?
>>>
>>>Regards,
>>>
>>>Steve Maughan
>>>
>>>
>>
>>Yes, but sorting is done before this function 'gain' is called.
>>The original question (I forgot from whom) was about when to
>>stop in a swapoff sequence. So I only dealt with the subproblem
>>of how to compute the score once we have lists of attackers
>>and defenders. Before I call 'gain', I construct these two lists,
>>and I then sort. Of course you cannot always use lighter pieces
>>first, for example with a queen on b2 and a bishop on a1 attacking,
>>for example, a piece on d4, so this sorting is rather tricky.
>
>I am wondering if the proper capture order really matters.
>Of course, it does to return the true net gain of an exchange.  However,
>in practice there may be _very_ few winning exchanges.
>
>For the purposes of just knowing is it profitable or not,
>can simply swapping off with bishops or rooks before queens suffice?

That seems a bit to easy. You need the correct order plus indirect slider
attacks, (fe 2 rooks on a line ) to get a decent result. If you want it more
precise you can try to exclude pinned pieces, but that seems to be a bit
overdoing it.

In Shogi there has been a publication about a MetaSEE. Kind of a SEE for the
whole board, replacing quiescence. It tried to find out which pieces were busy
defending other pieces as well. Haven't heard of anybody trying it in chess,
maybe I'll give it a try later this year. (First trying to get out all the bugs
before august)

cheers,

Tony

>
>Can someone provide an example where this does not seem to work?
>
>Thanks
>Brian
>
>>As for your question about a loop, this is absent here because
>>of recursion. As you may know, you can often (or always?) replace
>>iteration by recursion (which in general is not wise).
>>Leen Ammeraal
>>http://home.wxs.nl/~ammeraal/

```