StivenLH
@StivenLH
Full-Stack Web Developer & Team Lead

Как решить задачу об упаковке в контейнеры (одномерная)?

Добрый день.
Столкнулся с задачей распределения N элементов различной размерности в M контейнеров различной размерности. Полностью условие формулируется вот так:

В качестве входных данных имеются:
M - число контейнеров, M чисел A1...An, соответствующий вместимости контейнеров(в элементах).
N - число элементов, N чисел B1...Bn, соответственно размеры этих элементов.

Задача состоит в том, чтобы выдать оптимальное распределение элементов по контейнерам в таком варианте:
Вывести N чисел, где j-тое число должно обозначать номер контейнера, в который мы кладем j-тый элемент.

К примеру:
4 контейнера, вместимостью
11 7 4 3
5 элементов, размерностью
6 3 2 4 5

Вывод(один из возможных):
1 2 4 2 1

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

Подскажите, пожалуйста, либо статьи на почитать на эту тему, либо подходящий алгоритм. Заранее спасибо)
  • Вопрос задан
  • 8883 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Можно решить генетическим алгоритмом. Пример, который наверняка можно найти - задача об укладке рюкзака.
Ответ написан
Ваш ответ на вопрос

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

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