Changes

Jump to: navigation, search

Late Move Reductions

16,057 bytes added, 20:25, 29 April 2018
Created page with "'''Home * Search * Selectivity * Reductions * Late Move Reductions''' FILE:Bak_OtherRules.jpg|border|right|thumb|333px|link=http://chgs.elevator.u..."
'''[[Main Page|Home]] * [[Search]] * [[Selectivity]] * [[Reductions]] * Late Move Reductions'''

[[FILE:Bak_OtherRules.jpg|border|right|thumb|333px|link=http://chgs.elevator.umn.edu/asset/viewAsset/57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bc8|[[Arts#Bak|Samuel Bak]] - Other Rules <ref>[http://chgs.elevator.umn.edu/asset/viewAsset/57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bc8 Chess in the Art of Samuel Bak], [http://www.chgs.umn.edu/ Center for Holocaust & Genocide Studies], [https://en.wikipedia.org/wiki/University_of_Minnesota University of Minnesota]</ref> ]]

'''Late Move Reductions (LMR)''',<br/>
or its version known as '''History Pruning''' and '''History Reductions''' <ref>[http://members.home.nl/matador/hr.htm History Reductions in Pro Deo] by [[Ed Schroder|Ed Schröder]]</ref> , save search by reducing [[Moves|moves]] that are [[Move Ordering|ordered]] closer to the end of likely [[Node Types#ALL|fail-low nodes]]. Typically, most schemes search the first few moves (say 3-4) at full [[Depth|depth]], then if no move [[Fail-High|fails high]], many of the remaining moves are reduced in search [[Depth|depth]]. The technique has been used for many years in various forms, but it became very popular in 2005 after [[Fruit]] and [[Glaurung]] <ref>[http://www.glaurungchess.com/lmr.html An Introduction to Late Move Reductions] by [[Tord Romstad]]</ref> used open source implementations based on the [[History Heuristic]]. LMR can often reduce the [[Branching Factor#EffectiveBranchingFactor|effective branching factor]] to less than 2, depending on the reduction conditions.

=Common Conditions=
Most programs do not reduce these types of [[Moves|moves]]:
* [[Tactical moves]] ([[Captures|captures]] and [[Promotions|promotions]])
* Moves while in [[Check|check]]
* Moves which give check
* Moves that cause a search [[Extensions|extension]]
* Anytime in a [[Node Types#PV|PV-Node]] in a [[Principal Variation Search|PVS]] search
* [[Depth]] < 3 (sometimes depth < 2)

=Less Common Conditions=
Less common conditions on moves not to reduce:
* [[Passed Pawn]] Moves
* [[Killer Heuristic|Killer Moves]]
* Moves threatening the King area
* [[Tactics|Tactically]] threatening moves
* Moves with good past [[Relative History Heuristic|relative history]] <ref>[[Mark Winands]], [[Erik van der Werf]], [[Jaap van den Herik]], and [[Jos Uiterwijk]] ('''2006'''). ''The Relative History Heuristic''. Computers and Games, Lecture Notes in Computer Science (LNCS 3846) (eds. [[Jaap van den Herik]], [[Yngvi Björnsson]], and [[Nathan S. Netanyahu]]), pp. 262-272. [http://www.cs.unimaas.nl/m.winands/documents/relhis.pdf pdf]</ref>
* Any [[Pawn Push|Pawn Moves]]
* Allowing reductions of "bad" [[Captures|captures]] ([[Static Exchange Evaluation|SEE]] < 0)
* Moves of a [[Null Move Pruning#ThreatDetection|threatened piece]] to safety (often detected via a [[Null Move Pruning|Null Move search]])

=Reduction Depth=
Classical implementation reduces by one [[Ply|ply]] only. Yet modern programs, most notably [[Stockfish]], allow reductions of more than one ply and increase them for later moves. Reduction depth changes according to expected [[Node Types|node type]] (being typically smaller in pv nodes), [[Depth|depth]] and move number. Here some sample formulas can be viewed:
* [[Senpai]] reduces by one ply for the first 6 moves and by depth / 3 for remaining moves.
* [[Fruit Reloaded]] uses formula: uint8( sqrt(double(depth-1)) + sqrt(double(moves-1))); for non-PV nodes. In PV-nodes it reduces by 2/3 of this value.

=Re-searches=
Classical implementation assumes a re-search at full depth if the reduced depth search returns a score above alpha.

=Test Results=
Some test results related to LMR can be found on
* [[Late Move Reduction Test Results]]

=See also=
* [[Tord Romstad#Video|Parallelism and Selectivity in Game Tree Search | Video]], Talk by [[Tord Romstad]]
* [[Bobby#StrategicQuiescenceSearch|Bobby's Strategic Quiescence Search]]
* [[History Heuristic]]
* [[History Leaf Pruning]]
* [[Futility Pruning#MoveCountBasedPruning|Move Count Based Pruning]] (Late Move Pruning)
* [[Null Move Pruning]]
* [[Relative History Heuristic]]
* [[SEX Algorithm]]

=Publications=
* [[David Levy]], [[David Broughton]], [[Mark Taylor]] ('''1989'''). ''The SEX Algorithm in Computer Chess''. [[ICGA Journal#12_1|ICCA Journal, Vol. 12, No. 1]]
* [[Daniel Shawul|Daniel S. Abdi]] ('''2013'''). ''Analysis of pruned minimax trees''. [https://dl.dropboxusercontent.com/u/55295461/analysis/pruning.pdf pdf] » [[Alpha-Beta]], [[Null Move Pruning]]

=Forum Posts=
==2004==
* [https://www.stmintz.com/ccc/index.php?id=352384 Forward pruning and some related techniques] by [[Sergei Markoff]], [[CCC]], March 02, 2004
==2005 ...==
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=2300&p=10549 Reductions and null move refutations] by [[Tord Romstad]], [[Computer Chess Forums|Winboard Forum]], April 18, 2005 » [[Null Move Pruning]]
* [https://www.stmintz.com/ccc/index.php?id=434809 What is History Pruning?] by [[David Dahlem]], [[CCC]], July 03, 2005
* [https://www.stmintz.com/ccc/index.php?id=445457 History based pruning question] by [[Alvaro Cardoso|Alvaro Jose Povoa Cardoso]], [[CCC]], August 26, 2005
* [https://www.stmintz.com/ccc/index.php?id=457846 About history pruning...] by Svein Bjørnar Myrvang, [[CCC]], October 26, 2005
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=3795 What is "history pruning"?] by [[Vladimir Medvedev]], [[Computer Chess Forums|Winboard Forum]], November 07, 2005
'''2006'''
* [https://www.stmintz.com/ccc/index.php?id=489978 History pruning] by [[Frank Phillips]], [[CCC]], February 27, 2006
* [https://www.stmintz.com/ccc/index.php?id=490705 late move reductions] by [[Robert Hyatt]], [[CCC]], March 01, 2006
: [https://www.stmintz.com/ccc/index.php?id=490712 Re: late move reductions] by [[Alessandro Scotti]], [[CCC]], March 01, 2006 » [[Kiwi]]
: [https://www.stmintz.com/ccc/index.php?id=490779 PHR (Peak History Reduction) idea] by [[Daniel Mehrmann]], [[CCC]], March 01, 2006 » [[Main Page|Home]], [[Relative History Heuristic]]
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=4435&p=23839 history pruning/ late move pruning] by [[Tom King]], [[Computer Chess Forums|Winboard Programming Forum]], March 02, 2006
* [http://www.open-aurec.com/wbforum/viewtopic.php?t=5194 LMR question] by [[Uri Blass]], [[Computer Chess Forums|Winboard Programming Forum]], July 13, 2006
'''2007'''
* [http://www.talkchess.com/forum/viewtopic.php?t=12936 LMR in micro-Max] by [[Harm Geert Muller]], [[CCC]], April 07, 2007 » [[Micro-Max]]
* [http://www.talkchess.com/forum/viewtopic.php?t=15219 Fruit and History Reductions] by [[Ed Schroder|Ed Schröder]], [[CCC]], July 19, 2007 » [[Fruit]]
* [http://www.talkchess.com/forum/viewtopic.php?t=15304 LMR other conditions] by [[Mark Lefler]], [[CCC]], July 23, 2007
* [http://www.talkchess.com/forum/viewtopic.php?t=15337 Improving history tables] by [[Michael Sherwin]], [[CCC]], July 25, 2007
* [http://www.talkchess.com/forum/viewtopic.php?t=18345 LMR: history or not?] by [[Alessandro Scotti]], [[CCC]], December 13, 2007 » [[Hamsters]]
'''2008'''
* [http://www.talkchess.com/forum/viewtopic.php?p=178438 Extreme late move reductions?] by [[Gary Linscott|Gary]], [[CCC]], March 05, 2008
* [http://www.talkchess.com/forum/viewtopic.php?t=20636 LMR?] by [[Martin Giepmans]], [[CCC]], April 12, 2008 » [[Anatoli]]
* [http://www.talkchess.com/forum/viewtopic.php?t=25599 Adaptative LMR and TT] by [[Fermin Serrano]], [[CCC]], December 23, 2008
'''2009'''
* [http://www.talkchess.com/forum/viewtopic.php?t=26703 About LMR & History reductions] by [[Joona Kiiski]], [[CCC]], February 24, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=26877 LMR] by [[Robert Hyatt]], [[CCC]], March 05, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=26944 LMR and 'tactically connected' moves] by [[Harm Geert Muller]], [[CCC]], March 10, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=27277 LMR revisited] by [[Robert Hyatt]], [[CCC]], April 01, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=27530 LMR and null move selectivity] by [[Don Dailey]], [[CCC]], April 20, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=29944 LMR] by [[Bas Hamstra]], [[CCC]], September 30, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=30245 May I Ask What You Think Of This?] by [[Christopher Conkie]], [[CCC]], October 20, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=31369 Did people try replacing LMR by pruning] by [[Uri Blass]], [[CCC]], December 31, 2009
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=31494 The problem with LMR in suprtactical positions] by [[Oliver Brausch]], [[CCC]], January 05, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=31933 Researching if LMR-affected search improves Alpha?] by [[John Merlino]], [[CCC]], January 22, 2010
* [http://talkchess.com/forum/viewtopic.php?t=32984 Problems with LMR in late endgames] by [[Luca Hemmerich]], [[CCC]], March 01, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=33265 LMR algorithm] by kenny stanley, [[CCC]], March 15, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=33434 LMR Conditions] by kenny stanley, [[CCC]], March 23, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=34437 LMR at root of search tree - worthwhile?] by [[Tom King]], [[CCC]], May 21, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=34557 EPR, even better than LMR!] by [[Michael Sherwin]], [[CCC]], May 27, 2010
* [http://www.open-chess.org/viewtopic.php?f=5&t=248#p2538 Re: "Automated Discovery of Search Extensions"] by [[Ed Schroder|Ed Schröder]], [[Computer Chess Forums|OpenChess Forum]], June 26, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=35558 lmr at PV nodes?] by [[Tom King]], [[CCC]], July 23, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=35955 move count based pruning] by [[Tom King]], [[CCC]], September 02, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=36633 LMR differences in long vs short games] by [[Jacob Børs Lind]], [[CCC]], November 08, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=37337 fulitiy + lmr; funny results] by [[Volker Böhm]], [[CCC]], December 28, 2010
'''2011'''
* [http://www.talkchess.com/forum/viewtopic.php?t=37424 lmr in PV] by [[Larry Kaufman]], [[CCC]], January 03, 2011
'''2012'''
* [http://www.talkchess.com/forum/viewtopic.php?t=41995 Should reduction depend on depth?] by [[Larry Kaufman]], [[CCC]], January 14, 2012 » [[Komodo]]
* [http://www.talkchess.com/forum/viewtopic.php?t=43434 Possible LMR improvement using AB_FOOL] by [[Ed Schroder]], [[CCC]], April 24, 2012
* [http://www.talkchess.com/forum/viewtopic.php?t=44272 LMR Research] by [[Matthew R. Brades]], [[CCC]], July 02, 2012
* [http://www.talkchess.com/forum/viewtopic.php?t=46503 Adjustable search pruning depending on time control] by [[Jerry Donald]], [[CCC]], December 20, 2012 » [[Time Management]]
'''2013'''
* [http://www.talkchess.com/forum/viewtopic.php?t=47577 ROC analysis of Late Move Reductions] by Gerard van Ewijk, [[CCC]], March 22, 2013 <ref>[https://en.wikipedia.org/wiki/Receiver_operating_characteristic Receiver operating characteristic (ROC) from Wikipedia]</ref>
* [http://www.talkchess.com/forum/viewtopic.php?t=48144 Is LMR Sound] by [[Henk van den Belt]], [[CCC]], May 29, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=48154 Is LMR safe within NULL move reduction] by [[Henk van den Belt]], [[CCC]], May 30, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=48356 LMR at CUT nodes can be arbitrarily bad!] by [[Michel Van den Bergh]], [[CCC]], June 20, 2013 » [[Node Types]], [[Python]]
* [http://www.talkchess.com/forum/viewtopic.php?t=49558 How much to reduce ?] by [[Henk van den Belt]], [[CCC]], October 03, 2013 » [[Depth Reduction R|R]]
'''2014'''
* [http://www.talkchess.com/forum/viewtopic.php?t=51578 Null move and LMR] by [[Laurie Tunnicliffe]], [[CCC]], March 12, 2014 » [[Null Move Pruning]]
* [http://www.talkchess.com/forum/viewtopic.php?t=52169 LMR & TT interaction] by [[Natale Galioto]], [[CCC]], April 29, 2014 » [[Transposition Table]]
* [http://www.talkchess.com/forum/viewtopic.php?t=54392 A question about Stockfish and LMR or other pruning...] by Forrest Hoch, [[CCC]], November 20, 2014
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=55526 About LMR , again :-)] by [[Daniel Anulliero]], [[CCC]], March 01, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=56312 LMR tuning] by [[Shawn Chidester]], [[CCC]], May 11, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=56524 Interpretation of LMR] by [[Alexandru Mosoi]], [[CCC]], May 29, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=56631 What's Your Engine's Maximum LMR Reduction?] by [[Steve Maughan]], [[CCC]], June 08, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=57035 New "smoothing" issue] by [[Robert Hyatt]], [[CCC]], July 20, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=57381 On LMR, and statically predicting moves] by [[Matthew Lai]], [[CCC]], August 25, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=57486 LMR by another name] by [[Steven Edwards]], [[CCC]], September 02, 2015 » [[Spector]]
* [http://www.talkchess.com/forum/viewtopic.php?t=57697 Ratio reduction] by [[Steven Edwards]], [[CCC]], September 20, 2015 » [[Symbolic]]
'''2016'''
* [http://www.talkchess.com/forum/viewtopic.php?t=58996 late move reduction] by [[Folkert van Heusden]], [[CCC]], January 21, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=59598 Extensions in the days of LMR?] by [[Martin Fierz]], [[CCC]], March 22, 2016 » [[Extensions]]
* [http://www.talkchess.com/forum/viewtopic.php?t=60194 LMR problems] by [[Alvaro Cardoso]], [[CCC]], May 16, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=60240 Reductions] by [[Harm Geert Muller]], [[CCC]], May 22, 2016 » [[Depth Reduction R|R]]
* [http://www.talkchess.com/forum/viewtopic.php?t=61031 Disappointing LMR Results] by [[David Cimbalista]], [[CCC]], August 04, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=61086 Null Move in LMR] by [[Laurie Tunnicliffe]], [[CCC]], August 10, 2016 » [[Null Move Pruning]]
'''2017'''
* [http://www.open-chess.org/viewtopic.php?f=5&t=3084 LMR and PVS] by thevinenator, [[Computer Chess Forums|OpenChess Forum]], February 10, 2017 » [[Principal Variation Search]]
* [http://www.talkchess.com/forum/viewtopic.php?t=63521 Late move reductions ?] by [[Mahmoud Uthman]], [[CCC]], March 22, 2017
* [http://www.talkchess.com/forum/viewtopic.php?t=63649 Check extension vs LMR] by [[Harm Geert Muller]], [[CCC]], April 04, 2017 » [[Check Extensions]]
* [http://www.talkchess.com/forum/viewtopic.php?t=63870 LMR - or starters - Advance and Expert] by [[Ed Schroder]], [[CCC]], May 01, 2017
* [http://www.talkchess.com/forum/viewtopic.php?t=65169 LMR and killer] by [[Harm Geert Muller]], [[CCC]], September 14, 2017 » [[Killer Heuristic]]
* [http://www.talkchess.com/forum/viewtopic.php?t=65273 LMR prescription] by [[Evert Glebbeek]], [[CCC]], September 24, 2017

=External Links=
* [https://en.wikipedia.org/wiki/Late_Move_Reductions Late Move Reductions from Wikipedia]
* [http://www.glaurungchess.com/lmr.html An Introduction to Late Move Reductions] by [[Tord Romstad]] (dead link)
* [http://mediocrechess.blogspot.de/2007/03/other-late-move-reduction-lmr.html Mediocre Chess: [Guide] Late move reduction (LMR)] by [[Jonatan Pettersson]], March 26, 2007 » [[Mediocre]]
* [http://members.home.nl/matador/hr.htm History Reductions in Pro Deo] by [[Ed Schroder|Ed Schröder]] » [[Pro Deo]]
* [http://rebel13.nl/rebel13/blog/lmr%20advanced.html LMR advanced] from [http://rebel13.nl/index.html Rebel 13] by [[Ed Schroder]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=63870 LMR - or starters - Advance and Expert] by [[Ed Schroder]], [[CCC]], May 01, 2017</ref> » [[Rebel]]

=References=
<references />

'''[[Reductions|Up one level]]'''

Navigation menu