Draft:Move ordering
Move ordering refers to the practice of selecting the most promising moves first during game-tree search (especially in computer chess). In minimax searches with alpha–beta pruning, good move ordering is important, examining stronger moves early causes cutoffs that eliminate subtrees, vastly reducing the number of nodes searched. In the ideal case of perfect move ordering the search complexity drops from O ( b d ) {\displaystyle O(b^{d})} to approximately O ( b d / 2 ) {\displaystyle O(b^{d/2})} , effectively halving the effective branching factor to b {\displaystyle {\sqrt {b}}} and allowing roughly twice the search depth for a given computational effort. Claude Shannon observed that although a typical chess position may have on the order of 30 legal moves, effective pruning and heuristics reduce the useful branching factor to only a few.
Review waiting, please be patient.
This may take 2 months or more, since drafts are reviewed in no specific order. There are 4,332 pending submissions waiting for review.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Reviewer tools
|
| This is a draft article. It is a work in progress open to editing by anyone. Please ensure core content policies are met before publishing it as a live Wikipedia article. Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL Last edited by RightYiZheng (talk | contribs) 6 days ago. (Update)
This draft has been submitted and is currently awaiting review. |
Move ordering refers to the practice of selecting the most promising moves first during game-tree search (especially in computer chess).[1][2] In minimax searches with alpha–beta pruning, good move ordering is important, examining stronger moves early causes cutoffs that eliminate subtrees, vastly reducing the number of nodes searched. In the ideal case of perfect move ordering the search complexity drops from to approximately , effectively halving the effective branching factor to and allowing roughly twice the search depth for a given computational effort.[3] Claude Shannon observed that although a typical chess position may have on the order of 30 legal moves, effective pruning and heuristics reduce the useful branching factor to only a few.[4]
History
[edit]The idea of ordering moves came before computers. In his 1950 seminal paper "Programming a Computer for Playing Chess",[5] Claude Shannon noted the enormous size of the full game tree (estimated at nodes) and suggested that a simple evaluation coupled with search all variations to a fixed depth would be impractical. Shannon saw that any chess program would need to focus on selected moves and prune aggressively to be useful. The formal alpha–beta algorithm appeared in the late 1950s and 1960s as a way to prune branches without changing the minimax result. Early on, it was noted that alpha–beta's pruning power depends entirely on the order in which moves are examined. In 1963, Alexander Brudno independently described alpha–beta-like search and noted that best-case node counts occur when moves are tried in the right order; by the 1970s researchers such as Donald Knuth and Ronald Moore had mathematically analyzed alpha–beta and shown that under perfect ordering its time is .[6]
In the 1970s and 1980s the major practical heuristics for move ordering were introduced. The use of iterative deepening was rediscovered in chess programs and found to significantly improve move ordering for deeper searches. The idea was to use the best move found at shallow depth as the first move in the next deeper search.[7] Transposition tables (Mac Hack by Richard Greenblatt in 1966 first used a hash) allowed the program to store the best move for each position and reuse it as the first choice on subsequent visits.[8] In 1968 Barbara Liskov and others independently suggested storing moves that caused beta cutoffs. This eventually became known as the killer heuristic. In 1983 Jonathan Schaeffer proposed the history heuristic. Schaeffer showed that the history scores outperformed simpler heuristics.
Theoretical background
[edit]The efficiency of a chess engine's search is almost entirely dependent on its ability to ignore "bad" moves as quickly as possible. Theoretically, if an engine could always examine the best move first, the search space would effectively be reduced to its square root.[1] This is achieved through a combination of game theory and heuristic-based pruning.[9]
A pure minimax game-tree search explores all moves to a fixed depth, which is exponentially expensive.[10] Alpha–beta pruning improves this by carrying two bounds which are Alpha (α) and Beta (β).[11] Alpha is the minimum score the maximizing player is assured of, and Beta is the maximum score the minimizing player can permit. Whenever a node's value cannot possibly influence the final decision because it is worse than a previously examined move, the branch is cut off. This has a probability to have the same result as full minimax but with fewer nodes.
Iterative deepening depth-first search is commonly used. The engine repeatedly searches with increasing depth limits, using the best move from depth as the first move to try at depth .[12] This almost produces a strong initial bound (alpha or beta) on the first move, which narrows the window for the rest of the search. Iterative deepening converts a depth-first search into something akin to a best-first search by leveraging past results. When a transposition table contains an entry for the current position, its stored best move is tried first.[13] After a transposition move is considered, typical ordering heuristics prioritize captures and checks, since forcing tactical moves often lead to large advantages or immediate cut offs.[14]
Engines sort capture moves by the Most Valuable Victim–Least Valuable Aggressor (MVV-LVA) heuristic.[8] To avoid obviously losing trades, a static exchange evaluation (SEE) is often applied to prune captures that reduce material balance. If the forcing moves do not produce a cutoff, the engine then tries its stored killer moves, which are tried at early depth. If a non-killer move causes a cutoff, it becomes a new killer. Finally, any remaining quiet moves are ordered by their history heuristic scores, which accumulate bonuses when a move causes a cutoff.[15] Each time a move causes a cutoff anywhere in the search, its history score increases. Thus moves that have historically caused cutoffs rank higher in future ordering.
Advanced topics
[edit]Researchers have developed several refinements beyond the basic schemes. Countermove heuristic assumes that many moves have a "natural" response, irrespective of the actual position.[16][17] Other miscellaneous techniques such as "Butterfly boards"[18] and "last-best-reply" heuristics are related ideas that exploit local search history. Some engines use machine learning, early work by Kocsis et al. and Greer applied neural networks to predict move values or ordering. Most strong engines still rely on the simple set of PV moves, hash moves, MVV-LVA capture sorting, killer and history tables.
See Also
[edit]- Killer heuristic, the heuristic used for improving move ordering.
- Iterative deepening
- Alpha–beta pruning
References
[edit]- ^ a b Russell, Stuart; Norvig, Peter (April 28, 2020). Artificial Intelligence: A Modern Approach (4th ed.). Hoboken, New Jersey: Pearson Education. pp. 152–161. ISBN 978-0134610993.
- ^ Schaeffer, Jonathan; Plaat, Aske (February 20, 1996). New Advances in Alpha-Beta Searching. CSC '96: Proceedings of the 1996 ACM 24th Annual Conference on Computer Science. Philadelphia, Pennsylvania: Association for Computing Machinery. pp. 124–130. doi:10.1145/228329.228344. ISBN 0-89791-828-2.
- ^ Reinefeld, Alexander; Marsland, T. Anthony (July 31, 1994). "Enhanced Iterative-Deepening Search". IEEE Transactions on Pattern Analysis and Machine Intelligence. 16 (7). IEEE: 701–710. Bibcode:1994ITPAM..16..701R. doi:10.1109/34.297950. eISSN 1939-3539. ISSN 0162-8828. Full text available at ResearchGate (deprecated than the original)
- ^ "Move Ordering - Chessprogramming Wiki". Chessprogramming Wiki. Retrieved March 16, 2026.
- ^ Shannon, Claude (January 1, 1988). "Programming a Computer for Playing Chess". In Levy, David (ed.). Computer Chess Compendium. New York: Springer Nature. pp. 2–13. doi:10.1007/978-1-4757-1968-0. ISBN 978-0-387-91331-5.
- ^ Marsland, T. Anthony (March 1, 1986). "A Review of Game-Tree Pruning". ICGA Journal. 9 (1): 3–19. doi:10.3233/ICG-1986-9102. eISSN 2468-2438. ISSN 1389-6911 – via Sage Journals.
- ^ Knuth, Donald; Moore, Ronald (December 1, 1975). "An Analysis of Alpha-Beta Pruning". Artificial Intelligence. 6 (4). Elsevier: 293–326. doi:10.1016/0004-3702(75)90019-3. ISSN 0004-3702 – via ScienceDirect.
- ^ a b Greenblatt, Richard (January 1, 1988). "The Greenblatt Chess Program". Computer Chess Compendium. New York: Springer Nature. pp. 56–66. doi:10.1007/978-1-4757-1968-0_7. ISBN 978-1-4757-1970-3.
- ^ Campbell, Murray; Hoane Jr., A. Joseph; Hsu, Feng-hsiung (January 24, 2002). "Deep Blue". Artificial Intelligence. 134 (1–2): 57–83. doi:10.1016/S0004-3702(01)00129-1. ISSN 0004-3702 – via ScienceDirect.
- ^ Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (April 5, 2022). Introduction to Algorithms (4th ed.). MIT Press. pp. 1020–1032. ISBN 978-0-262-04630-5. LCCN 2021037260. OL 34192801M.
- ^ Luger, George (February 26, 2008). Artificial Intelligence: Structures and Strategies for Complex Problem Solving (6th ed.). Addison-Wesley. pp. 161–171. ISBN 978-0321545893. LCCN 2007050376. OCLC 439520815. OL 3946606M.
- ^ Russell, Stuart; Norvig, Peter (December 1, 2009). Artificial Intelligence: A Modern Approach (3rd ed.). Prentice Hall. ISBN 978-0136042594. LCCN 2011-288031. OCLC 359890490.
- ^ Silver, David; Hubert, Thomas; Schrittwieser, Julian; Antonoglou, Ioannis; Lai, Matthew; Guez, Arthur; Lanctot, Marc; Sifre, Laurent; Kumaran, Dharshan; Graepel, Thore; Lillicrap, Timothy; Simonyan, Karen; Hassabis, Demis (December 5, 2017). "Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm". p. 10. arXiv:1712.01815v1 [cs.AI]. "A transposition table faciliates the reuse of values and move orders when the same position is reached by multiple paths."
- ^ "Transposition Table". Chessprogramming Wiki. April 27, 2018. Retrieved March 31, 2026.
- ^ Schaeffer, Jonathan (November 30, 1989). "The History Heuristic and the Performance of Alpha-Beta Enhancements". IEEE Transactions on Pattern Analysis and Machine Intelligence. 11 (11): 1203–1212. doi:10.1109/34.42858. eISSN 1939-3539. ISSN 0162-8828. OCLC 8557794501.
- ^ Uiterwijk, Jos (March 1, 1992). "The Countermove Heuristic". ICGA Journal. 15 (1): 8–15. doi:10.3233/ICG-1992-15103. ISSN 1389-6911. OCLC 10597453955 – via Sage Publishing. "The technique is based on the assumption that many moves have a 'natural' response, irrespective of the actual position in which the moves occur."
- ^ Isenberg, Gerd (April 30, 2018). "Countermove Heuristic". Chessprogramming Wiki. Retrieved April 10, 2026. "This heuristic assumes that many moves have a natural response, irrespective of the actual position, ..."
- ^ Hartmann, Dap (September 1, 1988). "The Butterfly Heuristic". ICGA Journal. 11 (2–3): 64–71. doi:10.3233/ICG-1988-112-303. ISSN 1389-6911 – via Sage Publishing.
