Объяснение
Сокращения поздних ходов, сокращённо LMR, используют порядок ходов. применяет эвристики, то есть практические правила и накопленную статистику поиска, чтобы сначала исследовать кажущиеся перспективными варианты.
Основная последовательность
- Движок сначала исследует лучше упорядоченные ходы и устанавливает предварительный ориентир.
- Спокойный ход, обычно не являющийся взятием или шахом и расположенный намного позднее в списке, сначала проверяется на сокращённой глубине.
- Если проверка возвращает неожиданно сильный результат и пересекает используемую поиском границу оценки, ветвь исследуется повторно на большей глубине.
Сокращение не означает удаление. Более глубокая проверка важна, поскольку действительно сильный ход мог быть плохо упорядочен. Размер сокращения может зависеть от оставшейся глубины, места хода в списке, того, даёт ли он шах или является взятием, входит ли в главный вариант, линию, считающуюся сейчас лучшей, и сохранённой истории похожих ходов.
Современные реализации настраивают множество этих условий. Чрезмерно агрессивное сокращение экономит время, но может пропустить сильный спокойный ход или усугубить ошибки, связанные с .
Употребление и контекст
LMR является селективным поиском: он распределяет усилия неравномерно, а не применяет точно одинаковую глубину к каждой ветви.
Распространённые заблуждения
Сокращение и отсечение
LMR исследует ветвь на меньшей глубине и может проверить её повторно, тогда как отсечение полностью пропускает ветвь при выполнении условия.
Поздний ход и поздняя стадия партии
«Поздний» относится к месту хода в порядке поиска одного узла, а не к ходу, сыгранному близко к концу партии.
Источники
- 1.Late Move Reductions, Chess Programming Wiki
- 2.search.cpp, Stockfish
