Interested Article - Список задач о рюкзаке

Задача о рюкзаке (или ранце) — это одна из задач комбинаторной оптимизации . Название это получила от укладки как можно большего числа нужных вещей в рюкзак при условии, что общий объём (или вес) всех предметов, способных поместиться в рюкзак, ограничен. Поэтому у задачи существует несколько разновидностей.

Общим для всех видов является наличие набора из предметов, с двумя параметрами — вес и ценность .Есть рюкзак, определенной вместимости . Задача — собрать рюкзак с максимальной ценностью предметов внутри, соблюдая при этом весовое ограничение рюкзака. Обычно все параметры — целые, не отрицательные числа.

Рюкзак 0-1 ( англ. 0-1 Knapsack Problem )

Это самая распространенная разновидность рюкзака. Пусть принимает два значения: , если груз упакован, и в противном случае, где . Задача:

максимизировать

при наличии ограничения на вместимость рюкзака .

Ограниченный рюкзак ( англ. Bounded Knapsack Problem )

Каждый предмет может быть выбран ограниченное число раз. Задача:

максимизировать

так, чтобы выполнялось условие на вместимость

и для всех .

Число называют границей .

Неограниченный рюкзак (целочисленный рюкзак) ( англ. Unbounded Knapsack Problem (integer knapsack) )

Каждый предмет может быть выбран неограниченное число раз. Задача:

максимизировать

так, чтобы выполнялось условие на вместимость

и целое для всех .

Рюкзак с мультивыбором ( англ. Multiple-choice Knapsack Problem )

Все предметы разделяют на классов . Обязательным является условие выбора только одного предмета из каждого класса. принимает значение только 0 и 1. Задача:

максимизировать

так, чтобы выполнялось условие на вместимость,

для всех

Мультипликативный рюкзак ( англ. Multiple Knapsack Problem )

Пусть у нас есть предметов и рюкзаков ( ). У каждого предмета, как и раньше, есть вес и ценность , у каждого рюкзака соответственно своя вместимость при . . Задача:

максимизировать

так, чтобы выполнялось условие для всех ,

для всех .

Многомерный рюкзак ( англ. Multi-dimensional knapsack problem )

Если есть более одного ограничения на рюкзак, например объем и вес, задачу называют m-мерной задачей о ранце. Например, для не ограниченного варианта:

максимизировать

так, чтобы ,

и для всех .

Квадратичная задача о рюкзаке ( англ. Quadratic knapsack problem )

Квадратичная задача о ранце представляет собой модификацию классических задач о ранце с ценностью, являющейся квадратичной формой . Пусть - вектор, задающий, сколько экземпляров каждого предмета окажется в рюкзаке. Задача:

максимизировать

при условиях , , или

минимизировать

при условиях , .

При этом — неотрицательно определенная матрица размера , задаёт ограничения на количество предметов .

Примечания

  1. , p. 217.
  2. , p. 2.
  3. , p. 127.
  4. , p. 147.
  5. , p. 157.
  6. G. Gallo, P. L. Hammer, B. Simeone. (англ.) // Mathematical Programming Studies. — 2009. — 24 февраль ( vol. 12 ). — P. 132-149 . — ISSN . 24 октября 2016 года.

Литература

на русском языке
  1. В. Н. Бурков, И. А. Горгидзе, С. Е. Ловецкий. Прикладные задачи теории графов. — М. , 1974. — 232 с.
на английском языке
  1. Silvano Martelo, Paolo Toth. Knapsack problems. — Wiley, 1990. — 306 с.
  2. David Pisinger. . — 1995. от 22 декабря 2012 на Wayback Machine

Ссылки

Источник —

Same as Список задач о рюкзаке