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:
COBERTURA EXATA POR 3 CONJUNTOS (X3C)
Dado um conjunto finito comum múltiplo de 3 e uma coleção de subconjuntos de 3 elementos de , contém uma capa exata para , onde e todos os elementos em ocorrem exatamente uma vez em ?| X | C X C C ' X C ' ⊆ C X C "X| X|CXCC′XC′⊆ CXC′
SUBSET PRODUTO
Dada uma lista de números e um destino k , existe um subconjunto de números de L cujo produto é k ?eukeuk
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|XC
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 .Ceu
Multiplique os membros de juntos; o produto resultante é o valor k para a instância SUBSET PRODUCT.Xk
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 .kXeuCeuC
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| )