Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Recapture Extension

Author: David Rasmussen

Date: 06:09:41 01/10/02

Go up one level in this thread


On January 10, 2002 at 06:09:01, Georg v. Zimmermann wrote:

>On January 09, 2002 at 10:15:53, David Rasmussen wrote:
>
>I do this:
>
>
>  /* Capture extensions.
>   * Conditions:
>   * Last move was a capture of the piece that
>   * just moved and it was the only way to capture it
>   */
>
>	if ((!wasNullMove) && (AIBoard.captureExtensionCondition()))
>
>		{
>			extensions += CAPTURE_EXTENSION;
>                        stats_capext+= CAPTURE_EXTENSION;
>
>			#ifdef GAMETREE
>			if (tree_positionsSaved < GAMETREE)
>			{ fprintf(fi[ply],"Capture extension: depth+ %d<br>\n", CAPTURE_EXTENSION); }
>			#endif
>		}
>
>
>It works very well for me. When I implemented this idea in Crafty instead of its
>original recap extensions Crafty solved one position more in WAC 5secs on my
>k6ii/800. I didnt play enough games to statistically prove it got better,I think
>the improvement was small but existing.
>
>Georg

Mmm. This is a capture extension, not a recapture extension. In many cases,
capturing the last piece moved _is_ the best move, as the last move was hanging
a piece. But as I see it, there is no need to extend such lines, because these
are often idiotic futile lines, that will make a beta cutoff anyway. I think it
is important to ensure somehow that only captures that brings the value with the
alpha-beta window are extended. In fact, if you could determine that this
capture is probably the answer to an idiotic move, leaving a piece enprise, you
could try to do what I've called "negative extensions". That is, if you
determine that you just captured a piece that was just enprise, this line is
probably futile, so you "add" an extension as usual, but this extension is maybe
-0.5 ply or -1 ply or something like that. That will trim the tree, but you will
eventually search the line to an arbitrary depth, given enough time. You're not
just saying statically, that this line is futile, so you won't search it at all,
you just search it more shallow. Null move will often catch these cases, but it
might give something anyway. It's an idea I had a long time ago, but I haven't
done any testing yet. The idea will work for all futility criterions you can
come up with.

/David



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.