Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Speaking of the Thesis by Marcel van Kervinck (hopefully no storms)...

Author: Bas Hamstra

Date: 06:44:39 09/07/02

Go up one level in this thread


On September 06, 2002 at 19:39:05, Tony Werten wrote:

>On September 06, 2002 at 18:44:22, Robert Hyatt wrote:
>
>>On September 06, 2002 at 16:26:44, Tony Werten wrote:
>>
>>>On September 06, 2002 at 16:15:25, Robert Hyatt wrote:
>>>
>>>>On September 06, 2002 at 16:06:43, Tony Werten wrote:
>>>>
>>>>>On September 06, 2002 at 16:03:06, Robert Hyatt wrote:
>>>>>
>>>>>>On September 06, 2002 at 15:46:53, Tony Werten wrote:
>>>>>>
>>>>>>>On September 06, 2002 at 14:45:11, Dann Corbit wrote:
>>>>>>>
>>>>>>>>Did anyone notice his cutoff idea in the evaluation function?
>>>>>>>>
>>>>>>>>It seems to me to be a very good idea, and I don't know if others have tried it
>>>>>>>>out.
>>>>>>>>
>>>>>>>>Basically, it consists of three modes with two early exits...
>>>>>>>>
>>>>>>>>1. If the material + structure score alone is dominant enough, it exits right
>>>>>>>>away.
>>>>>>>>2. Otherwise, it processes the piece list.  If that score is dominant, it exits.
>>>>>>>>3. Otherwise, it does a full board control scan for all 64 squares.
>>>>>>>>
>>>>>>>>It is described starting on page 62 under the section "3.3.2 Multi Staged
>>>>>>>>Design"
>>>>>>>>He gets roughly 71% evals returning in stage #1, 13% in stage #2 and 7% in stage
>>>>>>>>#3.
>>>>>>>>
>>>>>>>>It seems like it might be a big win to do it that way.
>>>>>>>
>>>>>>>It's called lazy eval and is not a good idea. The times it is wrong happen to be
>>>>>>>the important ones.
>>>>>>>
>>>>>>>Tony
>>>>>>
>>>>>>
>>>>>>Two things...
>>>>>>
>>>>>>First, you _can_ do a lazy eval with zero error.  I did it in Cray Blitz and
>>>>>>I explained the idea here before...
>>>>>>
>>>>>>You can compute the possible "positional error" (the amount the score will
>>>>>>change max and min) for each type of piece.  When you do a lazy eval, you
>>>>>>can use this min/max and sum 'em up (or do it incrementally as we did, which
>>>>>>can be a headache) so that you know the "independent piece max/min scores".
>>>>>>
>>>>>>If you lazy eval based on that, you get _zero_ errors because you will _really_
>>>>>>know that the individual piece scores can't produce a number larger than X or
>>>>>>smaller than Y, so you can make an informed decision.
>>>>>>
>>>>>>I don't do that today because each time you change the eval, you have to
>>>>>>update those min/max values which is something I would continually forget.
>>>>>
>>>>>Yes, correct. But when you get 71% hitrate your bounds are not very wide.
>>>>>
>>>>>>
>>>>>>2.  You can get good results with remembering the min/max positional scores
>>>>>>during a real game.  yes, the scores will continue to "widen" and reduce lazy
>>>>>>eval exits, but the error rate is not that bad.  Compared to the cost.
>>>>>
>>>>>In XiniX the hitrate drops to <5% quite fast this way. IMO not really worth it.
>>>>>
>>>>>Tony
>>>>
>>>>
>>>>I don't see it drop that far, but I don't watch it carefully unless I am
>>>>suspecting trouble either...  I will take a longer look.
>>>
>>>Might be better for other programs i think. My kingsafety is calculated during
>>>the piece evaluations as is my passed pawn score. ( to name 2 big ones )
>>>
>>>Tony
>>
>>
>>Mine is actually calculated _last_ as I need to know stuff about all the
>>pieces first.  But I just factor that into the "error window".  The passed
>>pawn scores and stuff like trapped bishops are done early since they are
>>big values too.
>
>I do the trapped bishop in piece eval as well. Maybe getting it out would
>improve my hitrate. I'll have a look one of these months.
>
>Tony

I suspect the advantage for BB type programs is bigger. In BB the loop through
all the pieces, computing mobility etc is very costly, while the effect on the
score is low. In 0x88 that kind of loops is relatively cheaper so you won't save
as much. Especially if you use attack tables, you won't.

As Bob said, you can do lazy eval without errors, and still get a good speedup.
Simply print out the errors (trivial to do), and adjust your windows until no
errors. The trick is to not overdo it. I do most of the king safety, full
pawnstructure and additional freepawn analysis in the non-lazy part. That still
gives good savings. When I tried to squeeze more out of it I got bad results (I
suspect losing bound info is a factor here too).

Best regards,
Bas.
















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.