Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Problem searching too deep!

Author: Robert Hyatt

Date: 20:09:49 05/27/02

Go up one level in this thread


On May 27, 2002 at 16:37:13, Uri Blass wrote:

>On May 27, 2002 at 14:23:28, Robert Hyatt wrote:
>
>>On May 27, 2002 at 12:33:55, Sune Fischer wrote:
>>
>>>On May 27, 2002 at 11:58:38, Robert Hyatt wrote:
>>>
>>>>On May 27, 2002 at 06:14:38, Sune Fischer wrote:
>>>>
>>>>>On May 27, 2002 at 05:52:21, José Carlos wrote:
>>>>>
>>>>>>  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.
>>>>>
>>>>>Yes, I guess that would work, technically.
>>>>>But having a check like that in the alpha-beta and the qsearch is all too often
>>>>>just a waste of time.
>>>>>I would like to solve the problem at the root if possible.
>>>>
>>>>I don't see how to do it at the root.  If you do an N-ply iteration, how would
>>>>you know at the root how many extensions will "fire" so that you can be sure
>>>>that N + extensions <= MAXDEPTH???
>>>
>>>If there is a limit on the number of extensions, then there you have it.
>>>Isn't it normal to limit the extensions to avoid explosions in certain
>>>positions?
>>>
>>>-S.
>>
>>
>>Yes.  But how many?  IE I allow 1 ply of extension for every ply of search,
>>up to some ply limit.  Then I cut it back to 1/2 ply of extension for each
>>ply of search beyond that point.  But a 20 ply search _could_ extend on
>>every ply..  That could take you to nearly infinite depth since each extended
>>ply could also extend a ply...
>
>The assumption that each extended ply could also extend a ply is wrong.
>
>If you allow a ply of the extension for every ply in the first 20 plies and 1/2
>ply of extensions later then in the first 20 plies 1 ply does not have to reduce
>the depth but in the next plies every ply must reduce the depth by at least 1/2
>ply.
>
>It means that you cannot have lines of more than 60 plies before qsearch.
>
>The first 20 plies are not going to reduce the depth but the next 40 plies are
>going to reduce the depth from 20 plies to 0 plies.
>
>Uri

I put the 1/2 ply limit in to _prevent_ unlimited depth searches.  That was
my point.  My limit seems to control tree explosion pretty well.  But I _still_
can search beyond depth=64 if I don't put a limit in the recursive search call
as well, because I can search beyond 20 plies in real positions, which would
take me well beyond 60 plies with lots of extensions.  And it only takes _one_
such line to blow the subscript bounds and cause bad things to happen.




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.