Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Cabablilities of a SEE

Author: Paul

Date: 11:59:39 10/04/01

Go up one level in this thread


On October 04, 2001 at 14:19:03, Robert Hyatt wrote:

>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?
>>
>>Hope you can point out where I go totally wrong. :)
>>
>>Groetjes,
>>Paul
>
>
>The point here is that you are asking, in the program "does taking this pawn
>win, lose, or break even?"  If the answer is "lose" then you don't make the
>capture at all.  If the answer is win, you always make it.  If the answer is
>break even  you can do what you want.  You are correct that taking the pawn is
>not forced here.  My SEE works as he explained.  It assumes that you _must_
>take the pawn, and tells you whether you win, lose or break even.  You use that
>do decide whether to _actually_ take it or not.

I understand, but this is all new to me so please bear with me.

Now suppose the capture on f4 is beneficial for white, so you capture with white
and do a recursive call to Quiescence(). You generate a new list of capturing
moves, and while iterating through this list at a certain moment you're going to
be faced with captures to & SEE calculations for the f4 square.

But you've just done that calculation 1 ply up and that said it was good for
white, so this time it has to be bad for black. Consequently you don't even have
to do any SEE calculations for f4 captures at this ply, and can discard any
captures to f4 immediately?

Does this mean that once you've done a capture on a square, you can ignore all
captures to that square one ply deeper?

Paul



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.