Home * Search * Selectivity * Reductions * Null Move Reductions

Null Move Reductions work similar to Feldmann's Fail-High Reductions, but use a Null Move Search rather than static evaluation and reduces by a amount of four plies rather than one. Omid David and Nathan S. Netanyahu introduced so called Extended Null-Move Reductions [1] with an adaptive R based on depth.

If a null move fail-high occurs - opposed to Null Move Pruning - the search is reduced by four plies, rather than pruned. Thus, Null Move Reductions are therefor less vulnerable to Zugzwang and might even applied in (late) endings.

if ( nullMoveAllowed && ...) {
   R = depth > 6 ? 4 : 3;
   score = -zwSearch(1-beta, depth-R-1) // -AlphaBeta (0-beta, 1-beta, depth-R-1)
   if (score >= beta ) {
      depth -= 4; // reduce search
      if ( depth <= 0 )
          return Evaluate(); // Quiescence
// continue search
For zwSearch, see Zero Window Search inside the Principal Variation Search.

See also

Forum Posts


  1. ^ Omid David, Nathan S. Netanyahu (2008). Extended Null-Move Reductions. CG 2008, pdf

What links here?

Up one level