Список задач про наповнення рюкзака
Задача про наповнення рюкзака — це одна з задач комбінаторної оптимізації. Задача отримала назву від максимізаційної задачі пакування якомога більшої кількості речей в рюкзак при умові, щоб загальний об'єм (чи вага) всіх предметів, здатних поміститись в рюкзак, обмежений. Тому в цієї задачі існує декілька підвидів. Загальним для всіх видів є наявність набору з n предметів, кожен з двома параметрами — вага і ціна , .Є рюкзак, визначеної місткості . Завдання — зібрати рюкзак з максимальною цінністю предметів всередині, зберігаючи при цьому вагове обмеження рюкзака. Зазвичай всі параметри є цілими невід'ємними числами.
Рюкзак 0-1 (англ. 0-1 Knapsack Problem)
Це найбільш поширений різновид рюкзака. Нехай приймає два значення: , якщо вантаж запакований, і в іншому випадку, де . Завдання: Максимізувати
при наявності обмеження на місткість рюкзака.
Обмежений рюкзак (англ. Bounded Knapsack Problem)
Кожен предмет може бути обраний обмежену кількість раз. Завдання: Максимізувати
так, щоб виконалась умова на місткість
і для всіх .
Число називають границею, межею.
Необмежений рюкзак (цілочисельний рюкзак) (англ. Unbounded Knapsack Problem (integer knapsack))
Кожен предмет може бути обраний необмежену кількість раз. Завдання: максимізувати
так щоб виконалась умова на місткість
і ціле для всіх .
Рюкзак з мультивибором (англ. Multiple-choice Knapsack Problem)
Всі предмети розділяють на класів . Обов'язковою є умова вибору предмета з кожного класу. приймає значення тільки 0 і 1. Завдання: максимізувати
так щоб виконувалась умова на місткість,
для всіх
Мультиплікативний рюкзак (англ. Multiple Knapsack Problem)
Нехай в нас є предметів та рюкзаків . У кожного предмета, як і раніше, є вага і ціна , у кожного рюкзака відповідно своя місткість Завдання: максимізувати
так щоб виконувалась умова для всіх ,
для всіх .
Багатовимірний рюкзак (англ. Multy-dimensional knapsack problem)
Якщо є більше одного обмеження на рюкзак, наприклад об'єм і вага, задачу називають m-вимірною задачею про рюкзак. Наприклад, для необмеженого варіанта: максимізувати
так щоб
и для всіх .
Література
- В. Н. Бурков, И. А. Горгидзе, С. Е. Ловецкий. Прикладные задачи теории графов. — М., 1974. — 232 с. (рос.)
- Silvano Martelo, Paolo Toth Knapsack problems. — Wiley, 1990. — 306 с. (англ.)
- David Pisinger Knapsack problems. — 1995. (англ.)