Uncertainty+Cut-Offs

a safe pruning technique performed in PVS at siblings of a PV-node, which are Cut-nodes, expected to fail-high and therefor to don't improve the score at the parent PV-node. Even more, the fail-high occurs in > 90% from the first move. Sometimes, previous expectations are changing, and an expected Cut-node turns out to become an All-node, yielding in a re-search. || toc =The Idea= The basic idea of Uncertainty Cut-Offs is that after the first and some further promising moves didn't fail-high at an expected Cut-Node, to don't waste time with late moves, to premature return an uncertain score of an All-node, indicated by a boolean flag to the PV-node callee. Uncertainty Cut-Offs were investigated by Yngvi Björnsson and Andreas Junghanns during the mid 90s at University of Alberta, as implemented in their chess program The Turk. The contribution of Yngvi Björnsson, Tony Marsland, Jonathan Schaeffer and Andreas Junghanns was introduced by Björnsson at the Advances in Computer Chess 8 conference 1996, published in the conference proceedings and the ICCA Journal.
 * Home * Search * Selectivity * Pruning * Uncertainty Cut-Offs**
 * [[image:Uncertainty_principle.jpg link="http://en.wikipedia.org/wiki/File:Uncertainty_principle.gif"]] ||~  || **Uncertainty Cut-Offs**,
 * Uncertainty principle ||~  ||^   ||

=Abstract=

=Pseudo Code= //slightly modified C-like syntax// code format="cpp" TreeValue pvs( node, α, β, depth, ply ) { if ( depth == 0 ) return evaluate( node ); next = firstSuccessor( node ); best = -pvs( next, -β, -α, depth-1, ply+1 ); next = nextSibling( next ); while ( next ) { if ( bext >= β ) return best; α = max( α, best ); {merit, unsure} = -nws( next, -α, depth-1, ply+1, PV); if ( unsure ) merit = -pvs( next, -β, -α, depth-1, ply+1 ); else if ( merit > α && merit < β ) merit = -pvs( next, -β, -merit, depth-1, ply+1 ); best = max( merit, best ); next = nextSibling( next ); }  return best; }

{TreeValue, Boolean} nws( node, β, depth, ply, parent ) { if ( depth == 0 ) return {evaluate( node ), false}; next = firstSuccessor( node ); type = parent == CUT ? ALL : CUT; uncertain = false; estimate = -oo; while ( next ) { {merit, unsure} = -nws( next, 1-β, depth-1, ply+1, type); if ( unsure ) uncertain = true; estimate = max ( merit, estimate ); if ( merit >= β ) return {estimate, unsure}; /* CUT node */ if ( uncertaintyCutoff( estimate, ply, parent ) ) return {estimate, true};  /* premature ALL node */ next = nextSibling( next ); }  return {estimate, uncertain};    /* ALL node */ } code While the above PVS framework applies the backup of uncertainty, the particular cut-off constraints as implemented in //uncertaintyCutoff// given below does not need to back up uncertainty information. This is because the pruning is only applied if it is guaranteed that the sub-branch will be re-searched. code format="cpp" Boolean uncertaintyCutoff( best, ply, parent ) { return ( parent == PV        && searchStack[ply].movesTried > moveLimit         && -best > searchStack[ply-1].α         && -best < searchStack[ply-1].β         && ...          ); } code =Conclusion= Experiments by Björnsson and Junghanns indicate, even though the savings are small, and this pruning technique does not make much difference in most cases, it can significantly decrease the search effort when move ordering heuristics fail.

=See also=
 * Enhanced Forward Pruning
 * Late Move Reductions
 * Multi-Cut
 * ProbCut

=Publications=
 * Yngvi Björnsson, Tony Marsland, Jonathan Schaeffer, Andreas Junghanns (**1997**). //Searching with Uncertainty Cut-offs.// ICCA Journal, Vol. 20, No. 1, [|pdf]
 * Yngvi Björnsson, Tony Marsland, Jonathan Schaeffer, Andreas Junghanns (**1997**). //Searching with Uncertainty Cut-offs//. Advances in Computer Chess 8

=External Links= > media type="youtube" key="_cH_R9QoWVE" width="560"
 * [|Uncertainty from Wikipedia]
 * [|Uncertainty principle from Wikipedia]
 * [|Uncertainty (film) from Wikipedia]
 * [|Uncertainty and Bias] from [|Making Meteorological Measurements]
 * Youn Sun Nah - [|Uncertain Weather], [|MBC] [|Music Travel LaLaLa], September 30, 2010, [|YouTube] Video

=References= =What links here?= include page="Uncertainty Cut-Offs" component="backlinks" limit="50"
 * Up one Level**