Author: Uri Blass
Date: 08:34:14 11/18/02
Go up one level in this thread
On November 18, 2002 at 10:50:02, Robert Hyatt wrote: >On November 18, 2002 at 09:25:37, Omid David Tabibi wrote: > >>On November 17, 2002 at 22:31:31, Robert Hyatt wrote: >> >>>On November 17, 2002 at 21:12:53, Joel wrote: >>> >>>>Hey All, >>>> >>>>Thankyou to everyone who responded to my query regarding 'extracting bits from a >>>>bitboard'. I think I will use some preprocessor code and use the bsf/bsr method, >>>>otherwise falling back on my old method (I can play around with this part >>>>later). >>>> >>>>My next question that follows is how do you guys measure nodes per second. I can >>>>think of a quite a few ways of doing it myself, but I would prefer implementing >>>>it in a way which lets me very confidently compare my results with others. >>>> >>>>Thanks, >>>>Joel >>> >>> >>>Every time you recursively call Search() or Quiesce(), increment a counter >>>by one. That is counting nodes searched. Divide that by time used and you >>>get a useful NPS value. >> >>But when you reach depth == 0, don't increment the node counter, since this node >>will be counted as a quiescence node upon calling quiesc(). (if you do, this >>node will be counted twice!) > > >Not in my code. If I enter search, that is a node. If I call quiesce, I call >it _from_ search >and _only_ after making a move. There is no way in a normal alpha/beta search >to enter >search and from there go to quiesce() without making a move. If you are doing >that you >are wasting time with an extra procedure call and its overhead... My alphabeta algorithm is the following: 1)Calculate extensions or partial extensions(I have a special varaible for partial extension and if it is big enough I reduce it and increase depth by 1). 2)if remaining depth=0 call qsearch 3)while no moves left do the following a)makenextmove b)calculate alphbeta with depth-1 c)if score>beta return beta d)if score>alpha alpha=score 4)return alpha; I understand that you do it in the following way: 1)while nomove left a)makenextmove b)calculate extensions c)call alphabeta with depth-1 or qsearch in case that depth-1=0(you do not use depth-1 and you have not a special varaible for partial extensions but these are unimportant technical details) d)if score<beta return beta e)if score>alpha alpha=score 2)return alpha; Do you say that the second way is faster because you call alphabeta less times? How much speed improvement can a program get from it? Uri
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.