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.