Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: QNodes, Leaf Nodes and Best Practice?

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.