Knapsack problem
Knapsack problem
Введение
Задача рюкзака — это оптимизационная задача, в которой нужно определить, какие предметы положить в рюкзак (ранец) ограниченной вместимости, чтобы максимизировать суммарную стоимость. Предметы могут быть как целыми, так и дробными. В этой главе мы рассматриваем только целочисленный вариант (0/1 knapsack), поскольку дробный вариант решается жадно.
Постановка:
Дано предметов, каждый имеет вес и стоимость, и рюкзак вместимостью (). Нужно выбрать некоторые предметы так, чтобы их суммарный вес не превышал , а суммарная стоимость была максимальной. Предметы нельзя делить на части.
Пример: при , и предметах , , (первое число — стоимость, второе — вес) можно получить максимальную стоимость , положив в рюкзак и (вес ).