Алгоритм переупаковки ячеек с ограниченным временным пространством

#algorithm #knapsack-problem #packing #bin-packing

Вопрос:

Основные алгоритмы и реализации упаковки контейнеров можно найти по всему Интернету. Тем не менее, я ищу алгоритм, который будет переупаковывать корзину, используя ограниченное количество временного пространства. Идея заключается в том, что предметы были случайно добавлены в корзину и теперь их необходимо реорганизовать, чтобы свести к минимуму потраченное впустую пространство. Может ли кто-нибудь указать мне на такой алгоритм / реализацию или как начать работу?

ПРАВКА (более подробная информация):

Условные обозначения для изображений:

  • Светло-серый = пустое пространство
  • Все остальные цвета = прямоугольники для упаковки в корзину

Как упоминал kcsquared, это действительно проблема упаковки прямоугольников. Для того, что я пытаюсь сделать, вращение предметов не допускается.

Вот чего я пытаюсь достичь:

Допустим, мы начнем с этого контейнера. Как вы можете видеть, есть много потраченного впустую пространства, которое мешает легко добавлять новые элементы.

введите описание изображения здесь

Конечный результат будет выглядеть примерно так (без сомнения, это не оптимально, я просто сделал это вручную…):

введите описание изображения здесь

Однако при перемещении предметов идея заключается в том, что они не могут просто выйти из корзины и отправиться «неизвестно куда». Когда предмет вынимается, он должен идти куда-то еще. Для этой цели у нас есть временное пространство, в которое можно поместить предметы, чтобы освободить место в основной корзине. Это временное пространство меньше, но достаточно велико, чтобы вместить самый большой предмет (и более одного предмета одновременно). Это тоже прямоугольник.

введите описание изображения здесь

С удовольствием добавлю более подробную информацию или отвечу на любые дополнительные вопросы. Спасибо, что нашли время взглянуть на это!

Комментарии:

1. Можете ли вы определить эту проблему более строго?

2. Согласен с Гарольдом — в текущем заявлении критически не хватает деталей, и ему нужны как примеры, так и дополнительная информация. Также, по-видимому, речь идет о прямоугольной упаковке, поскольку проблема упаковки контейнеров имеет одномерные емкости в контейнерах, поэтому «переупаковка» одного контейнера не имеет смысла. Также неясно, чем проблема «переупаковки» отличается от обычной проблемы упаковки.

3. Добавлено больше деталей. Пожалуйста, дайте мне знать, если это поможет или если я смогу ответить на какие-либо дополнительные вопросы.