Это не официальный сайт wikipedia.org 01.01.2023

Список задач о рюкзаке — Википедия

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

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

Общим для всех видов является наличие набора из n предметов, с двумя параметрами — вес p i > 0 и ценность c i > 0 , i = 1 , 2 , . . . , n .Есть рюкзак, определенной вместимости P . Задача — собрать рюкзак с максимальной ценностью предметов внутри, соблюдая при этом весовое ограничение рюкзака. Обычно все параметры — целые, не отрицательные числа.

Рюкзак 0-1 (англ. 0-1 Knapsack Problem)Править

Это самая распространенная разновидность рюкзака. Пусть x i   принимает два значения: x i = 1  , если груз упакован, и x i = 0   в противном случае, где i = 1 , 2 , . . . , n  . Задача:

максимизировать i = 1 n c i x i  

при наличии ограничения i = 1 n p i x i P   на вместимость рюкзака[1][2].

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

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

максимизировать i = 1 n c i x i  

так, чтобы i = 1 n p i x i P   выполнялось условие на вместимость

и x i ( 0 , 1 , . . . , m i )   для всех i = 1 , 2 , . . . , n  [3].

Число m i   называют границей[3].

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

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

максимизировать i = 1 n c i x i  

так, чтобы i = 1 n p i x i P   выполнялось условие на вместимость

и целое x i 0   для всех i = 1 , 2 , . . . , n  [4].

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

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

максимизировать i = 1 n j S i c i j x i j  

так, чтобы i = 1 n j S i p i j x i j P   выполнялось условие на вместимость,

j S i x i j = 1   для всех i = 1 , 2 , . . . , n  

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

Пусть у нас есть n   предметов и m   рюкзаков ( m n  ). У каждого предмета, как и раньше, есть вес p j > 0   и ценность c j > 0   j = 1 , 2 , . . . , n  , у каждого рюкзака соответственно своя вместимость P i   при i = 1 , 2 , . . . , m  . x i 0 , 1  . Задача:

максимизировать i = 1 m j = 1 n c j x i j  

так, чтобы i = 1 n p j x i j P i   выполнялось условие для всех i = 1 , 2 , . . . , m  ,

j = 1 m x i j 1   для всех i = 1 , 2 , . . . , n  [5].

Многомерный рюкзак (англ. Multy-dimensional knapsack problem)Править

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

максимизировать i = 1 n c i x i  

так, чтобы i = 1 n p i j x i P j  , j = 1 , 2 , . . . , m  

и x i 0   для всех i = 1 , 2 , . . . , n  [4].

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

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

максимизировать x T Q x  

при условиях i = 1 n p i x i P  , x B n  , или

минимизировать x T Q x  

при условиях i = 1 n p i x i P  , x B n  .

При этом Q   — неотрицательно определенная матрица размера n × n  , B n   задаёт ограничения на количество предметов[6].

ПримечанияПравить

  1. Бурков, 1974, p. 217.
  2. Silvano, 1990, p. 2.
  3. 1 2 Pisinger, 1995, p. 127.
  4. 1 2 Pisinger, 1995, p. 147.
  5. Silvano, 1990, p. 157.
  6. G. Gallo, P. L. Hammer, B. Simeone. Quadratic knapsack problems (англ.) // Mathematical Programming Studies. — 2009. — 24 февраль (vol. 12). — P. 132-149. — ISSN 0303-3929. Архивировано 24 октября 2016 года.

ЛитератураПравить

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

СсылкиПравить

  1. Алгоритм рюкзака