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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

Рюкзак 0-1(англ. 0-1 Knapsack Problem)[править | править вики-текст]

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

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

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

Ограниченный рюкзак(англ. Bounded Knapsack Problem)[править | править вики-текст]

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

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

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

и для всех [3].

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

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

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

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

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

и целое для всех [4].

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

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

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

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

для всех

Мультипликативный рюкзак(англ. Multiple Knapsack Problem)[править | править вики-текст]

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

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

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

для всех [5].

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

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

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

так чтобы ,

и для всех [4].

Примечания[править | править вики-текст]

  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.

Литература[править | править вики-текст]

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

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

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