@vista1x

Как рассчитать оптимальную погрузку груза в автомобиль?

Что имеем:
  • Грузовой автомобиль с кузовом определенных размеров (ШхДхВ)
  • Груз (коробки), которые нужно погрузить в этот автомобиль. У коробок есть ширина, длина, высота. Все коробки прямоугольные


Что нужно получить
  • Схему оптимального расположения коробок в кузове автомобиля (в 2д, с указанием номера каждой коробки)


Какие условия
  • В простейшем варианте можно рассмотреть вариант, когда груз (коробки) не кладут друг на друга, а все кладется на пол, в таком случае не нужно будет учитывать высоту автомобиля. Такой вариант нужен при расчёте схемы расположения палет, где высота палеты не важна.


Интересует именно алгоритм поиска оптимального расположения груза. Буду рад любым подсказкам, в какую сторону смотреть, куда копать. Спасибо!
  • Вопрос задан
  • 385 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Это называется "задача упаковки" (packing problem). В простейшем случае - прямоугольников в прямоугольник. Нашласть статья на хабре и какая-то научная статья. Дальше вам придется гуглить самостоятельно.

Вообще, это NP-полная задача, поэтому для решения скорее всего придется использоваать метод ветвей и границ или какие-то переборы с отсечениями. Если коробки занимают почти все место в машине и решение есть, но оно редкое, то найти его за разумное время вы сможете, скорее всего, лишь для относительно небольшого количества коробок (штук 40-50).

А разрешение класть на бок вообще усложняет задачу кардинально. Это вам придется еще для каждой коробки перебирать, а каким боком ее класть на пол.

А если их еще друг на друга класть можно, то перебор еще сложнее становится и вы решить задачу сможете уже лишь для 10-20 коробок. Иначе вам понадобится супер компьютер и нелеля вычислений.

Но, если коробки легко помещаются в машину и их туда вообще почти как угодно кидать можно, то решение перебором найдется быстро, особенно если сделать алгоритм рандомизированным.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы