Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Quiescence Explosion

Author: Robert Hyatt

Date: 15:10:57 11/26/02

Go up one level in this thread


On November 26, 2002 at 14:26:38, David Rasmussen wrote:

>On November 26, 2002 at 13:52:11, Robert Hyatt wrote:
>
>>>
>>>Thanks for the reminder, but I know this :)
>>>As you can see in my code, I do _not_ count leaf nodes and qnodes together.
>>
>>Actually it seems you count leaf nodes twice?  Once at the top, once when you
>>call
>>quiesce()?   Or did I mis-remember???
>>
>
>I think you did, but I might be wrong.
>I increment in the beginning of Search(). Then just before I'm calling
>Quiescence(), I decrement. And then on entering Quiescence, I increment. So leaf
>nodes are counted once. I will probably change this to a conceptually simpler
>way. But I think my counts will be the same. And I don't believe that node
>counting can be measured in nps at all.
>
>>>
>>>>Most count leaves and q-search together, which is fine.  And you should see
>>>>numbers in the 50% range there because for every move at the last full-width
>>>>ply you search, you will get one leaf node for sure, plus (optionally) more
>>>>capture nodes below that...
>>>>
>>>>If you count leaf nodes as q-nodes, you can't possibly get down to 5-10%
>>>>and you can see this by trying a tree with a branching factor of (say) 2.0.
>>>>3 plies means you try two moves at ply1, 4 at ply2 and 8 at ply3.  For each
>>>>ply3 node, you get one leaf node which is 8 leaf nodes vs 14 interior nodes.
>>>>Then you tack on captures and you pass 50% instantly...
>>>
>>>But I do _not_ count qnodes and leaf nodes together. I don't, because I want the
>>>qnodes percentage to reflect more directly what changes I do to the qsearch.
>>>
>>>/David
>>
>>
>>That's the right way to do it, but I don't see how you are separating the two.
>>The first layer
>>of Quiesce() calls are leaf nodes and are _not_ optional.  Any layer beyond the
>>first is subject
>>to your decision-making policies...
>
>Read the code I posted. I only count nodes that are _generated_ from
>Quiescence(). A leaf node is counted as a node, as are all other nodes, in the
>general node count. In my program
> nodes = interior nodes + leaf nodes + qnodes
>so
> nodes - qnodes = interior nodes + leaf nodes
>
>/David


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...

The classic definition of "leaf" is "endpoints".  But they are really no
different than
nodes interior to that point on the tree.  You did generate moves, you made a
move and
now you have a brand new position  to work on...




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.