Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Задача о рюкзаке - одна из наиболее изученных проблем комбинаторной оптимизации , имеющая множество реальных приложений. По этой причине было рассмотрено множество частных случаев и обобщений. [1] [2]

Общим для всех версий является набор из n элементов, каждый из которых имеет соответствующую прибыль p j , вес w j . Переменная двоичного решения x j используется для выбора элемента. Цель состоит в том, чтобы выбрать некоторые из пунктов, с максимальной общей прибылью, в то время как повиновение , что максимальный общий вес выбранных предметов не должен превышать W . Как правило, эти коэффициенты масштабируются, чтобы стать целыми числами, и почти всегда предполагается, что они положительны.

Задача о рюкзаке в самой простой форме:

Прямые обобщения [ править ]

Один из распространенных вариантов - каждый элемент можно выбрать несколько раз. Задача ограниченного рюкзака определяет для каждого элемента j верхнюю границу u j (которая может быть положительным целым числом или бесконечностью) количества раз, когда элемент j может быть выбран:

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

Неограниченный вариант был показан как NP-полный в 1975 году Люкером. [3] И ограниченный, и неограниченный варианты допускают FPTAS (по сути, такой же, как в задаче о рюкзаке 0-1).

Если предметы подразделяются на обозначенные k классов , и из каждого класса должен быть взят ровно один предмет, мы получаем задачу о рюкзаке с множественным выбором :

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

Если у нас есть n предметов и m рюкзаков с вместимостью , мы получаем задачу о множественных рюкзаках :

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

Квадратичная задача о ранце :

Задача о ранце Союза :

SUKP определяется Kellerer et al [2] (на стр. 423) следующим образом:

Учитывая набор элементов и набор так называемых элементов , каждый элемент соответствует подмножеству набора элементов . Элементы имеют неотрицательные прибыли , и элементы имеют неотрицательные веса , . Общий вес набора элементов определяется общим весом элементов объединения соответствующих наборов элементов. Задача - найти подмножество предметов с общим весом, не превышающим вместимость ранца и максимальную прибыль.

Множественные ограничения [ править ]

Если существует более одного ограничения (например, ограничение объема и ограничение веса, где объем и вес каждого предмета не связаны), мы получаем задачу о рюкзаке с несколькими ограничениями , многомерную задачу о рюкзаке или m - мерную задачу. проблема с рюкзаком . (Обратите внимание, что «размер» здесь не относится к форме каких-либо предметов.) У него есть варианты 0-1, ограниченные и неограниченные; неограниченный показан ниже.

Вариант 0-1 (для любого фиксированного ) оказался NP-полным примерно в 1980 г. и, что более важно, не имеет FPTAS, если P = NP. [4] [5]

Ограниченный и неограниченный варианты (при любом фиксированном ) также имеют одинаковую твердость. [6]

Для любых фиксированных задач эти задачи допускают алгоритм псевдополиномиального времени (аналогичный алгоритму для базового рюкзака) и PTAS . [2]

Задачи, похожие на рюкзаки [ править ]

Если вся прибыль равна 1, мы постараемся максимизировать количество предметов, которые не превышали бы вместимость ранца:

Если у нас есть несколько контейнеров (одинакового размера), и мы хотим упаковать все n элементов в как можно меньшее количество контейнеров, мы получаем проблему с упаковкой контейнеров , которая моделируется с использованием индикаторных переменных контейнера i :

Проблема раскроя материала идентична проблеме упаковки бункера , но, поскольку на практике обычно бывает гораздо меньше типов предметов, часто используется другая формулировка. Предмет j требуется B j раз, каждый «образец» предметов, которые помещаются в один рюкзак, имеет переменную x i (имеется m образцов), а образец i использует предмет j b ij раз:

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

В варианте рюкзака максимальной плотности есть начальный вес , и мы максимизируем плотность выбранных предметов, которые не нарушают ограничение вместимости: [7]

Хотя они встречаются реже, чем перечисленные выше, существует несколько других проблем, подобных ранцу, включая:

  • Вложенная задача о рюкзаке
  • Проблема сворачивающегося рюкзака
  • Нелинейная задача о ранце
  • Обратно-параметрическая задача о рюкзаке

Последние три из них обсуждаются в справочной работе Kellerer et al., Knapsack Problems . [2]

Ссылки [ править ]

  1. Мартелло, Сильвано и Тот, Паоло (1990). Задачи о ранце: алгоритмы и компьютерные реализации . Джон Вили и сыновья . ISBN 978-0471924203.CS1 maint: multiple names: authors list (link)
  2. ^ a b c d Келлерер, Ганс и Пферши, Ульрих и Пизингер, Дэвид (2004). Проблемы с рюкзаком . Springer Verlag . ISBN 978-3-540-40286-2.CS1 maint: multiple names: authors list (link)
  3. ^ Lueker, GS (1975). «Две NP-полные задачи неотрицательного целочисленного программирования». Отчет № 178, Лаборатория компьютерных наук, Принстон. Cite journal requires |journal= (help)
  4. ^ Gens, GV и Levner, Е. В. (1979). «Сложность и аппроксимация алгоритмов комбинаторных задач: обзор». Центральный экономико-математический институт АН СССР, Москва.CS1 maint: uses authors parameter (link)
  5. ^ «О существовании схем быстрого приближения». Нелинейное программирование . 4 : 415–437. 1980 г.
  6. ^ Журнал, MJ; Черн, М.-С. (1984). «Заметка о схемах приближения для многомерных задач о ранце». Математика исследования операций . 9 (2): 244–247. DOI : 10.1287 / moor.9.2.244 .
  7. ^ Коэн, Реувен; Кацир, Лиран (2008). «Обобщенная проблема максимального покрытия». Письма об обработке информации . 108 : 15–22. CiteSeerX 10.1.1.156.2073 . DOI : 10.1016 / j.ipl.2008.03.017 . 
  • «Алгоритмы решения задач о ранце» , Д. Писингер. Кандидат наук. диссертация, DIKU, Университет Копенгагена, Отчет 95/1 (1995).