Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question on History heuristic

Author: Dan Newman

Date: 02:13:25 10/06/99

Go up one level in this thread


On October 05, 1999 at 22:09:12, Robert Hyatt wrote:

>On October 05, 1999 at 16:36:59, William Bryant wrote:
>
>>When updating the history for a move that has generated a cutoff,
>>what value to people use.
>>
>>Do you use ply or some function of ply which means that the closer you are to
>>the leaves, the greater the value being used for updating?
>>ie: History[from][to] += ply;
>>
>>Do you use depth or some function of depth which means the closer you are to the
>>root, the greater the value being used for updating?
>>ie: History[from][to] += ply;
>>
>>Or are there other values being used.
>>
>>Thank you in advance.
>>
>>William
>>wbryant@ix.netcom.com
>
>
>The latter.  because good moves at the root are more reliable good moves
>than those near the leaves...
>
>I use depth*depth I think, but even better is 1<<depth.  the problem with
>that is 32 bit counters get ripped instantly if you can do a deep search.

I discovered that the hard way.  I don't recall exactly the effect, but
at the time (three or four years ago) I was generating both captures and
non-captures mixed together and was using only the history heuristic to
sort them...  It must have been the "brick wall" effect on an endgame test
that I first noticed something wrong.  I looked at some old notes just now
and see that the history table entries started wrapping at about 30 ply
depth searches.

My first solution (with which I was never really satisfied) was to divide
the depth by 2: history[index] += (1 << (depth >> 1));.  Later, I saw
Bob's solution in Crafty (depth * depth) and have used that ever since.

-Dan.



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.