Jump to content

Уменьшающаяся упаковка в контейнер по принципу «первая установка»

«Первое подходящее уменьшение» (FFD) — это алгоритм упаковки контейнеров . Его входные данные представляют собой список элементов разного размера. Результатом его работы является упаковка — распределение предметов по контейнерам фиксированной вместимости так, чтобы сумма размеров предметов в каждом контейнере не превышала вместимости. В идеале нам хотелось бы использовать как можно меньше ячеек, но минимизация количества ячеек — NP-сложная задача, поэтому мы используем приблизительно оптимальную эвристику .

Описание

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

Алгоритм FFD работает следующим образом.

  • Расположите предметы от большего к меньшему.
  • Откройте новую пустую корзину №1.
  • Для каждого предмета, от самого большого до самого маленького, найдите первую корзину, в которую этот предмет помещается, если таковой имеется.
    • Если такая корзина найдена, положите в нее новый предмет.
    • В противном случае откройте новую пустую корзину и поместите в нее новый предмет.

Вкратце: FFD упорядочивает товары по убыванию размера, а затем вызывает упаковку в корзину по первому требованию .

Эквивалентное описание алгоритма FFD выглядит следующим образом.

  • Расположите предметы от большего к меньшему.
  • Пока остались предметы:
    • Откройте новую пустую корзину.
    • Для каждого предмета от большего к меньшему:
      • Если он может поместиться в текущий контейнер, вставьте его.

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

Анализ производительности

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

Анализ эффективности FFD проводился в несколько этапов. Ниже, обозначает количество ячеек, используемых FFD для входного набора S и емкости ячеек C.

  • В 1973 году Д.С. Джонсон в своей докторской диссертации доказал [ 1 ] что для любого экземпляра S и C. емкости
  • В 1985 году Б.С. Бэкер [ 2 ] дал несколько более простое доказательство и показал, что аддитивная константа не превышает 3.
  • Юэ Миньи [ 3 ] доказал, что в 1991 году, а в 1997 году усовершенствовал этот анализ, чтобы вместе с Ли Жунхэном. [ 4 ]
  • В 2007 году Дьёрдь Доса [ 5 ] доказал тесную связь и представил пример, для которого .

Худший пример

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

Пример нижней границы, приведенный Dósa, следующий: Рассмотрим две конфигурации бункеров:

  •  ;
  • .

Если имеется 4 копии и 2 экземпляра в оптимальном решении FFD вычислит следующие интервалы:

  • 4 бункера с конфигурацией ,
  • 1 бункер с конфигурацией ,
  • 1 бункер с конфигурацией ,
  • 1 бункер с конфигурацией ,
  • 1 последний контейнер с конфигурацией ,

То есть всего 8 ячеек, тогда как в оптимуме всего 6 ячеек. Следовательно, верхняя граница точная, поскольку .

Этот пример можно распространить на все размеры : [ 5 ] в оптимальной конфигурации имеется 9k + 6 бинов: 6k + 4 типа B1 и 3k + 2 типа B2 . Но для FFD требуется как минимум 11 тыс. +8 ячеек, что .

Производительность с делимыми размерами предметов

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

Важным частным случаем упаковки в корзину является случай, когда размеры предметов образуют делимую последовательность (также называемую факторизованной ). Особый случай делимых размеров элементов возникает при распределении памяти в компьютерных системах, где все размеры элементов равны степеням 2. В этом случае FFD всегда находит оптимальную упаковку. [ 6 ] : Thm.2

Свойства монотонности

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

Вопреки интуиции, является не монотонной функцией C . [ 7 ] : Рис.4 Сходным образом, не является монотонной функцией размеров предметов в S : возможно, что предмет уменьшается в размерах, но количество ячеек увеличивается.

Однако алгоритм FFD обладает свойством «асимптотической монотонности», определяемым следующим образом. [ 7 ] : Лем.2.1

  • Для каждого экземпляра S и целого числа m пусть MinCap( S,m ) будет наименьшей емкостью C такой, что
  • Для каждого целого числа m пусть MinRatio( m ) будет нижней границей чисел r ≥1 таких, что для всех входных наборов S , . Это величина, на которую нам нужно «раздуть» ячейки, чтобы FFD достиг оптимального количества ячеек.
  • Тогда для каждого входа S и для каждого r ≥ MinRatio( m ) . Это показывает, в частности, что нижняя грань в приведенном выше определении может быть заменена минимумом.

Например, предположим, что входные данные:

44, 24, 24, 22, 21, 17, 8, 8, 6, 6.

Вместимостью 60 человек FFD вмещает 3 контейнера:

  • 44, 8, 8;
  • 24, 24, 6, 6;
  • 22, 21, 17.

Но при емкости 61 FFD упаковывает 4 контейнера:

  • 44, 17;
  • 24, 24, 8;
  • 22, 21, 8, 6;
  • 6.

Это связано с тем, что при емкости 61 число 17 помещается в первый контейнер и таким образом блокирует путь к следующим 8, 8.

В качестве другого примера: [ 8 ] : Пр.5.1 предположим, что входы: 51, 28, 28, 28, 27, 25, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10. При емкости 75 FFD упаковывает 4 бункера:

  • 51, 12, 12
  • 28, 28, 10
  • 28, 27, 10, 10
  • 25, 10, 10, 10, 10, 10

Но при емкости 76 ему нужно 5 бункеров:

  • 51, 25
  • 28, 28, 12
  • 28, 27, 12
  • 10, 10, 10, 10, 10, 10, 10
  • 10

Рассмотрим приведенный выше пример с емкостью 60. Если 17 становится 16, то результирующая упаковка будет следующей:

  • 44, 16;
  • 24, 24, 8;
  • 22, 21, 8, 6;
  • 6.

