Null Move Reductions

From Chessprogramming wiki
Jump to: navigation, search

Home * Search * Selectivity * Reductions * Null Move Reductions

Null Move Reductions,
not to confused with the widespread Null Move Pruning, 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. Eli David and Nathan S. Netanyahu introduced so called Extended Null-Move Reductions [1] with an adaptive R based on depth.

How it works

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


Up one level