Difference between revisions of "Null Move Reductions"
GerdIsenberg (talk | contribs) (Created page with "'''Home * Search * Selectivity * Reductions * Null Move Reductions''' '''Null Move Reductions''',<br/> not to confused with the widespread Null Mo...") |
GerdIsenberg (talk | contribs) |
||
Line 2: | Line 2: | ||
'''Null Move Reductions''',<br/> | '''Null Move Reductions''',<br/> | ||
− | not to confused with the widespread [[Null Move Pruning]], work similar to [[Rainer Feldmann|Feldmann's]] [[Fail-High Reductions]], but use a [[Null Move]] Search rather than static [[Evaluation|evaluation]] and reduces by a amount of '''four''' plies rather than one. [[ | + | not to confused with the widespread [[Null Move Pruning]], work similar to [[Rainer Feldmann|Feldmann's]] [[Fail-High Reductions]], but use a [[Null Move]] Search rather than static [[Evaluation|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''' <ref>[[Eli David|Omid David]], [[Nathan S. Netanyahu]] ('''2008'''). ''[http://link.springer.com/chapter/10.1007/978-3-540-87608-3_19 Extended Null-Move Reductions]''. [[CG 2008]]</ref> with an adaptive [[Depth Reduction R|R]] based on [[Depth|depth]]. |
+ | =How it works= | ||
If a null move [[Fail-High|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 a null move [[Fail-High|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. | ||
Line 28: | Line 29: | ||
* [[Null Move Pruning]] | * [[Null Move Pruning]] | ||
* [[Quiescence Search#StandPat|Standing Pat]] in [[Quiescence Search]] | * [[Quiescence Search#StandPat|Standing Pat]] in [[Quiescence Search]] | ||
+ | |||
+ | =Publications= | ||
+ | * [[Eli David|Omid David]], [[Nathan S. Netanyahu]] ('''2008'''). ''[http://link.springer.com/chapter/10.1007/978-3-540-87608-3_19 Extended Null-Move Reductions]''. [[CG 2008]], [http://www.oedavid.com/pubs/nmr.pdf pdf] | ||
=Forum Posts= | =Forum Posts= |
Latest revision as of 15:19, 27 August 2018
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; 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
For zwSearch, see Zero Window Search inside the Principal Variation Search.
See also
- Double Null Move
- Fail-High Reductions
- Null Move Observation
- Null Move Pruning
- Standing Pat in Quiescence Search
Publications
Forum Posts
- Extended Null-Move Reductions by Alvaro Cardoso, CCC, August 20, 2010
- Null move alterative in endgames by Aleks Peshkov, CCC, November 16, 2011
- thoughts on null-move reduction by Youri Matiounine, CCC, June 14, 2015 » Null Move Pruning