Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Cabablilities of a SEE

Author: Tim Foden

Date: 08:01:08 10/04/01

Go up one level in this thread


On October 04, 2001 at 10:55:32, Paul wrote:

>On October 04, 2001 at 10:41:30, Tim Foden wrote:
>
>>On October 04, 2001 at 10:11:36, Paul wrote:
>>
>>>On October 04, 2001 at 07:03:14, Tim Foden wrote:
>>>
>>>>Hi All,
>>>>
>>>>I decided that I would add a 2nd SEE to GLC to check whether GLC's SEE was
>>>>working.  I actually ported GCP's Sjeng SEE (that was posted to the forum a
>>>>while ago).
>>>>
>>>>Both SEE routines now agree in most curcumstances, but one's like the following
>>>>have cropped up (where they disagree):
>>>>
>>>>[D]5rk1/1pp2R1p/p1pb4/6q1/3P1p2/2P4r/PP1BQ1P1/5RKN w - - 2 0
>>>>
>>>>This can be evaluated in 2 ways...
>>>>
>>>>(1) BxP (+1000) BxB (-3500) R1xB (+3500) QxR (-5500) RxQ (+10000) RxR (-5500)
>>>>.........+1000.......-2500........+1000.......-4500........+5500...........0
>>>>
>>>>>>> value = 0
>>>>
>>>>(2) BxP (+1000) BxB (-3500) R7xB (+3500) RxR (-5500) RxR (+5500) QxR (-5500)
>>>>.........+1000.......-2500........+1000.......-4500.......+1000.......-4500
>>>>
>>>>>>> value = -2500
>>>>
>>>>So... on to the questions:
>>>>
>>>>a) Does anyone's SEE do anything intelligent in these cases?
>>>>
>>>>b) Is one of these right, and the other wrong?  If so, which one?
>>>>
>>>>c) Do we actually care, as long as the SEE works in the majority of cases?
>>>>
>>>>Cheers, Tim.
>>>
>>>I haven't studied SEE yet, but shouldn't (2) also result in a value = 0, since
>>>you don't have to take the pawn being white? I mean, you start with a value of
>>>0, right?
>>
>>Yes, you start with a value of 0.  In this particular case I think that (1)
>>above is best.  But should a SEE routine care?  I mean... maybe this kind of
>>thing doesn't occur often enough to worry about.  I'm not sure about this, so
>>I'm asking questions to see if anyone else has a better idea.
>>
>>Cheers, Tim.
>
>No, I guess I didn't make myself clear ... I meant: why do you say value=-2500
>in case (2) and not value=0? I thought that SEE worked in such a way that you:
>
>(a) play out all the captures for both sides to the end, and then
>(b) work your way back to the front to see where each should stop capturing to
>    max its own result.
>
>Now if you do that for white in case (2), shouldn't (b) result in white not
>capturing anything and so value=0?

No.  You always make the first move in the SEE.  You are trying to find out the
predicted value if you make the first move.  The higher level code will make the
decision whether it is actually worth making the move in the first place or not.

So if we are in this position in the q-search, then Bxf4 will be one of the
moves that the q-search considers.  Before it actually makes a recursive call,
it asks the SEE what value it thinks it would get for the move.  If the SEE says
< 0, the q-search prunes the move.

Cheers, Tim.



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.