Author: Robert Hyatt
Date: 15:01:32 01/17/98
Go up one level in this thread
On January 17, 1998 at 16:43:39, Don Dailey wrote: >In a message from Ed Schroder we run across this statement: > >> It depends of course how you count NPS. >> I remember yours is different then mine. > > >I have long suspected the lack of a "standard" way of doing this. I >think most of us use a similar method but it's not so clear. I have >always used the method of counting strictly legal moves and requiring >that they be fully executed by the program but I can think of good >arguments for counting in other ways. > >For example, most good programs will evaluate a position that hasn't >occured yet to save a significant amount of time. An example of this >is in quies where you know in advance a capture move will be punished >brutally. I do not count count these as nodes but it could be >strongly argued that I should. > >I believe some programs count "moves generated." This is not an issue >if you are using a purely incremental move generation but would >inflate (or deflate depending on your point of view) the node counts >since most of these moves get cut off before they are even considered. > >Another method is to count end nodes only, which will deflate your >node counts over my method but probably not by large amounts >(depending on a lot of factors like the shape of the tree.) > >Some programs generate and "make" illegal moves as part of the testing >for legality. I view this as inefficient but leads to the question of >whether these should be counted as nodes. When I do check testing to >determine if a move is legal should I count this as a node since in >some sense I'm definitely evaluating it? I don't, but maybe I should? >This adds a significant number of nodes to the nodes/second count. > efficiency is in the eye of the beholder. IE if you look at chess positions, you find two types: (1) you are not in check. Which means most moves will be legal. Testing for illegality is not as fast as making each move and when you generate at the next ply, capture the king means to return to previous ply and toss that move. Because it hardly ever happens, and the time wasted is less than the time wasted legality checking the moves that are legal to weed those that are not out. (2) you are in check. Here, it does make sense to legality check first. In fact, in Crafty, I have a bitmapped move generator that only produces legal moves. Because when in check, most moves are illegal. But in counting nodes I simply bump the counter at the top of search and the top of quiesce, which is the way most have counted them for 30 years or so now. IE, *real* positions produced by making and unmaking a move... >I am always reluctant to attach any significance to big (or small) >node count claims. Until you can actually compare apples to apples it >can be quite misleading. Also this is certainly not the true measure >of a chess program but nevertheless it's an interesting topic. >Certain programs claim such high node counts that it's hard for me to >believe they are counting nodes the same way that some others might >be. > >What is known about the various programs and how they count nodes? I >am quite interested in this since it can give some insights into how >each program works. > > >P.S. > >Please forgive me if this discussion has already made the rounds but >I've never heard any of it myself. > > >- 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.