Hi,
Do you guys also count the visited quiesence nodes when calculating the number of nodes visited per second?
Same question for depth reached.
lies and statistics
Moderators: hgm, Rebel, chrisw
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: lies and statistics
I count every node visited. This includes normal search, quiescence search.flok wrote:Hi,
Do you guys also count the visited quiesence nodes when calculating the number of nodes visited per second?
Same question for depth reached.
The depth I report is the nominal depth carried to full-width. q-search depth does not get included. Some display two depths like this "xx/yy" where xx is the nominal full-width depth and yy is the max depth the q-search reached.
-
- Posts: 4185
- Joined: Tue Mar 14, 2006 11:34 am
- Location: Ethiopia
Re: lies and statistics
I fail to see the connection between the title of your post and the content. You say that phrase when you see people trying to cover up for weak arguments with statistical jargon. Some engines count nodes 'differently', not counting pruned nodes, qnodes etc. However iterative depth probably doesn't leave much room for misinterpretation, thus counting depth differently is probably a deliberate action that CIA should take a look at
Re: lies and statistics
Daniel, I tried to be funny.Daniel Shawul wrote:I fail to see the connection between the title of your post and the content. You say that phrase when you see people trying to cover up for weak arguments with statistical jargon. Some engines count nodes 'differently', not counting pruned nodes, qnodes etc. However iterative depth probably doesn't leave much room for misinterpretation, thus counting depth differently is probably a deliberate action that CIA should take a look at
The question at itself was serious though.
-
- Posts: 211
- Joined: Sun Jan 18, 2009 11:27 pm
- Location: Sweden
- Full name: Patrik Karlsson
Re: lies and statistics
I think you should, because every time you make a move you reach a new position. It doesn't matter if it's made in the normal search or the quiescence search.flok wrote:Hi,
Do you guys also count the visited quiesence nodes when calculating the number of nodes visited per second?
Same question for depth reached.
However, if you increase the node counter at the top of the search functions you will count the horizon nodes twice, since you never make any move in search() before the call to qsearch(), so it's still the same position. This could possibly affect your root move ordering if you sort the moves by node count. I think the best way to go is to put your ++nodes inside the move loop or in make_move().
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: lies and statistics
How would you count 'em twice? If you count at the top of search, you certainly don't call search twice in a row without making a move do you??? I don't.elpapa wrote:I think you should, because every time you make a move you reach a new position. It doesn't matter if it's made in the normal search or the quiescence search.flok wrote:Hi,
Do you guys also count the visited quiesence nodes when calculating the number of nodes visited per second?
Same question for depth reached.
However, if you increase the node counter at the top of the search functions you will count the horizon nodes twice, since you never make any move in search() before the call to qsearch(), so it's still the same position. This could possibly affect your root move ordering if you sort the moves by node count. I think the best way to go is to put your ++nodes inside the move loop or in make_move().
-
- Posts: 1221
- Joined: Wed Mar 08, 2006 8:28 pm
- Location: Florida, USA
Re: lies and statistics
In Maverick I count every call to AlphaBeta and QSearch.
Steve
Steve
http://www.chessprogramming.net - Maverick Chess Engine
-
- Posts: 558
- Joined: Sat Mar 25, 2006 8:27 pm
Re: lies and statistics
bob wrote:How would you count 'em twice? If you count at the top of search, you certainly don't call search twice in a row without making a move do you??? I don't.elpapa wrote:I think you should, because every time you make a move you reach a new position. It doesn't matter if it's made in the normal search or the quiescence search.flok wrote:Hi,
Do you guys also count the visited quiesence nodes when calculating the number of nodes visited per second?
Same question for depth reached.
However, if you increase the node counter at the top of the search functions you will count the horizon nodes twice, since you never make any move in search() before the call to qsearch(), so it's still the same position. This could possibly affect your root move ordering if you sort the moves by node count. I think the best way to go is to put your ++nodes inside the move loop or in make_move().
if(depth<0) Quiesce();
at the beginning of alphabeta will cause more calls to alphabeta than if you have
if(depth==0) val=Quiesce();
else val=-alphabeta(depth-1,-beta,-alpha);
in the middle of alphabeta.
I increment nodes at each makemove, which works the same with either type of code.
-
- Posts: 211
- Joined: Sun Jan 18, 2009 11:27 pm
- Location: Sweden
- Full name: Patrik Karlsson
Re: lies and statistics
It depends on where you check for depth==0 and make the call to qsearch of course. I make it at the top of the normal search and that's where it can go wrong, like this:bob wrote:How would you count 'em twice? If you count at the top of search, you certainly don't call search twice in a row without making a move do you??? I don't.
Code: Select all
search()
{
++nodes;
if(depth <= 0)
return qsearch();
...
}
qsearch()
{
++nodes;
...
}
-
- Posts: 1221
- Joined: Wed Mar 08, 2006 8:28 pm
- Location: Florida, USA
Re: lies and statistics
Then just increment the nodes after the zero depth test:
Code: Select all
search()
{
if(depth <= 0)
return qsearch();
++nodes;
...
}
qsearch()
{
++qnodes;
...
}
http://www.chessprogramming.net - Maverick Chess Engine