Author: Daniel Mehrmannn
Date: 18:41:45 03/01/06
Go up one level in this thread
On March 01, 2006 at 14:52:06, Robert Hyatt wrote: >Thought I would post a more detailed follow-up to what I have been playing with, >to prompt further discussion and maybe even additional ideas. > >1. I started off trying to use the raw history scores, but they really were not >useful for a simple reason, that they conginually grow throughout the search. >Prior to CCT I had noticed this and even experimented with "aging" the values by >dividing all by 2 at some interval. But regardless, the numbers get very large, >and chopping them back suddenly increases the reduction level, whereas longer >searches would decrease the level. I punted on this pretty quickly and left the >normal history mechanism in place solely for move ordering. > [...] Hello Bob, nice to see you're testing history reduction :) I can't agree in point one that's not good to work with history scores, because they are growing during the search and decrease the possibility of reduction. I found an easy way to use the history scores native for reduction without needing a new table or other stuff. I call it "PHR" (Peak History Reduction). The idea is to use allready kown tables and go the easest way as possible. Basicly we're searching the higest possible historyscore in our current moves. This is our "peak value" at this node. So we know this move produced much cutoff's in the past. So current moves should at least reached the half or more points of the score to be _not_ reduced othwhise we reducing the depth. What's the benefits of this idea ? - No extra table needed - If much moves close to the peak all are full searched - If no other move over 50% we reducing all - No static values creating a problem on long searches code example in Homer: if (sgdPtr->EnableHistPrune && currentExtend == 0) { if ((mPtr->flags & 4)) { if (HistoryBest == DROP_MOVE) { HistoryBest = score /2; goto PVS; } else if (reachedMoves > 3 && (score <= HistoryBest || score == 0)) { NextDepth--; history_ext++; HistoryPrune = TRUE; flags |= PruneMove; goto PVS; } } } Very simple, but works :) I'm using this now since june 2003 without any problems. Best Daniel
This page took 0.01 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.