Author: Steve Maughan
Date: 04:48:26 06/15/04
Go up one level in this thread
Dan, Thanks for the note. Yes I think I'm defining nodes in the same way. I'm also doing Futility Pruning as you are so I must be going something else wrong. I can see a deep debug session coming on! Thanks again, Steve >On June 15, 2004 at 05:28:26, Steve Maughan wrote: > >>Dan, >> >>>When I shutoff the pruning from the swap function, I forgot to shut off the >>>swap function itself. When I do that, the results are the same, but the NPS >>>are a bit higher.... >> >>What do you mean by swap function? Is this SEE pruning i.e. prune all losing >>captures? I'm already doing this and as you can see my qsearch is > 31%. Maybe >>I do have a problem. >> >>Thanks, >> >>Steve > >The swap function just exchanges all possible material for that one square you >have moved to, and I think an SEE does all possible exchanges anywhere on the >board, but I am not sure. Regardless, I think they serve the same purpose, to >prune down the moves searched in the qsearch. > >I prune more than losing captures; however, I also prune anything that doesn't >get me within a certain margin of alpha (futility pruning). > >The margin is usually only 50 points (PAWN = 100), but I increase it if the >evaluation score for the current position is higher than the material score, >suggesting that there is lots of points to be gained from positional changes >resulting from captures. Here is the snippet of code... > > best = pos.score_pos(alpha,beta); eval_count++; > > if(best >= beta) { > pc[ply][ply].t = NOMOVE; > return best; // break if best > beta > } > > // set futility cutoff 'delta_score' which is a global variable used > // in the generation of captures > if(best > alpha) alpha = best; > delta_score = alpha - MAX(best,pos.material) - 50; > delta_score = MAX(0,delta_score); > if(alpha > best) best = alpha; > >I should also note that I do not count the first call to qsearch as a qsearch >node (that is just the leaf node from the main tree), but I do count all >subsequent calls to qsearch as qsearch nodes because those are leaves generated >by the qsearch. I think this is the same as your definition, but I wasn't 100% >sure. > > - Dan
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.