Задача подмножества сумм является классической NP-полной задачей:
Учитывая список чисел и цель , есть ли подмножество чисел из которое суммирует к ?k L k
Студент спросил меня, является ли этот вариант проблемы, называемый проблемой «подмножество продукта», NP-полным:
Имея список чисел и цель , существует ли подмножество чисел из , произведение которых равно ?k L k
Я немного искал и не мог найти никаких ресурсов, которые говорили бы об этой проблеме, хотя, возможно, я пропустил их.
Является ли проблема подмножества продукта NP-полной?
complexity-theory
np-complete
reductions
templatetypedef
источник
источник
Ответы:
В комментарии упоминается сокращение с X3C до ПОДВОДНОГО ПРОДУКТА, приписываемое Яо. Учитывая цель сокращения, было нетрудно догадаться, каким могло быть снижение.
Определения:
Чтобы уменьшить экземпляр X3C до экземпляра SUBSET PRODUCT:
Установить биективное отображение между членами и первым | X | простые числа. Замените члены подмножеств X и C сопоставленными простыми числами.X |X| X C
Для каждого подмножества в умножьте его члены вместе; результирующий список продуктов L для экземпляра SUBSET PRODUCT. Поскольку простые числа используются для отображения на шаге 1, произведения гарантированно эквивалентны, если подмножества эквивалентны по теореме об уникальной факторизации .C L
Умножьте члены вместе; В результате получается значение k для экземпляра SUBSET PRODUCT.X k
Простые множители точно члены X . Простые множители чисел в L точно соответствуют членам C подмножеств. Поэтому любое решение нового экземпляра SUBSET продукта может быть превращено в раствор X3C путем сопоставления членов раствора L обратно к подмножествам в С .k X L C L C
Каждый из 3 шагов преобразования включает в себя операции, полиномиальные по размеру ввода или размер члена X . Первый | X | простые числа могут быть сгенерированы во времени O ( | X | ) с помощью сита Эратосфена и гарантированно помещаются в пространство O ( | X | 2 ln | X | ) по теореме простых чисел .|X| X |X| |X| O(|X|2ln|X|)
источник
Согласно [ 1 ]: да, это
Я также цитирую ту же ссылку: Комментарии: между этим и проблемой 42 существует тонкое техническое различие: в первом случае используется псевдоэффективный алгоритм, полученный путем представления чисел в унарном виде; однако, если все NP-полные проблемы не могут быть решены с помощью быстрых алгоритмов, проблема подмножества продукта не может быть решена «эффективными» методами, использующими даже это необоснованное входное представление.
посмотрите на [2] для сокращения. [2]: Товарищи Майкл и Нил Коблиц. «Фиксированная сложность параметров и криптография». Прикладная алгебра, алгебраические алгоритмы и коды, исправляющие ошибки (1993): 121-131.
источник