Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Node counting in Crafty 14.2 and 15.20

Author: Don Dailey

Date: 14:29:04 11/02/98

Go up one level in this thread


On November 02, 1998 at 16:25:45, Robert Hyatt wrote:

>On November 02, 1998 at 11:59:53, Koen van Dijken wrote:
>
>>On November 02, 1998 at 08:24:08, Robert Hyatt wrote:
>>
>>>On November 02, 1998 at 02:49:14, Koen van Dijken wrote:
>>>
>>>>mr Hyatt,
>>>>
>>>>I was comparing the speed in nps of my own program against that of Crafty. I
>>>>have the sources for 14.2 and 15.20. I noticed that in Search there is a
>>>>difference in node counting between 14.2 and 15.20. In 14.2 you do not count
>>>>illegal moves, in 15.20 you do. Is there a reson for this?
>>>>
>>>>15.20
>>>>    } else tree->nodes_searched++;
>>>>    UnMakeMove(tree,ply,tree->current_move[ply],wtm);
>>>>
>>>>Is this maybe the way nodecounting is done in other programs as well, for better
>>>>comparising?
>>>>
>>>>Koen van Dijken.
>>>
>>>
>>>That was the main idea.  However it turned out to have no effect... because now
>>>I increment nodes_searched at the top of search, and I *never* get there unless
>>
>>Well, as far as i understand, you count nodes at the top of Search() both in
>>14.2 and 15.20, but in 15.20 also in the else branch of
>>
>>    MakeMove(tree,ply,tree->current_move[ply],wtm);
>>    if (tree->in_check[ply] || !Check(wtm)) {
>>...
>>    } else tree->nodes_searched++;
>>    UnMakeMove(tree,ply,tree->current_move[ply],wtm);
>>
>>>the position is "legal"... so for search() it doesn't matter.  In quiesce, I
>>>do count illegal positions... but the point is counting "work" really... and if
>>>I do a MakeMove() and so forth, I "searched" that node whether it was legal or
>>>not.
>>
>>I agree with Ernst Heinz that only counting legal moves is cleaner and allows
>>for a more fair comparison with other programs (as far as it has any use to
>>compare programs on nps).
>
>I don't buy the "fairer" argument... because the two node counts are *badly*
>mangled by quiescence searches.  IE if I took out the line you mention, the
>nodes searched is *still* a mixture of legal and illegal positions.  It's a
>semantic argument of whether you 'searched' an illegal position or not, because
>in my case, I had to make the move, notice it leaves me in check, and unmake
>the move... which is the same amount of work I do for "legal" positions...  So
>I consider it more accurate, unless I actually start counting only legal
>positions, which I don't plan to do...

The whole node counting business is messy.  There are many situations
where you may do some work to evaluate a position (without actually
executing the move) and I often wonder which programs cheat on this.

My program is very conservative, if there is any doubt I don't count.

- Don



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.