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.