Author: Dieter Buerssner
Date: 04:21:57 09/20/01
Go up one level in this thread
On September 19, 2001 at 10:58:11, Tim Foden wrote:
>On September 19, 2001 at 10:32:25, Dieter Buerssner wrote:
>
>>From you posts, I have seen, that GLC is really good at solving mates (I mean
>>especially the Leonid positions, where Yace is often chanceless.) Do you have
>>any special trick, that you want to share? :-)
Thanks for your answer.
>I guess it is a combination of these things:
>
>1. Search extensions. I don't restrict them in special way. They are just
>restricted to a maximum of 1 ply in each node.
I am doing this a bit different. I restrict some extensions, when already too
deep in the line. On the other side, in rare cases, I allow more than one ply.
>2. Qsearch depth is restricted. Otherwise some of Leonid's positions simply
>explode.
>
> if( -depth >= max(4 * PLY, m_currentDepth * PLY) )
> {
>#ifdef DEBUG_SEARCH
> WriteDebug( ply, _T("q %d / qdepth %d\n"), ply, currentEval );
>#endif // DEBUG_SEARCH
> return currentEval;
> }
I am not doing this. Perhaps, this can help very much in Leonid type positions.
Did you just guess, where to make the cut here, or did you do some tests?
I do not toatally understand your if (). In the third recursive call to qsearch,
depth will be -3*PLY? What is m_currentDepth?
I would think, that for "normal" positions this is not needed.
>3. (this one may be new?) Cuts in the search if alpha or beta are in the mate
>range, and the current ply is too deep.
>
>e.g.:
>
> // can't find better checkmates in more plies!
> if( alpha >= evalCheckmate - ply )
> {
>#ifdef DEBUG_SEARCH
> WriteDebug( ply, _T("s %d / deep %d\n"), ply, alpha );
>#endif
> return alpha;
> }
> else if( beta <= -evalCheckmate + ply )
> {
>#ifdef DEBUG_SEARCH
> WriteDebug( ply, _T("s %d / deep %d\n"), ply, beta );
>#endif
> return beta;
> }
I am using one of the two.
/* lowest possible score is -INFSCORE+ply */
if (beta <= -INFSCORE+ply)
return -INFSCORE+ply; /* cannot be worse than this */
/* TODO: Use alpha cutoff in the same way? */
However, I think, this should only help when already a mate is found, and the
task is to find a shorter mater.
Still, when I see your answer and your results, it seems, that I am doing
something wrong :-(
Regards,
Dieter
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.