Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: late move reductions

Author: Robert Hyatt

Date: 12:31:22 03/01/06

Go up one level in this thread


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.03 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.