Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Evaluation Approach

Author: Robert Hyatt

Date: 19:37:25 01/14/99

Go up one level in this thread


On January 14, 1999 at 17:49:15, KarinsDad wrote:

>I have been considering the possibility of having two sets of evaluation
>routines in my code. One set is a quick simplistic evalution and the other is a
>slower, more detailed evaluation.
>
>The simplistic evaluation consists of any set of data which can quickly be
>calculated such as material and safe squares. I was also going to have my pawn
>structure score here as well since I am using one large hash table for it,
>hence, since pawn structures are relatively stable and once calculated, they can
>be re-used for multiple positions across the search tree.
>
>The detailed evaluation was going to consist of the simplistic evaluation, plus
>modified piece values (based on where they are and what they are doing), square
>control, king safety, etc.
>
>My questions are:
>
>1) Has anyone used an approach similar to this, and if so, is it successful? and

One example I know of was/is Cray Blitz.  We did a fair amount of the eval in
an incremental update mode, because the peculiar hardware on the cray let us do
this stuff absolutely 'free'.  We didn't do anywhere near all of the eval like
this, of course, but we did a lot.  And this was available in a global variable
whenever we wanted it, instantly.  It included material and a lot of basic eval
stuff like the piece/square values, most pawn structure plus things like
outposts and so forth.  This could be used as a good 'first approximation' of
the eval (ken thompson [and then Hsu in DT/DB] used a 'fast eval/full eval'
approach to produce the same result in hardware).  So it can work.

An alternative is a 'lazy eval' which was how our slow eval in Cray Blitz
worked.  I do a sorta-lazy-eval in crafty, where I just take an early exit
before I hit the time-consuming part of the eval, if the score is too far
outside the A-B window.




>2) If I use this approach, where should I use each evaluation? I was thinking of
>using the detailed evaluation only on the first few ply (maybe up to 4), on the
>entire PV, and at the leaf nodes of non-quiescent paths (once they became
>relatively quiescent again). I would then use the simplistic evaluation
>everywhere else for speed. Does this seem reasonable, or am I missing something
>here? Will having scores derived from two different evaluations result in a
>skewing of the search?


I think that more than one commercial program does this...  full eval done
somewhere before the leaf positions, and then only minor incremental changes
for the last few plies, to get more speed.  I'm not willing to do that yet.
IE I tried (a couple of years ago) to do my full eval at 'leaf' positions and
then just update material thru the q-search.  And I ended up with shredded
pawns for one thing.



>
>Thanks,
>
>KarinsDad



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.