Перед вами план небольшого автомобильного гаража, рассчитанного на двенадцать машин. Планировка у него довольно необычная: отсеки соединены таким образом, что свободно разъехаться автомобилям здесь не получится. Именно расположение помещений и создает основную сложность задачи.
Представим, что восемь автомобилей уже стоят в гараже так, как показано на рисунке. Машины с номерами 1, 2, 3 и 4 находятся в нижней части гаража, а автомобили 5, 6, 7 и 8 — в верхней.
Ваша задача — полностью поменять эти две группы местами. То есть автомобили 1, 2, 3 и 4 должны занять те места, где изначально стояли 5, 6, 7 и 8, а автомобили 5, 6, 7 и 8 — переместиться на исходные места машин 1, 2, 3 и 4.
Переставлять автомобили можно, перемещая их по свободным отсекам гаража в соответствии с его планировкой, изображенной на рисунке. При этом есть два важных ограничения.
Во-первых, два автомобиля не могут двигаться одновременно. Каждый переезд выполняется отдельно: сначала перемещается одна машина, затем можно начинать следующий ход.
Во-вторых, в каждом отсеке может находиться только один автомобиль. Поэтому машина не может заехать в помещение, которое в данный момент уже занято другой машиной. Свободные отсеки придется использовать для того, чтобы постепенно перемещать автомобили по гаражу и освобождать необходимые места.
На рисунке хорошо видно, что свободных помещений несколько, но они расположены неравномерно. Поэтому задача сводится не просто к тому, чтобы довести каждую машину до нужной точки, а к тому, чтобы правильно организовать всю последовательность перемещений.
Главный вопрос — какое минимальное количество переездов потребуется, чтобы автомобили 1–4 и 5–8 полностью поменялись местами?
Попробуйте сначала продумать маршрут всех машин, не двигая их случайным образом. Один неудачный переезд может занять свободное помещение и заблокировать следующий этап.
Задача относится к комбинаторным головоломкам: здесь приходится учитывать сразу несколько вариантов расположения автомобилей и выбирать из них наиболее эффективную последовательность. Чем меньше лишних перемещений вы сделаете, тем ближе окажетесь к оптимальному решению.
Сможете найти минимальное число переездов?

Делитесь в комментариях, сколько переездов получилось у вас?
