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.