Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: History pruning

Author: Miguel A. Ballicora

Date: 15:05:32 02/28/06

Go up one level in this thread


On February 28, 2006 at 09:52:49, Robert Hyatt wrote:

>On February 28, 2006 at 08:46:32, Vasik Rajlich wrote:
>
>>On February 27, 2006 at 11:51:09, Miguel A. Ballicora wrote:
>>
>>>On February 27, 2006 at 09:41:37, Tord Romstad wrote:
>>>
>>>>On February 27, 2006 at 06:48:18, Tord Romstad wrote:
>>>>
>>>>>I'll try to write an explanation on my web page, and refer to that one
>>>>>in the future.  I hope to have it ready today or tomorrow.  Stay tuned!
>>>>
>>>>My first draft is ready:
>>>>
>>>>http://www.glaurungchess.com/lmr.html
>>>>
>>>>Comments, corrections and suggested additions or improvements
>>>>are welcome.
>>>
>>>I was away from CC 3 years and I was wondering what this technique was. Thanks
>>>for the explanation, it was pretty clear.
>>>Unfortunately, I tried this ~5 years ago in several ways and it did not work .
>>>It was not my idea, it was Bob Hyatt's here at CCC. I still have in my code this
>>>ancient lines (nodecount is moves searched):
>>>
>>>		#if 0
>>>		/* BH's suggestion, modified */
>>>		if (nodecount == 15 && depth == 1) {
>>>			break;
>>>		}
>>>		#endif
>>>
>>>		#if 0
>>>		/* BH's suggestion */
>>>		if (nodecount == 15 && depth == 2) {
>>>			depth--;
>>>		}
>>>		#endif
>>>
>>>		#if 0
>>>		/* BH's suggestion, modified */
>>>		if (nodecount == 15 && prun_cand ) {
>>>			break;
>>>		}
>>>		#endif
>>>
>>
>>Note that the method Tord describes is quite a bit different. Most important is
>>that the late moves are reduced rather than thrown away - I see now why Tord
>>insisted on that term :)
>>
>>Vas
>
>I don't think he is "throwing away moves" although without all the code, it is
>hard to tell.  But the "depth--" appears to be the usual "reduction" idea...
>which is what we were trying way back when.  (Bruce Moreland and myself,
>possibly others).  We just never did much "qualification" on what to reduce and
>what to not reduce, particularly the history counter idea, which is the
>important idea in today's approaches...

That's right, in that piece of code, depth-- is a reduction. I tried several
things and some of them remained in my current code with a #if 0. The ones with
break are "pruning", because I jumped out of the loop that was selecting moves
and the "late moves" (those that came after the first 15) were discarded all at
once.
This one:

>>>		if (nodecount == 15 && depth == 2) {
>>>			depth--;
>>>		}
Is exactly what Tord mentions (a very simple raw version) applied close to the
tips.

Miguel

>
>
>>
>>>Considering that after moves 15 the order in my case is determined by history
>>>heuristics, one the options literally was history pruning, and I tried
>>>reductions too. The tree decreased but my engine (gaviota) played terrible.
>>>Maybe I should give it a try again. As you can see, the implementation was too
>>>raw.
>>>
>>>Miguel
>>>
>>>>
>>>>The only two engines I mention in my "Sample Code" paragraph are
>>>>Fruit and Glaurung.  This is because of ignorance, and not because
>>>>of disrespect to other authors.  If you are the author of an open source
>>>>engine using history pruning (or whatever you prefer to call it) and
>>>>wants it to be mentioned on my page, please let me know.
>>>>
>>>>Tord



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.