if ( nullMoveAllowed && ...) { R = depth > 6 ? 4 : 3; makeNullMove() score = -zwSearch(1-beta, depth-R-1) // -AlphaBeta (0-beta, 1-beta, depth-R-1) unmakeNullMove(); if (score >= beta ) { depth -= 4; // reduce search if ( depth <= 0 ) return Evaluate(); // Quiescence } } // continue search
You need to enable Javascript in your browser to edit pages.
help on how to format text
Table of Contents
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.
For zwSearch, see Zero Window Search inside the Principal Variation Search.
See also
Forum Posts
References
What links here?
Up one level