Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE results

Author: Robert Hyatt

Date: 20:39:01 08/10/04

Go up one level in this thread


On August 10, 2004 at 22:08:15, Stuart Cracraft wrote:

>On August 10, 2004 at 18:50:14, Robert Hyatt wrote:
>
>>On August 10, 2004 at 17:36:53, Uri Blass wrote:
>>
>>>On August 10, 2004 at 14:47:02, Robert Hyatt wrote:
>>>
>>>>On August 10, 2004 at 13:42:24, Eric Oldre wrote:
>>>>
>>>>>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
>>>>
>>>>
>>>>I consider SEE scores to be simply estimates, since they do not worry about
>>>>pinned pieces and the like.  But then the entire q-search is only an estimate
>>>>since it doesn't consider anything but captures (in Crafty).  There are enough
>>>>errors in only looking at captures to make your hair stand on end.  Compounding
>>>>this with SEE pruning doesn't change much at all.
>>>>
>>>>Best test is to try it.  IE don't prune losing captures, and run a big test set.
>>>> Then prune them and run it again.  You will probably get almost a ply deeper by
>>>>pruning, and your scores should go up, not down as a result (at least when I
>>>>tested this it did.  I've been doing this since the late 70's, with reasonable
>>>>results.  Others such as Bruce (Ferret) Stanback (Zarkov) and so forth have had
>>>>the same results).
>>>>
>>>>The right thing to do is shrink the q-search, where the errors are, and make
>>>>your normal search bigger where there is none of this highly selective pruning
>>>>(ie looking at nothing but captures is _really_ selective) and its associated
>>>>errors.
>>>
>>>I think that the right thing to do is to be more selective in the last plies.
>>>
>>>It does not mean to do the qsearch smaller.
>>>You can start with more selective search than normal search but less selective
>>>search than your qsearch in the first plies by including checks and captures and
>>>only later to consider only good captures(I include queen promotions in the word
>>>capture).
>>>
>>>Uri
>>
>>I don't disagree.  Cray Blitz did that.  It had a normal full-width part of the
>>search, then a "tactical phase" that included captures, checks and some moves
>>with significant threats, then only captures/checks, and finally tapering off to
>>only captures.
>>
>>I may try that again one day as I did play with it in early versions of Crafty
>>but decided to "keep it simple" for a while...
>
>Sounds like a great idea to do it that way. Surprised you gave it up.
>Surely it can't be hard to throw something together with Crafty to
>test out the CB idea.


It would not be that hard, but I like the idea of trying to keep all the error
stuff held to a minumum, which means miniumal q-search...



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.