Late move reductions

Late Move Reductions (abbreviated as LMR) is a non-game specific enhancement to the alpha-beta algorithm and its other variants which attempts to examine a game search tree more efficiently by "pruning" bad nodes. It relies on the assumption that good game-specific move ordering causes a program to search the most likely (good) moves early. If a cut-off is going to happen in a search, the first few moves are the ones most likely to cause them. In games like chess, most programs search winning captures and "killer moves" first. Late move reductions will reduce the search depth for moves searched later at a given node. This heuristic allows the program to search deeper along the critical lines, and play better.[1]

Most of the chess programs (or engines) typically search the first one or two moves in full depth. If the score of the first few moves are lower than alpha, the move is assumed bad. However, if the score of the moves are larger than alpha, the reduced search tells us nothing so we will have to do a full search (called as a fail-low).

This search reduction can lead to a different search space than the pure alpha–beta method which can give different results. Care must be taken to select the reduction criteria or the search will miss some deep threats.

Description

Late move reductions work on the idea that the higher a move is on a sorted list, the better it likely is.[2] When an engine evaluates a node, it uses heuristics to order moves so that the most promising lines, such as captures or those suggested by the killer heuristic, are searched first.[1] If these moves do not produce a cut-off, later moves are considered increasingly likely to be worse; as a result, the algorithm searches these "late" moves at a shallower depth than originally intended.[3]

See also

  • NNUE - A neural network which is used to evaluate moves (or calculate the approximate "score" of a move).
  • Stockfish (chess) - A popular strong chess engine that uses NNUE as it's evaluation function.
  • YaneuraOu - A shogi chess engine that first implemented NNUE.

References

  1. ^ a b "Late Move Reductions - Chessprogramming wiki". ChessProgramming Wiki. Retrieved March 3, 2026.
  2. ^ Hoki, Kunihito; Muramatsu, Masakazu (2012). "Efficiency of three forward-pruning techniques in shogi: Futility pruning, null-move pruning, and Late Move Reduction (LMR)". Entertainment Computing. 3 (3): 51–57. doi:10.1016/j.entcom.2011.11.003. ISSN 1875-9521 – via ScienceDirect.
  3. ^ Levy, David; Broughton, David; Taylor, Mark (March 1, 1989). "The SEX Algorithm in Computer Chess". ICGA Journal. 12 (1): 10–21. doi:10.3233/ICG-1989-12103 – via Sage Journals.