Что касается готовых решений, проверьте MAXLOADPRO для загрузки грузовых автомобилей. Может быть, он может быть настроен для загрузки любого прямоугольного тома, но я еще не пробовал. В общем случае проблемы трехмерной упаковки мусора имеют дополнительное усложнение, заключающееся в том, что объекты можно поворачивать в разные позиции, поэтому для любого объекта с заданной длиной, шириной и высотой вам фактически необходимо создать три переменные, представляющие каждую позицию, но вы используете только одну в решение.
В целом, автономные формулировки MIP (или ветвление и связывание) не работают хорошо для двумерной или трехмерной задачи, но программирование с ограничениями имело некоторый успех, приводя к точным решениям двумерной задачи. Проверьте это аннотация . Не глядя на статью, мне нравится подход декомпозиции для задачи, в которой вы пытаетесь свести к минимуму количество корзин одного размера. Я не видел так много результатов для трехмерной задачи, но дайте нам знать, если вы найдете какие-либо выполнимые.
Удачи!