Branching factor is the time to complete the subseqent ply divided by the time to complete the current ply.cms271828 wrote:Yeh that makes sense pretty much, but what is branching factor?
Does it apply to a node or to a search?
If a null move is played in a node, which returns, then that node only had 1 branch.
So how do we measure it? Do we average it over all the nodes, or is it something totally different?
For instance, if ply 12 takes 10 seconds and ply 11 takes 3 seconds, then the branching factor is 10/3 = 3.33.
Each search will differ a little, so it should be considered as an average over a large number of positions and plies.
Here are the conditions from Scorpio as to when Scorpio will perform a null move or not:
Code: Select all
if(!sb->hstack[sb->hply - 1].checks // Not in check
&& !sb->pstack->mate_threat // No mate threat
&& sb->pstack->node_type != PV_NODE // Not a pv node
&& sb->pstack->hash_flags != AVOID_NULL // Not an "avoid null move" state
&& sb->piece_c[sb->player] // I have at least one full piece
&& sb->all_man_c > 5 // There are at least 5 chessmen left
) {
// Do null move search here...
}