Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Evaluation Approach

Author: KarinsDad

Date: 21:03:23 01/14/99

Go up one level in this thread


On January 14, 1999 at 22:37:25, Robert Hyatt wrote:

>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.
>

Excellent! As always Robert, you are a gentleman and a scholar.

>
>
>
>>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.

One final question: Would it be worthwhile to calculate the time remaining
versus the number of nodes at the leafs versus the time it takes to do a
detailed evaluation (plus a little extra if your pv changes) and then do a full
eval for some majority of the leafs (to verify the correctness of the search)?
In other words, drop a fraction of a ply of searching at the end in order to
verify that the searching you did do was more accurate.

Thanks for the input :)

KarinsDad


>
>
>
>>
>>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.