Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE results

Author: Eric Oldre

Date: 10:42:24 08/10/04

Go up one level in this thread


On August 10, 2004 at 12:52:28, Robert Hyatt wrote:

>On August 10, 2004 at 10:59:29, Tord Romstad wrote:
>
>>On August 10, 2004 at 10:35:29, Anthony Cozzie wrote:
>>
>>>Plus, if you have only PST eval you should be getting 3-4M nps, so SEE probably
>>>slows you down a _lot_.
>>
>>Yet another proof of how bad my programming skills are.  With PST eval and
>>nothing
>>else, I get about 800,000 nps (on a PIV 2.4 GHz).  Adding SEE slowed me down to
>>around 750,000 nps.
>>
>>Tord
>
>
>SEE slowed me down by 10%.  Move ordering improved to speed me up 10%.  Washed
>out to no advantage, _until_ I added the stuff about tossing out captures that
>can't bring the score back to within the alpha/beta window.  That made me about
>2x faster overall, which is a _big_ gain.  Stuart isn't getting all the
>advantages of SEE yet, and, in fact, It isn't necessary to use SEE on _every_
>capture.  IE for PxQ there is no need to see if that is +9 or +8.  Either is
>good enough and there MVV/LVA is faster.



Robert,
I haven't done any extensive testing to see if SEE pruning would improve the
strength of my engine. but i was worried that pruning moves in qsearch based on
a weak see score would eliminate moves where there would be additional
discovered attacks.

For now I settled on the following. Over time i'll be able to tune the 2 const
values of 75 and 200 to more appropriate levels. I'm guessing evenutally they
will be lowered, but for now i'm trying to be "safer".


//get the see value of the move
move_estval = movestack->estscore[movestack->orderedmove[imove]];

//get the captured piece
chesspiece captured_piece = MoveTaken(move);

//find value of the captured piece
int captured_piece_val = evalterms.material_vals[captured_piece];

bool can_gain_mater = true;
//init_score is the static eval before moving
if(captured_piece&&((captured_piece_val+init_score+75)<alpha)){can_gain_mater=false;}
if(captured_piece&&((move_estval+init_score+200)<alpha)){can_gain_mater=false;}
if(can_gain_mater){should_do_move=true;}

In your opinion, is there any truth to my concerns about not discovering attacks
because of a see score that couldn't reach alpha?

Eric



This page took 0.01 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.