Модифицированное уменьшение по принципу первого соответствия

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

Модифицированное уменьшение первого соответствия (MFFD) [ 9 ] улучшает FFD для предметов размером более половины корзины за счет разделения предметов по размеру на четыре размера: большой, средний, маленький и крошечный, что соответствует предметам размером > 1/2 корзины, > 1/3 корзины, > 1/6 корзины и более мелкие предметы соответственно. Затем он проходит пять этапов:

  1. Выделите корзину для каждого крупного предмета в порядке от большего к меньшему.
  2. Пройдите вперед через контейнеры. На каждом: Если наименьший оставшийся предмет среднего размера не помещается, пропустите эту корзину. В противном случае поместите самый большой из оставшихся предметов среднего размера, который поместится.
  3. Пройдите назад через те контейнеры, в которых нет предметов среднего размера. На каждом: Если два оставшихся маленьких предмета не помещаются, пропустите эту корзину. В противном случае поместите самый маленький оставшийся маленький предмет и самый большой оставшийся маленький предмет, который поместится.
  4. Пройдите вперед через все бункеры. Если наименьший оставшийся предмет любого размера не помещается, пропустите эту корзину. В противном случае поместите самый большой предмет, который поместится , и оставьте его в этом контейнере.
  5. Используйте FFD, чтобы упаковать оставшиеся предметы в новые контейнеры.

Этот алгоритм был впервые изучен Джонсоном и Гари. [ 9 ] в 1985 году, где они доказали, что . Эта граница была улучшена в 1995 году Юэ и Чжаном. [ 10 ] кто это доказал .

Другие варианты

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

Метод наилучшего соответствия (BFD) очень похож на FFD, за исключением того, что после сортировки списка он обрабатывается методом наилучшей упаковки в корзину . Его коэффициент асимптотической аппроксимации такой же, как у FFD – 11/9.

Реализации

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

См. также

[ редактировать ]
  1. ^ Джонсон, Дэвид С. (1973). «Почти оптимальные алгоритмы упаковки контейнеров» (PDF) . Массачусетский технологический институт .
  2. ^ Бейкер, Бренда С. (1985). «Новое доказательство алгоритма убывающей упаковки контейнеров первого подходящего». Дж. Алгоритмы . 6 (1): 49–70. дои : 10.1016/0196-6774(85)90018-5 .
  3. ^ Юэ, Миньи (октябрь 1991 г.). «Простое доказательство неравенства FFD(L) ≤ 11/9 OPT(L) + 1, ∀L для алгоритма упаковки контейнеров FFD». Acta Mathematicae Applicatae Sinica 7 (4): 321–331. дои : 10.1007/BF02009683 . S2CID   189915733 .
  4. ^ Ли, Жунхэн; Юэ, Миньи (август 1997 г.). «Доказательство FFD(L) <-OPT(L) + 7/9». Китайский научный бюллетень . 42 (15): 1262–1265. Бибкод : 1997ЧСБу..42.1262Л . дои : 10.1007/BF02882754 . S2CID   93280100 .
  5. ^ Jump up to: а б Доса, Дьёрдь (2007). «Точная граница алгоритма упаковки контейнеров с уменьшением первого соответствия составляет FFD(I) ≤ 11/9OPT(I) + 6/9». В Чэнь Бо; Майк Патерсон; Чжан Гоочуань (ред.). Комбинаторика, алгоритмы, вероятностные и экспериментальные методологии . Первый международный симпозиум ESCAPE 2007, Ханчжоу, Китай, 7–9 апреля 2007 г. Конспекты лекций по информатике. Том. 4614. стр. 1–11. дои : 10.1007/978-3-540-74450-4_1 . ISBN  978-3-540-74449-8 .
  6. ^ Коффман, Э.Г.; Гэри, MR; Джонсон, Д.С. (1 декабря 1987 г.). «Корзинная упаковка с предметами, делящимися по размеру» . Журнал сложности . 3 (4): 406–428. дои : 10.1016/0885-064X(87)90009-4 . ISSN   0885-064X .
  7. ^ Jump up to: а б Коффман, Э.Г. младший; Гэри, MR; Джонсон, DS (1 февраля 1978 г.). «Применение упаковки контейнеров для многопроцессорного планирования» . SIAM Journal по вычислительной технике . 7 (1): 1–17. дои : 10.1137/0207001 . ISSN   0097-5397 .
  8. ^ Хуан, Синь; Лу, Пиньян (18 июля 2021 г.). «Алгоритмическая основа для приближенного распределения долей по дому» . Материалы 22-й конференции ACM по экономике и вычислениям . ЭК '21. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 630–631. arXiv : 1907.04505 . дои : 10.1145/3465456.3467555 . ISBN  978-1-4503-8554-1 . S2CID   195874333 .
  9. ^ Jump up to: а б Джонсон, Дэвид С; Гэри, Майкл Р. (октябрь 1985 г.). «Теорема 7160 для упаковки контейнеров» . Журнал сложности . 1 (1): 65–106. дои : 10.1016/0885-064X(85)90022-6 .
  10. ^ Юэ, Миньи; Чжан, Лей (июль 1995 г.). «Простое доказательство неравенства MFFD(L) ≤ 71/60 OPT(L) + 1,L для алгоритма упаковки контейнеров MFFD». Acta Mathematicae Applicatae Sinica . 11 (3): 318–330. дои : 10.1007/BF02011198 . S2CID   118263129 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5b5a7c0ce3d3aaf8b821e6a872fbb8a2__1708794360
URL1:https://arc.ask3.ru/arc/aa/5b/a2/5b5a7c0ce3d3aaf8b821e6a872fbb8a2.html
Заголовок, (Title) документа по адресу, URL1:
First-fit-decreasing bin packing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)