chess:programming:move_ordering:most_valuable_victim_least_valuable_attacker_mvv_lva
Chess - Programming - Move Ordering - Most Valuable Victim/Least Valuable Attacker (MVV/LVA)
MVV/LVA stands for Most Valuable Victim/Least Valuable Attacker.
- It is a move ordering technique that is designed to be applied very cheaply.
- The idea is always to search the best capture first.
- This technique assumes that the best capture will be the one that captures the biggest piece.
- If more than one of your pieces can capture a big piece, the assumption is made that it is best to capture with the smallest piece.
What this means is that PxQ is going to come first (assuming king in check is handled some other way).
- Next comes NxQ or BxQ, then RxQ, then QxQ, then KxQ.
- Following that is PxR, B/NxR, RxR, QxR, KxR, and so on.
This works better than nothing, but it is obvious that there are some glaring problems.
- RxR is searched before PxB, even if the rook is defended.
MVV/LVA will solve the quiescent explosion problem, but it will leave you with bloated quiescent search trees.
- The advantage of MVV/LVA is that this is easy to implement and it results in a high nodes/second.
- The disadvantage is that your search is inefficient - you spend most of your time evaluating losing captures, so you search less deeply.
chess/programming/move_ordering/most_valuable_victim_least_valuable_attacker_mvv_lva.txt · Last modified: 2022/01/07 10:32 by peter