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.