Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A proposed WAC replacement for testing

Author: Tim Foden

Date: 07:58:11 09/19/01

Go up one level in this thread


On September 19, 2001 at 10:32:25, Dieter Buerssner wrote:

>On September 19, 2001 at 03:45:56, Tim Foden wrote:
>
>>Here are the mates GLC215 finds on the test suite (at 10s per position):
>
>I rerun the test with 3 minutes. I find mostly the same.
>
>> 6k1/1pp2p2/p2p2q1/2PPb3/4r3/Pr4PK/2R5/2Q2NR1 b - - bm Rh4+; id "ECM.1179";
>>  7   3.78 +Mate06 2624651  Rh4+ Kxh4 Qh7+ Qh6 Qxh6+ Kg4 f5+ Kxf5 Qh5+ Ke6 Qf7#
>>                              {ht}
>
>   7074551  28.672  Mat07  7t  1...Rh4+ 2.Kxh4 Qh7+ 3.Kg5 f6+ 4.Kg4 f5+ 5.Kg5
>                               Kg7 6.Nh2 Qh6+ 7.Kxf5H Qg6#H {-490}
>
>
>All the others agree in the first move and the score, however Yace needs often
>more time.
>
>Additionally:
>r4rk1/1bq2ppp/p1p1p3/2b1P1B1/3p2Q1/3B4/PPP2PPP/R3R1K1 w - - bm Bxh7+; id
>"ECM.1597";
>
>   2616001  14.198  Mat08  8t  1.Bxh7+ Kxh7 2.Bf6 gxf6 3.Qh4+ Kg6 4.Qxf6+ Kh7
>                               5.Re4 Qxe5 6.Rh4+ Qh5 7.Rxh5+H Kg8H 8.Rh8#H
>                               {381}
>
>The "H" at the end of the moves means, that the moves were picked from the hash
>table at display time, and can be different than at search time. Here, they look
>correct.
>
>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? :-)

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.

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;
	}

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;
	}


Cheers, Tim.



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.