O problema da soma de subconjuntos é um problema NP-completo clássico:
Dada uma lista de números e um destino , existe um subconjunto de números de que soma ?k L k
Um aluno me perguntou se essa variante do problema chamada de "produto de subconjunto" está NP-completa:
Dada uma lista de números e um destino , existe um subconjunto de números de cujo produto é ?k L k
Pesquisei e não encontrei nenhum recurso que falasse sobre esse problema, embora talvez tenha sentido falta deles.
O problema do subconjunto do produto está NP-completo?
complexity-theory
np-complete
reductions
templatetypedef
fonte
fonte
Respostas:
Um comentário menciona uma redução de X3C para SUBSET PRODUCT atribuída a Yao. Dado o objetivo da redução, não era difícil adivinhar qual seria a provável redução.
Definições:
Para reduzir uma instância X3C para uma instância SUBSET PRODUCT:
Estabeleça um mapeamento bijetivo entre os membros de e o primeiro | X | números primos. Substitua os membros dos subconjuntos X e C pelos números primos mapeados.X | X| X C
Para cada subconjunto em , multiplique seus membros; a lista de produtos resultante é L para a instância SUBSET PRODUCT. Como os números primos são usados para o mapeamento na etapa 1, é garantido que os produtos sejam equivalentes se os subconjuntos forem equivalentes pelo teorema da fatoração exclusivo .C eu
Multiplique os membros de juntos; o produto resultante é o valor k para a instância SUBSET PRODUCT.X k
Os fatores primos de são exatamente os membros da X . Os fatores primos dos números em L correspondem exatamente aos membros dos subconjuntos C. Assim, qualquer solução para a nova instância SUBCONJUNTO produto pode ser transformado numa solução X3C mapeando os membros de solução de L volta para os subconjuntos em C .k X eu C eu C
Cada uma das 3 etapas de transformação envolve operações que são polinomiais ao tamanho da entrada ou o tamanho de um membro de X . O primeiro | X | os números primos podem ser gerados no tempo O ( | X | ) usando a peneira de Eratóstenes e são garantidos que se encaixam no espaço O ( | X | 2 ln | X | ) pelo teorema do número primo .| X| X | X| | X| O ( | X|2em| X| )
fonte
De acordo com [ 1 ]: Sim, é
Também cito a mesma referência: Comentários: Há uma distinção técnica sutil entre este e o Problema 42: o primeiro caso possui um algoritmo pseudoeficiente obtido por permitir que números sejam representados em unários; a menos que todos os problemas de NP-completos possam ser resolvidos por algoritmos rápidos, o Subconjunto do Problema do Produto não pode ser resolvido por métodos `eficientes 'usando até mesmo essa representação de entrada irracional.
dê uma olhada em [2] para uma redução. [2]: Companheiros, Michael e Neal Koblitz. "Complexidade de parâmetros fixos e criptografia." Álgebra Aplicada, Algoritmos Algébricos e Códigos de Correção de Erros (1993): 121-131.
fonte