Главная / Солверы и решения
Солверы и решения

Слайдинг-пазл солвер — сравнение алгоритмов

A* vs IDA*, Manhattan vs walking distance, vs аддитивные базы шаблонов. Шесть известных алгоритмов для решения слайдинг-пазлов: для чего каждый хорош и где спотыкается.

Обновлено 2026-05-20 8 мин чтения

Если вы реализуете солвер слайдинг-пазла и не знаете, какой алгоритм выбрать, эта статья сравнивает шесть известных по скорости, памяти, сложности кода и удобному размеру доски. Ответы разные для 3×3, 4×4 и 5×5.

1. Breadth-first search (BFS)

Самый глупый корректный алгоритм. Исследовать состояния по уровням, пока не найдёте цель.

2. A* с манхэттенским расстоянием

Первый настоящий алгоритм. Та же структура, что у BFS, но состояния достаются из приоритетной очереди, упорядоченной по f = g + h, где h — это манхэттенская эвристика.

3. A* с Manhattan + linear conflict

Добавьте 2 хода в эвристику за каждую пару плиток в одной строке, обе принадлежащих этой строке, но в неправильном порядке (аналогично для столбцов). Им придётся разойтись, что Manhattan не видит.

4. IDA* с Manhattan + linear conflict

Iterative-deepening A*. Делает DFS с ограничением по f-стоимости, поднимая порог каждую итерацию. Меняет память на время через повторное исследование.

5. IDA* с walking distance

Walking distance — более плотная эвристика. Предварительно посчитайте, для каждой конфигурации плиток проекции только на строки, минимальное число операций «своп-строки», чтобы поставить каждую плитку в правильную строку. То же для столбцов. Сложите.

Она ловит то, чего Manhattan не видит: плитки в одной строке, «дерущиеся» за один слот.

6. IDA* с аддитивными непересекающимися базами шаблонов

Сильнейшая известная эвристика для слайдинг-пазлов. Разбейте плитки на непересекающиеся группы (распространённое разбиение 15-puzzle — 7+8 или 5+5+5). Для каждой группы предварительно посчитайте стоимость перестановки плиток группы в их целевые позиции по всем возможным конфигурациям этой группы. Во время поиска сложите вклад каждой группы.

Сводные рекомендации

Если вы пишете солвер сегодня:

А машинное обучение?

Разумный вопрос в 2026 году. Нейросетевые эвристики изучают как минимум с 2014 года, и они могут давать быстрые эвристики для слайдинг-пазлов. Подвох в том, что они обычно не допустимы — могут переоценивать, что означает, что получившийся алгоритм больше не гарантирует оптимальность. Для разработчиков приложений, которым нужны гарантированно оптимальные решения для калибровки сложности, классические базы шаблонов остаются правильным инструментом.

Для исследовательского интереса базы шаблонов, обученные нейросетью, дают небольшое ускорение на самых сложных 15-puzzle инстансах. Полезно для академических статей, маргинально для отгружаемого ПО.

Что попадает в реальное приложение

Отгружаемое мобильное приложение, которому нужен солвер для подсказок, почти всегда приходит к:

Это правильный прагматичный стек для спокойного телефонного приложения. Кнопка подсказки в Slide Puzzle работает именно так.