Jump to content

Упаковка в контейнеры с высокой кратностью


Упаковка в корзину с высокой кратностью — это частный случай задачи упаковки в корзину , в которой количество предметов разных размеров невелико, а количество предметов каждого размера велико. Хотя общая проблема упаковки контейнеров является NP-сложной , задачу с высокой кратностью можно решить за полиномиальное время, предполагая, что количество различных размеров является фиксированной константой.

Определение проблемы

[ редактировать ]

Входными данными для задачи являются положительные целые числа:

  • d – количество различных размеров (также называемое размерностью задачи);
  • Б – емкость бункера.
  • s 1 , ..., s d - размеры. Вектор размеров обозначается s .
  • n 1 , ..., n d - кратности; n i — количество элементов размера s i . Вектор кратностей обозначается n .
    • n обозначает общее количество элементов, то есть n = n 1 +...+ n d .
    • V обозначает наибольшее целое число, встречающееся в описании задачи, то есть V = max( s 1 , ..., s d , n 1 , ..., n d , B)

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

Пример : предположим, 2 , s1 s2 =30, 40 = , n1 n2 = = d =5, B =120. Итак, имеется n =10 предметов с размерами: 30,30,30,30,30,40,40,40,40,40. Тогда возможная упаковка: {30,30,30,30}, {40,40,40}, {30,40,40}, при которой используются 3 контейнера.

Конфигурации

[ редактировать ]

Конфигурация это набор элементов, которые могут поместиться в одну корзину. Его можно представить вектором из d целых чисел, обозначающих кратности разных размеров в конфигурации. Формально, для каждой конфигурации c мы определяем целочисленный вектор a c = a c,1 , ..., a c,d такой, что a c n и a c · s ⩽ B.

В приведенном выше примере одна из конфигураций — c = {30,40,40}, поскольку 1*30+2*40 ≤ 120. Соответствующий ей вектор — = c (1,2). Другие векторы конфигурации: (4,0), (3,0), (2,0), (2,1), (1,0), (1,1), (1,2), (0,1 ), (0,2), (0,3). Если бы у нас было только три элемента размера 3, мы бы не смогли использовать конфигурацию (4,0).

Можно представить задачу с помощью линейной программы конфигурации : для каждой конфигурации c существует переменная x c , обозначающая количество ячеек, в которых c используется . Общее количество используемых интервалов представляет собой просто сумму x c по всем конфигурациям, обозначаемую 1 · x . Общее количество использованных предметов каждого размера представляет собой сумму векторов a c · x c по всем конфигурациям c. Тогда задача состоит в том, чтобы минимизировать 1 · x так, чтобы сумма a c · x c по всем конфигурациям c была не меньше n , чтобы все элементы были упакованы.

Алгоритмы

[ редактировать ]

Основные алгоритмы

[ редактировать ]

Предположим сначала, что все элементы большие, то есть каждый s i равен не менее e·B для некоторой дроби e >0. Тогда общее количество элементов в каждом контейнере не превышает 1/ e , поэтому общее количество конфигураций не превышает d. 1/ и . Каждая конфигурация появляется не более n раз. Поэтому существует максимум комбинации для проверки. Для каждой комбинации нам нужно проверить d ограничений (по одному для каждого размера), поэтому время выполнения равно , который является полиномиальным по n, когда d, e постоянны. [1]

Основная проблема этого алгоритма (помимо того факта, что он работает только тогда, когда элементы большие) заключается в том, что время его выполнения полиномиально от n , но длина входных данных (в двоичном представлении) линейна от log( V ), что порядка log( n ).

Полином времени выполнения входного размера

[ редактировать ]

Филип и Агнес [2] представил алгоритм, который находит решение с не более чем OPT+ d -2 интервалами за время O(poly(log V )). В частности, для d =2 разных размеров их алгоритм находит оптимальное решение за время O(log V ).

Гоеманс и Ротвосс [3] [4] представил алгоритм для любого фиксированного d , который находит оптимальное решение, когда все числа заданы в двоичном кодировании. Их алгоритм решает следующую задачу: по двум d -мерным многогранникам P и Q найти минимальное количество целых точек в P, лежит в Q. сумма которых Их алгоритм работает во времени . Их алгоритм можно адаптировать к другим задачам, таким как планирование идентичных машин и планирование несвязанных машин с различными ограничениями.

Округление общего экземпляра до экземпляра с высокой кратностью

[ редактировать ]

Несколько алгоритмов аппроксимации общей задачи упаковки контейнеров используют следующую схему:

  • Разделите элементы на «маленькие» (меньше eB для некоторой доли e в (0,1)) и «большие» (по крайней мере eB ).
  • Сначала разберитесь с крупными предметами:
    • Округлите размеры предметов так, чтобы количество разных размеров было не более чем некоторой константой d.
    • Решите полученную задачу большой кратности.
  • Распределяйте мелкие предметы жадно, например, с помощью упаковки в следующую корзину . Если новые контейнеры не созданы, то все готово. Если создаются новые контейнеры, это означает, что все контейнеры (кроме, возможно, последнего) заполнены как минимум до (1- e ) B . Следовательно, количество интервалов не превышает OPT/(1- e )+1 ≤ (1+2e ) OPT+1.

Алгоритмы различаются по способу обхода экземпляра.

Линейное округление

[ редактировать ]

