Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A proposed WAC replacement for testing

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