WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Задача об упаковке в контейнеры — NP-трудная комбинаторная задача. Задача заключается в упаковке объектов предопределённой формы в конечное число контейнеров предопределённой формы таким способом, чтобы число использованных контейнеров было наименьшим или количество или объём объектов (которые упаковывают) были наибольшими.

Разновидности и методы решения задач упаковки

Существует множество разновидностей этой задачи (двумерная упаковка, линейная упаковка, упаковка по весу, упаковка по стоимости и т. п.), которые могут применяться в разных областях, как собственно в вопросе оптимального заполнения контейнеров, загрузки грузовиков с ограничением по весу, созданием резервных копий на съёмных носителях и т. д. Так как задача является NP-трудной, то использование точного переборного алгоритма возможно только при небольших размерностях. Обычно для решения задачи используют эвристические приближённые полиномиальные алгоритмы.

Задача упаковки в одномерные одинаковые контейнеры

Постановка задачи

Пусть дано множество контейнеров размера и множество предметов размеров . Надо найти целое число контейнеров и разбиение множества на подмножеств таких, что для всех . Решение называется оптимальным, если минимально. Минимальное далее обозначается OPT.

Упаковка как задача целочисленного программирования

Задача упаковки в контейнеры может быть сформулирована как задача целочисленного программирования следующим образом:

Минимизировать
при ограничениях

где , если контейнер используется и , если предмет помещён в контейнер .[1]

Приближённые полиномиальные алгоритмы

Простейшими полиномиальными алгоритмами упаковки являются алгоритмы Best Fit Decreasing — BFD (Наилучший подходящий по убыванию) и First Fit Decreasing — FFD (Первый подходящий по убыванию). Предметы упорядочивают по невозрастанию размеров и последовательно пакуют либо в контейнер, в котором после упаковки останется наименьший свободный объём — BFD, либо в первый контейнер куда он помещается — FFD. Доказано, что эти алгоритмы используют не более

контейнеров[2].

Однако для задачи упаковки существуют и асимптотически ε -оптимальные полиномиальные алгоритмы.

Задача определения, равно ли OPT двум или трем является NP-трудной. Поэтому для любого ε > 0, трудно упаковать предметы в (3/2 − ε)OPT контейнеров. (Если такой полиномиальный алгоритм существует, то за полиномиальное время можно определить разделятся ли n неотрицательных чисел на два множества с одинаковой суммой элементов. Однако известно, что эта проблема NP-трудна.) Следовательно, если P не совпадает с NP, то для задачи упаковки в контейнеры нет алгоритма приближенной схемы полиномиального времени (PTAS). С другой стороны, для всякого ε >0  можно найти решение с не более, чем (1 + ε)OPT + 1 контейнерами за полиномиальное время. Такие алгоритмы относятся к асимптотической PTAS.[3] Но поскольку в оценке сложности этого класса алгоритмов обе константы произвольно зависят от  ε, подобные алгоритмы в отличие от FFD и BFD могут быть практически бесполезными.

Вероятностный подход

Для некоторого класса вероятностных распределений размеров упаковываемых предметов, включающего функции распределения выпуклые вверх и вниз, существует практический полиномиальный алгоритм упаковки асимптотически оптимальный почти наверное при неограниченном росте числа предметов. Для распределений не входящих в этот класс могут строиться индивидуальные полиномиальные асимптотически оптимальные алгоритмы.[4]

Примечания

  1. Silvano Martello and Paolo Toth. Knapsack problems. — Chichester, UK : John Wiley and Sons, 1990. — P. 221. ISBN 0471924202.
  2. Yue, Minyi (1991), A simple proof of the inequality FFD(L) ≤ (11/9)OPT(L) + 1, for all L, for the FFD bin-packing algorithm, "A simple proof of the inequality FFD (L) ≤ 11/9 OPT (L) + 1, ∀L for the FFD bin-packing algorithm", Acta Mathematicae Applicatae Sinica Т. 7 (4): 321–331, ISSN 0168-9673, DOI 10.1007/BF02009683
  3. Fernandez de la Vega, W. & Lueker, G. S. (1981), Bin packing can be solved within 1 + ε in linear time, "Bin packing can be solved within 1 + ε in linear time", Combinatorica (Springer Berlin / Heidelberg) . — Т. 1 (4): 349–355, ISSN 0209-9683, DOI 10.1007/BF02579456
  4. А. В. Смирнов. О задаче упаковки в контейнеры. УМН, 1991, том 46, выпуск 4(280), страницы 173–174.

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии