Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Quiescence Explosion

Author: Robert Hyatt

Date: 16:59:26 11/26/02

Go up one level in this thread


On November 26, 2002 at 19:22:20, David Rasmussen wrote:

>On November 26, 2002 at 18:10:57, Robert Hyatt wrote:
>>
>>That seems to be wrong.  A leaf node is perhaps better called "a quiescence
>>frontier node"
>>in the context we have been using it.  It is the _first_ quiescence node on any
>>path, because
>>for that node you have no choice.  But for nodes below that node, you can avoid
>>the all
>>if you so choose to just use the stand-pat score and not search any captures...
>>
>
>I think you are misunderstanding, or you haven't read the code I posted.
>Now I've changed it to:
>
>Score Search(pos)
>{
> ++nodes;
> ...
> if (depth < ONE_PLY)
>  return Quiescence(pos);
> ...
>}
>
>and
>
>Score Quiescence(pos)
>{
> ...
> while (interesting moves left)
> {
>  MakeMove(pos,move);
>  score = -Quiescence(pos);
>  UnMakeMove(pos,move);
>  ++qNodes;
>  ...
> }
>}


That looks ok...  although I still prefer the simpler qnodes++ as the first line
of quiesce()
with no need for adjusting anything else.  nodes++ similarly is the first line
in search()
and it doesn't get adjusted anywhere else...

At least it is simpler and pretty consistent, although it will make your qnodes
at least
50% of the tree since you are counting the frontier nodes that are forced on you
by the
last ply of full-width searching that initially calls quiesce() and you can not
avoid it.



>
>Now nodes isn't incremented in Quiescence().
>
>So totalNodes == nodes + qNodes.
>
>And it gives the same numbers as I had before, so unless you disagree that
>_this_ is the correct way, it was also working before.
>
>/David



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.