Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: searching and q_nodes

Author: Robert Hyatt

Date: 12:21:20 11/25/98

Go up one level in this thread


On November 25, 1998 at 13:23:02, Frank Phillips wrote:

>Bob Hyatt 's response (message 33762)  to Bas Hamstra mentioned counting nodes
>in the quiescent search correctly.  Not sure I understand.   How should you
>count q-nodes and nodes?  I do it like this.  Nodes being the thing I report as
>the nodes per second performed by the search.
>
>In the Q-search
>int Quiescent()
>{
>pvlength[ply]=ply;
>if(ply>=MAXPLY)
>	return beta;
>nodes++;
>score=StaticVal();
>if(score>alpha)
>{
>	if(score>=beta)
>		return score;
>	alpha=score;
>}
>q_nodes++;
>
>And in the main search:
>int ABsearch()
>{
>if(timeout)
>	return;
>if(ply>=MAXPLY)
>	return beta;
>if(depth<=0)
>	return Quiescent()
>nodes++;

That's incorrect.  The problem is that if you do a 2 ply search, you *must*
get to ply=3 after *every* ply=2 move.  If you count those ply=3 nodes as q-
search nodes, your node count will be high, and you can't do anything about
it because those are *not* optional.  Count those as leaves...  and then
if you call quiesce from within quiesce, call *those* qnodes because you don
t *have* to make a capture.  But you *must* get to quiesce for every branch
in the normal tree, so you can do an evaluation.



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.