Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: late move reductions

Author: Alessandro Scotti

Date: 12:42:18 03/01/06

Go up one level in this thread


Yes I increment "count" every time a move is searched, and "fail_high" for moves
that failed high.
I actually did the implementation very quickly in order to participate to CCC
(here's a quick report assuming you want to practice a little Italian before
Turin! ;-) http://www.ascotti.org/programming/chess/ccc2005.htm) and with Heinz
we could see it gave maybe 15-20 elo (at fast time controls). That version had
validMoves >= 3 and depth >= 3 also. Later I changed both values to 4 and got
another 15-20 elo. After that I decided to start working on another engine so I
didn't experiment anymore with these settings.

On March 01, 2006 at 15:31:22, Robert Hyatt wrote:

>On March 01, 2006 at 15:26:46, Alessandro Scotti wrote:
>
>>Hi Bob,
>>well this is almost exactly what I'm doing in Kiwi, which is actually a
>>straightforward implementation of an idea I got from Uri here on the CCC. The
>>only difference I see is I don't have the "another move failed high" bit, I just
>>count fail highs.
>
>Then here is a key question:
>
>If you only count fail highs, how do you know whether this move fails high here
>and there, or everywhere?
>
>That's why I decided to count fail highs, along with failed lows when another
>move failed high, so I could tell the difference...
>
>Or are you incrementing the counter _every_ time the move is searched???  It
>seems that the two counter approach provides more information, particularly in
>"small cases" where you have one fail high and 1 fail low.  Now you know that
>this is a 50% fail high move rather than just knowing it failed high once.  One
>of two probably is enough to say "don't reduce" as compared to a move that did
>fail high 40 times, but it was tried 5000 times...
>
>Or, maybe I misunderstood what your code says...
>
>
>
>
>>
>>        int hindex = hpiece * 64 + curr.getTo();
>>
>>        if( haveHistoryPruning &&
>>            depthExtension == 0 &&
>>            validMoves >= 4 &&
>>            ! curr.isCaptureOrPromotion() &&
>>            ! givesCheck &&
>>            depth >= (4*FullPlyDepth) &&
>>            true )
>>        {
>>            int n = histTable[ hindex ].count;
>>            int f = histTable[ hindex ].fail_high;
>>
>>            if( f < (n / 8) ) {
>>                depthExtension = -FullPlyDepth;
>>            }
>>        }



This page took 0.02 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.