El problema de la suma de subconjuntos es un problema clásico de NP completo:
Dada una lista de números y un objetivo k , ¿hay un subconjunto de números de L que sume a ?
Un estudiante me preguntó si esta variante del problema llamado problema del "subconjunto de productos" es NP-complete:
Dada una lista de números y un objetivo k , ¿hay un subconjunto de números de L cuyo producto es ?
Hice un poco de búsqueda y no pude encontrar ningún recurso que hablara sobre este problema, aunque quizás los extrañé.
¿El problema del subconjunto de productos es NP-completo?
complexity-theory
np-complete
reductions
templatetypedef
fuente
fuente
Respuestas:
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:
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| X C
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 .C L
Multiplica los miembros de juntos; el producto resultante es el valor k para la instancia de SUBSET PRODUCT.X k
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 .k X L C L C
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|)
fuente
De acuerdo con [ 1 ]: Sí, es
También cito la misma referencia: Comentarios: Existe una sutil distinción técnica entre esto y el Problema 42: el primer caso tiene un algoritmo pseudoeficiente obtenido al permitir que los números se representen en unario; a menos que todos los problemas NP-completos puedan resolverse mediante algoritmos rápidos, sin embargo, el problema del subconjunto de productos no puede resolverse mediante métodos 'eficientes' que utilicen incluso esta representación de entrada irrazonable.
Eche un vistazo a [2] para ver una reducción. [2]: Compañeros, Michael y Neal Koblitz. "Complejidad de parámetros fijos y criptografía". Álgebra aplicada, algoritmos algebraicos y códigos de corrección de errores (1993): 121-131.
fuente