Difference between revisions of "Null Move Reductions"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Search * Selectivity * Reductions * Null Move Reductions''' '''Null Move Reductions''',<br/> not to confused with the widespread Null Mo...")
 
 
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. [[Omid David]] and [[Nathan S. Netanyahu]] introduced so called '''Extended Null-Move Reductions''' <ref>[[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]</ref> with an adaptive [[Depth Reduction R|R]] based on [[Depth|depth]].
+
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

Publications

Forum Posts

References

Up one level