This is a temporary, read-only recovery of the chessprogrammingwiki while a longer-term plan is worked out. Editing is not possible right now, but will be again soon.
Chess Programming Wiki All pages Other namespaces

Late Move Reductions

Home * Search * Selectivity * Reductions * Late Move Reductions

Samuel Bak - Other Rules 1Samuel Bak - Other Rules 1


  1. Chess in the Art of Samuel Bak, Center for Holocaust & Genocide Studies, University of Minnesota↩︎

Late Move Reductions (LMR),
save search by reducing moves that are ordered closer to the end. Typically, most schemes search the first few moves (say 1-2) at full depth, then if no move fails high, many of the remaining moves are reduced in search depth, and only re-searched if the reduced search fails high. The technique has been used for many years in various forms, but it became very popular in 2005 after Fruit and Glaurung 1 used open source implementations based on the History Heuristic. LMR can often reduce the effective branching factor to less than 2, depending on the reduction conditions.

Contents
  1. Common Conditions
  2. Uncommon Conditions
  3. Reduction Depth
    1. Base Reduction
    2. Heuristic Reductions
    3. Reduction Range
  4. Re-searches
  5. Test Results
  6. See also
  7. Publications
  8. Forum Posts
    1. 2004
    2. 2005 ...
    3. 2010 ...
    4. 2015 ...
    5. 2020 ...
  9. External Links
  10. References

Common Conditions

Most programs do not reduce these types of moves:

Uncommon Conditions

Uncommon conditions on moves not to reduce:

Reduction Depth

Modern programs, most notably Stockfish, allow reductions of more than one ply and adjust them based on contextual information.

Base Reduction

The base reduction depth changes according to depth and the number of moves that have been searched. In the simplest case, the base reduction is linear with respect to the product of the logarithm of depth and move number. For example:

Here some extra sample formulas can be viewed:

Heuristic Reductions

In addition to a well-tuned base reduction formula, modern programs also reduce conditionally based on specific sets of heuristics. Some common examples include:

Reduction Range

Nominal reduction values can sometimes reach below zero or exceed depth. Therefore, it is common to clamp reduction to ensure correctness. The range at which reductions are clamped is an area of further refinements.

Re-searches

Classical implementation assumes a re-search at full depth if the reduced depth search returns a score above alpha. In recent years, Stockfish had success with adjusting re-search depth based on result from reduced search.

Test Results

Some test results related to LMR can be found on

See also

Publications

Forum Posts

2004

2005 ...

2006

Re: late move reductions by Alessandro Scotti, CCC, March 01, 2006 » Kiwi

PHR (Peak History Reduction) idea by Daniel Mehrmann, CCC, March 01, 2006 » Home, Relative History Heuristic

2007

2008

2009

2010 ...

2011

2012

2013

2014

2015 ...

2016

2017

2019

2020 ...

References

Up one level


  1. An Introduction to Late Move Reductions by Tord Romstad (Wayback Machine)↩︎

  2. Mark Winands, Erik van der Werf, Jaap van den Herik, Jos Uiterwijk (2004). The Relative History Heuristic. CG 2004, pdf↩︎

  3. Receiver operating characteristic (ROC) from Wikipedia↩︎

  4. LMR - or starters - Advance and Expert by Ed Schroder, CCC, May 01, 2017↩︎

Categories: Samuel Bak

What links here

Contributors: GerdIsenberg, ShawnXu.