Author: José Carlos
Date: 02:52:21 05/27/02
Go up one level in this thread
On May 27, 2002 at 04:45:41, Sune Fischer wrote: >Currently I have a search depth limit of 60 plies. >However in this very simple (drawn) position my engine has no >problem reaching 60 plies in no time. > >[D]8/8/p1K5/P4k2/8/8/8/8 b - - 0 1 > >Actually it crashes when it goes beyond 60 plies in a search, has to do with the >PV array that has a limited length (and probably other stuff too). > >The reason it can reach this deep is probably because the position is solved as >drawn rather quick (and because of transpositions), but unlike a mate score that >I can detect, I can't *detect* a draw score in the same way. >Is there a way to now if an exact draw score has been returned? > >My outer iteration loop stops of course at the 60 plies, but the search is still >called and on top of that there is the qsearch. >I measured up to 71 plies reached, naturally it crashes. > >How do I end the search properly when these extreme deeps are reached? >Should I just stop iterating at ply 45, that would give the search 15 plies of >safety margin? > >Does other engines too have a maximum depth limit, if so how did you solve this >problem? > >Thanks, >-S. If I understood you right, you can simple put this on top of AlphaBeta() and QSearch(): if (ply >= MAX_PLY) return Eval(); With 'ply' being the current depth, that you increment on every MakeMove() and decrement on UnMakeMove(). José C.
This page took 0.02 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.