Люкер и де-ла-Вега и [5] изобрел идею адаптивного округления входных данных . Упорядочите предметы по размеру и сгруппируйте их в 1/ e. 2 группы мощности ne 2 . В каждой группе округлите размеры в большую сторону до максимального размера в группе. Теперь есть только d =1/ e 2 разные размеры. Решение округленного экземпляра возможно и для исходного экземпляра, но количество интервалов может быть больше, чем необходимо. Чтобы количественно оценить потери, рассмотрим экземпляр, округленный до максимального размера в предыдущей группе (первая группа округляется до 0). Округленный экземпляр D почти равен округленному экземпляру U , за исключением того, что в D есть некоторые новые 2 нули, а в U есть некоторые пе 2 вместо этого большие предметы; их размер не превышает B. но Следовательно, для U требуется не более ne 2 больше бункеров, чем D . Поскольку D требует меньше интервалов, чем оптимально, мы получаем, что Bins( U ) ≤ OPT + ne 2 , то есть у нас есть аддитивная ошибка, которую можно сделать сколь угодно маленькой, выбрав e .

Если все элементы большие (размером не менее eB ), то каждая ячейка в OPT содержит не более 1/ e предметов (размером не менее eB ), поэтому OPT должен быть не менее en . Следовательно, Bins( U ) ≤ (1+ e )OPT. Обработав мелкие предметы, мы получаем максимум .

Геометрическое округление

[ редактировать ]

Кармаркар и Карп [6] представляют более эффективный метод округления, который они называют геометрическим округлением (в отличие от линейного округления Де-ла-Веги и Люкера). Основываясь на этих нововведениях, они представляют алгоритм с полиномом времени выполнения в и . Их алгоритм находит решение размером не более .

Улучшения

[ редактировать ]

Позднее этот метод был усовершенствован несколькими авторами:

  • Ротвосс [7] представил алгоритм, который генерирует решение размером не более .
  • Хоберг и Ротвосс [8] улучшен этот алгоритм, чтобы генерировать решение с максимальным размером . Алгоритм рандомизирован, а время его работы полиномиально от общего количества элементов.

См. также

[ редактировать ]
  • Проблема сокращения запасов - аналогична упаковке большого количества контейнеров, но цель состоит в том, чтобы минимизировать общий объем неиспользуемого пространства в каждом контейнере, а не количество контейнеров. Более того, в некоторых вариантах количество предметов каждого размера не фиксировано, а может перемещаться между некоторыми заданными нижними и верхними границами.
  1. ^ Клэр Матье. «Алгоритмы аппроксимации. Часть I, неделя 3: упаковка контейнеров» . Курсера .
  2. ^ Филиппи, Карло; Агнетис, Алессандро (1 сентября 2005 г.). «Асимптотически точный алгоритм решения задачи упаковки контейнеров с большой кратностью» . Математическое программирование . 104 (1): 21–37. дои : 10.1007/s10107-004-0567-y . ISSN   1436-4646 . S2CID   15140484 .
  3. ^ Гоеманс, Мишель X.; Ротвос, Томас (18 декабря 2013 г.), «Полиномиальность упаковки контейнеров с постоянным количеством типов предметов» , Труды ежегодного симпозиума ACM-SIAM по дискретным алгоритмам (SODA) 2014 г. , Труды Общества промышленной и прикладной математики, стр. 830–839, doi : 10.1137/1.9781611973402.61 , hdl : 1721.1/92865 , ISBN  978-1-61197-338-9 , S2CID   14006427 , получено 17 августа 2021 г.
  4. ^ Гоеманс, Мишель X.; Ротвосс, Томас (07.11.2020). «Полиномиальность упаковки контейнеров с постоянным количеством типов предметов» . Журнал АКМ . 67 (6): 38:1–38:21. дои : 10.1145/3421750 . hdl : 1721.1/92865 . ISSN   0004-5411 . S2CID   14006427 .
  5. ^ Фернандес де ла Вега, В.; Люкер, Г.С. (1981). «Упаковку контейнеров можно решить за 1 + ε за линейное время». Комбинаторика . 1 (4): 349–355. дои : 10.1007/BF02579456 . ISSN   1439-6912 . S2CID   10519631 .
  6. ^ Кармаркар, Нарендра; Карп, Ричард М. (ноябрь 1982 г.). «Эффективная аппроксимационная схема одномерной задачи упаковки контейнеров» . 23-й ежегодный симпозиум по основам информатики (SFCS 1982) : 312–320. дои : 10.1109/SFCS.1982.61 . S2CID   18583908 .
  7. ^ Ротвосс, Т. (1 октября 2013 г.). «Аппроксимация упаковки ячеек в ячейки O(log OPT · Log Log OPT)» . 54-й ежегодный симпозиум IEEE по основам информатики , 2013 г. стр. 20–29. arXiv : 1301.4010 . дои : 10.1109/FOCS.2013.11 . ISBN  978-0-7695-5135-7 . S2CID   15905063 .
  8. ^ Хоберг, Ребекка; Ротвосс, Томас (01 января 2017 г.), «Логарифмический аддитивный разрыв целостности для упаковки контейнеров», Труды ежегодного симпозиума ACM-SIAM 2017 г. по дискретным алгоритмам , Труды Общества промышленной и прикладной математики, стр. 2616–2625, arXiv : 1503.08796 , doi : 10.1137/1.9781611974782.172 , ISBN  978-1-61197-478-2 , S2CID   1647463
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ac1355771bf495939ae66fd7150d7192__1704227700
URL1:https://arc.ask3.ru/arc/aa/ac/92/ac1355771bf495939ae66fd7150d7192.html
Заголовок, (Title) документа по адресу, URL1:
High-multiplicity bin packing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)