Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Junior-Crafty hardware user experiment - 19th and final game

Author: Vasik Rajlich

Date: 00:24:50 12/26/03

Go up one level in this thread


On December 25, 2003 at 20:32:24, Christophe Theron wrote:

>On December 25, 2003 at 14:35:53, Uri Blass wrote:
>
>>On December 25, 2003 at 14:04:47, Christophe Theron wrote:
>><snipped>
>>>By experience, no smart evaluation can compensate for the loss of one ply of
>>>search. In theory evaluation could compensate, but in practice I don't think
>>>anybody has ever managed to do it.
>>
>>I think that evaluation can compensate easily for loss of one ply of search and
>>not only in theory because it is easy to tell your evaluation to calculate the
>>result of 2 ply search.
>>
>>Evaluation by definition is a function that get a position and returns a number.
>>If the target is not to play better but to prove that evaluation can compensate
>>for 1 ply search then you simply tell your evaluation to perform 2 plies search.
>>
>>Note that some kind of search is already needed in smart evaluation even if you
>>do not make moves.
>>
>>For example you cannot detect trapped pieces in evaluation without checking that
>>every square that they can go is threatened by the opponent.
>>
>>You cannot detect forks in your evaluation without doing some kind of search.
>>
>>Uri
>
>
>
>Why did I *know* you would say that? :)
>
>In this case (positional evaluation doing a search), it's going to be a very
>expensive (computationally) evaluation. And what it does is... a search. So it
>just proves that nothing beats searching deeper...
>
>You can quibble on the definition of what positional is, of course. I have
>already stated myself several times that simple evaluation terms are able, given
>enough depth, to understand more complex concepts. So search is able to extract
>some positional information that is not explicitely described in the evaluation
>function, yes.
>

This appears to be true for shallow searches. I've noticed that with very
shallow searches (like four or five ply) my program wants to play all sorts of
positionally weak moves which it doesn't want to play any more at seven or eight
ply. It seems that this also applies to extending deeper searches, according to
for example the SSDF results for different hardware. Clearly, a higher nps is
good.

I am just wondering where exactly the line lies between maximizing speed and
adding knowledge. Considering the following hypothetical engines:

engine A - spends 10% of its time in eval
engine B - spends 67% of its time in eval

Engine A will have a 3x higher nps, so it will do slightly more than 1/2 ply
extra. Engine B will be spending 20x longer evaluating each position. It seems
that engine A will gain around 50 rating points from its deeper searches (at
least at time controls long enough that engine B can also make it to 8 or 9
ply). It's hard to believe that a few accurate eval computations couldn't
compensate for this.

This would suggest that generally speaking it's quite acceptable to have some
expensive computations in the eval, provided you stay within some sort of an
acceptable limit, say not more than two-thirds of total search time.

Vas

>Basically, positional evaluation is the kind of information you extract without
>doing a search, which is not material bean-couting, and which tries to evaluate
>how well your pieces are positioned. A SEE for example is not a positional
>evaluator: a SEE is doing some kind of move search (it searches a degenerated
>capture tree) and it does material bean-counting... On the other hand, a penalty
>for a weak pawn is a positional term, for example.
>
>
>
>    Christophe




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.