Недавно я столкнулся с этой проблемой , разновидностью Ханойских башен .
Постановка задачи:
Рассмотрим следующую вариацию хорошо известной проблемы «Ханойские башни»:
Нам дано башен и m дисков размером сложены на несколько башен. Ваша задача - перенести все диски в башню минимальное количество ходов, но вы должны учитывать следующие правила:
- перемещать только один диск за раз,
- никогда не перемещая больший диск на меньший,
- перемещение только между башнями на расстоянии не более .
(Пределы в исходной задаче: и Количество тестовых случаев Можно предположить, что все проблемы могут быть решены не более чем за ходов.)
Это интересный. Классическая проблема Ханойских башен имеет один источник, место назначения и временную башню, которая используется для перемещения дисков от источника к месту назначения. Проблема, представленная на этом сайте, в основном имеет начальную и конечную конфигурацию.
Как можно подойти к этой проблеме?
Ответы:
Наиболее успешным подходом для работы с оригинальной версией Ханойских башен является использование базы данных шаблонов (PDB). Современное состояние описано в « Недавнем прогрессе в эвристическом поиске: тематическое исследование проблемы четырехполюсных башен Ханоя »
Базы данных шаблонов - это автоматизированное средство для определения допустимой эвристики, которая необходима для нахождения оптимальных решений (как того требует ваша проблема). В конкретном случае с Ханойскими башнями некоторые диски сохраняются, а другие просто игнорируются. Это приводит к меньшему пространству состояний, которое затем может быть полностью пройдено алгоритмом поиска в обратном направлении. Он проходит с помощью поиска в ширину, чтобы получить оптимальные длины в этом абстрактном состоянии, и он проходит от целевого узла (т. Е. Назад), чтобы гарантировать, что вычисленные оптимальные длины относятся к цели. Поскольку абстрактное пространство меньше, эти расстояния являются допустимыми оценками в исходном пространстве состояний.t
При этом я бы настоятельно рекомендовал снова использовать PDB для решения этой конкретной проблемы, поскольку « перемещение только между вышками на расстоянии не болееd » тривиально, поскольку колышки не абстрагированы, а только диски.
Я не вижу, действительно, какой-либо причины для изменения типичного подхода только с учетом этого конкретного ограничения.
Надеюсь это поможет,
источник