Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Eval() And Node Count

Author: Robert Hyatt

Date: 10:12:46 01/20/06

Go up one level in this thread


On January 20, 2006 at 10:22:10, Michael Neish wrote:

>On January 20, 2006 at 09:44:43, Steffen Jakob wrote:
>
>
>>If you want to experiment with this idea you can reduce the value space of
>>your evalation function by something like this:
>>
>>Value Engine::FilterValue(Value v) const {
>>    return v - (v % M_eval_filter);
>>}
>>
>>First you evaluate the position and after this you filter the computed score.
>>E.g. if M_eval_filter == 5 you only get scores which can be divided by 5.
>>
>>Best wishes,
>>Steffen.
>
>Interesting suggestion, thanks.  It certainly does reduce the tree size when
>using a value of 3, but not 2.  Whether and how it impacts the quality of play
>is another matter.  It's certainly different enough to make the program choose a
>different first move (without book).
>
>Cheers,
>
>Mike.


What you are doing is collapsing all scores within a small window to a single
value.  As I mentioned in the previous post, the less variance in your score,
the smaller the tree.  But then you run into random variation, because since we
prune on <= or >= tests, the _first_ move that produces one of those discrete
scores is going to be best and all others will fail the alpha/beta test.  That's
why material-only will play some odd moves, most notably the move sorted first
at the root will almost always be played unless it loses material and gets
replaced by a move with a better root score.  But if all root scores are zero,
the first is best according to alpha/beta




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.