NP-полнота задачи о рюкзаке
Содержание
Формулировка задачи
В Задаче о рюкзаке (Knapsack problem) входными данными являются набор
пар целых чисел - вес и - стоимость, а также два целых числа - максимальный вес и - минимальная стоимость. Требуется определить, можно ли выбрать такое подмножество пар, что их суммарная стоимость больше либо равна , а вес меньше или равен :
Доказательство NP-полноты
Для доказательства того, что
необходимо доказать два факта:Доказательство принадлежности к NP
В качестве сертификата возьмем удовлетворяющее условию задачи подмножество пар
. Очевидно, оно удовлетворяет всем требованиям, налагаемым на сертификат.Доказательство принадлежности к NPH
Сведем задачу о сумме подмножества к задаче о рюкзаке. Пусть - функция, осуществляющее сведение. Она будет устроена так:
Очевидно, сводимости по Карпу.
работает за полиномиальное от длины входа время. И удовлетворяет условиям