Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Why SEE didn't work for me...

Author: Stuart Cracraft

Date: 10:50:46 08/07/04

Go up one level in this thread


On August 07, 2004 at 13:47:41, Dan Honeycutt wrote:

>On August 07, 2004 at 13:40:16, Dan Honeycutt wrote:
>
>>On August 07, 2004 at 13:00:31, Stuart Cracraft wrote:
>>
>>>So I heard a lot about SEE from a lot of people
>>>and was fortunate enough to receive some good code
>>>from Alessandro. I implemented and tested it with
>>>many test cases and in all cases it gave the
>>>expected return from the exchange ok.
>>>
>>>Then with some other help I implemented this in
>>>the capture search.
>>>
>>>This program has some things that make SEE() not
>>>give a good result, in fact slightly worse (fewer
>>>nodes in same time) -- no speedup.
>>>
>>>1) evaluator is material and pc/sq lookup only
>>>2) routine to find attackers/defenders (to give to see)
>>>   is not much faster or slower than makemv()
>>>3) I order all moves partly with MVV/LVA but do not
>>>   discard directly on that unless the alpha/beta/pvs
>>>   says to disard/cutoff.
>>>
>>>With these, the program did not speedup with SEE
>>>and slowed down. The program is PVS with null move.
>>>
>>>So that is the story -- I will leave the code in
>>>for a future day and future need.
>>>
>>>If someone with #1 and #2 got a good speedup from SEE,
>>>let me know. I am doing something wrong in that case.
>>>Or if you think there is some other way SEE can be used
>>>advantageously, let me know. Currently I only have it
>>>in the capture search since that's where I heard it had
>>>the most effect.
>>>
>>>Stuart
>>
>>
>>Stuart:
>>What captures are you discarding in qsearch?  ie
>>
>>if (see < 0) discard_capture;
>>if (see + standpat < alpha) discard_capture;
>>if (see + standpat + margin < alpha) discard_capture;
>>
>>You may want to tinker with this some.  For me the third one with a margin of a
>>pawn or 2 works best.
>>
>>Dan H.
>
>
>I should add I also do:
>
>if (mvv_lva + standpat + margin >= alpha) keep_capture_and_skip_see;
>
>mvv_lva is victim value - attackor value.
>Dan H.

Dan - thanks for the input. What value of standpat do you use?
(Assume the see() routine does all its internal standpat
in its minimax.)

Stuart



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.