Un comentario menciona una reducción de X3C a PRODUCTO SUBSET atribuido a Yao. Dado el objetivo de la reducción, no fue difícil adivinar cuál era la reducción.
Definiciones:
CUBIERTA EXACTA POR 3-SETS (X3C)
Dado un conjunto finito con | X | un múltiplo de 3, y una colección C de subconjuntos de 3 elementos de X , C contiene una cubierta exacta C ' para X , donde C ' ⊆ C y cada elemento en X aparece exactamente una vez enX|X|CXCC′XC′⊆CXC′ ?
PRODUCTO SUBSET
Dada una lista de números y un objetivo k , ¿hay un subconjunto de números de LLkL cuyo producto sea ?k
Para reducir una instancia de X3C a una instancia de SUBSET PRODUCT:
Establecer un mapeo biyectivo entre los miembros de y el primero | X | números primos. Reemplace los miembros de los subconjuntos X y C con los primos asignados.X|X|XC
Para cada subconjunto en , multiplique sus miembros juntos; la lista de productos resultante es L para la instancia SUBSET PRODUCT. Debido a que los números primos se usan para el mapeo en el paso 1, se garantiza que los productos serán equivalentes si los subconjuntos son equivalentes por el teorema de factorización único .CL
Multiplica los miembros de juntos; el producto resultante es el valor k para la instancia de SUBSET PRODUCT.Xk
Los factores primos de son exactamente los miembros de X . Los factores primos de los números en L corresponden exactamente a los miembros de los subconjuntos de C. Por tanto, cualquier solución a la nueva instancia SUBSET producto puede ser transformado en una solución x3c mediante la asignación de los miembros de solución de L de nuevo a los subconjuntos en C .kXLCLC
Cada uno de los 3 pasos de transformación implica operaciones que son polinómicas al tamaño de la entrada o el tamaño de un miembro de X . El primero | X | los primos se pueden generar en el tiempo O ( | X | ) utilizando el tamiz de Eratóstenes y se garantiza que encajan en el espacio O ( | X | 2 ln | X | ) mediante el teorema del número primo .|X|X|X||X|O(|X|2ln|X|)