Subconjunto suma vs subconjunto producto (dureza NP fuerte vs débil)


15

Esperaba que alguien pudiera explicarme por qué exactamente el problema del producto del subconjunto es fuertemente NP-duro, mientras que el problema de la suma del subconjunto es débilmente NP-duro.

Subconjunto Suma: Dada y , ¿existe un subconjunto tal que .X={X1,...,Xnorte}TXyoXXyo=T

Subconjunto del producto: Dada y , ¿existe un subconjunto tal que .X={X1,...,Xnorte}TXyoXXyo=T

Siempre pensé que los dos problemas eran equivalentes: una instancia de SS podría transformarse en una instancia de SP mediante exponenciación y una instancia de SP a SS mediante logaritmos. Esto me llevó a concluir que ambos pertenecían a la misma clase de NP-hard, es decir, ambos eran débilmente NP-hard.

Además, parece que la misma recurrencia podría usarse para resolver ambos problemas usando la programación dinámica con un cambio muy pequeño (reemplazando la resta en SS con la división en SP).

Eso fue hasta que leí el capítulo 8 de "Teoría de la computación" de Bernard Moret (para aquellos que no tienen el libro, tiene una prueba de la dureza del producto del subconjunto a través de X3C, un problema fuertemente NP-duro).

Entiendo la reducción, pero no puedo entender qué estaba mal con mi conclusión anterior (equivalencia de los dos problemas).


ACTUALIZACIÓN : Resulta que el producto del subconjunto solo es débilmente NP-completo (el producto objetivo es exponencial en ). Gary y Johnson publicaron esto en su columna de completitud NP en 1981 , pero supongo que era menos visible que su reclamo anterior en su libro.Ω(norte)


55
Probablemente sería bueno imaginar cómo implementaría su algoritmo de programación dinámica. Entonces, encontrarías lo que estaba mal.
Yoshio Okamoto

@ MohammadAl-Turkistany: Está en la sección final de esta columna
RDN

Respuestas:


5

Con respecto al problema de equivalencia de Subset Sum y Subset Product Hay un tecnicismo con respecto a Subset Product. ¡El producto de x's = T es en realidad Psuedopolynomial si T no es exponencial! Por lo tanto, las pruebas de que el producto del subconjunto es NP Hard no son (¡por razones técnicas!) ¡Bastante correctas!

Sin embargo, dada la promesa de que T es grande. ¡Entonces la reducción a través de Logaritmos a Subset Sum da una SUMA DE SUBSET NO ESTÁNDAR que supera los reales! Esto significa que el algoritmo Psuedopolynomial para Subset Sum no se aplica. Aunque los logaritmos son pequeños, ¡los lugares decimales estropean la programación dinámica psuedopolinómica!

espero que esto ayude

Zelah


2
Resulta que siempre estuvo en lo correcto acerca de que las reducciones son incorrectas (es decir, afirman que muestran una completa integridad de NP, cuando no lo hacen). ¡Gracias!
RDN

8

En primer lugar, usar la exponenciación para pasar de SS a SP funciona (usando la base 2 en lugar de la base ), pero explota el tamaño de los números involucrados. Una dureza NP débil significa que si los números son pequeños (o más precisamente, indicados en unario), el problema ya no es difícil. Por lo tanto, el uso de la exponenciación crea instancias de SP de tamaño exponencial incluso para las instancias fáciles de SS, donde los números se escriben en unario.mi

En segundo lugar, el uso de logaritmos para pasar de SP a SS no funciona, ya que los logaritmos generalmente generan valores no enteros. SS y SP se definen usando números enteros, y los logaritmos a menudo resultan en valores trascendentales, que son difíciles de representar o hacer cálculos matemáticos.

<edit>

Sea un número entero, A > 0 , luego log 2 A es racional si y solo si A es una potencia de 2, y trascendental en caso contrario. En primer lugar, si log 2 A = pUNUN>0 0Iniciar sesión2UNUN para enteros distintos de ceropyq, entoncesA=2 pIniciar sesión2UN=pagqpagq ,Aq=2p. Por lo tanto, tenemos queA=2rpor descomposición primaria. Además,Arq=2p, por lo tanto, dada unaA, podemos elegirq=1yp=rpara demostrar quelog2Aes racional.UN=2pagqUNq=2pagUN=2rUNrq=2pagUNq=1pag=rIniciar sesión2UN

Solo tenemos que mostrar que nunca es trascendental de lo contrario. Esto se desprende del teorema de Gelfond-Schneider , para una formulación equivalente (como se puede encontrar en la página Wiki) es "si α y γ son números algebraicos distintos de cero, y tomamos cualquier logaritmo no α de α , entonces ( log γ ) / ( log α ) = log α γ es racional o trascendental ". También es fácil de verificar tomando el inverso del teorema y estableciendo α β = γ y, por lo tanto, βIniciar sesión2UNαγα(Iniciar sesiónγ)/ /(Iniciar sesiónα)=Iniciar sesiónαγαβ=γ .β=Iniciar sesiónαγ

</edit>

Por último, considere lo que sucede cuando probamos el algoritmo de programación dinámica de SS en SP. Debido a que usamos productos en lugar de sumas, los números involucrados aumentan enormemente, y la precisión matemática arbitraria requerida de repente se convierte en un factor en el tiempo de ejecución. Es por eso que el algoritmo no puede resolver instancias de SP rápidamente, incluso si los números están en unario.


Esto lleva a un caso especial algo interesante. ¿para qué clase de números los registros se pueden expresar como racionales y no requieren precisión infinita? en este caso, los problemas serían casi equivalentes y reducibles entre sí. También parece conducir a un algoritmo de aproximación "natural".
vzn

1
¡Gracias por la gran respuesta! Solo tengo un problema: entiendo por qué tomar registros es ilegal (excepto tal vez en el caso de que los registros tengan una longitud polivinílica, como señala vzn), pero todavía no estoy seguro de la legalidad de pasar de SS a SP por exponenciación. WRT va de SS a SP como mencionó (por exponenciación), no nos encontramos con el siguiente problema: el número de bits en la instancia de entrada de es O ( n log x ) y el número de bits en el instancia de I S P es O ( n x ) . Esta es una explosión exponencial. Entonces, ¿sigue siendo legal? Si es así, ¿por qué?yoSSO(norteIniciar sesiónX)yoSPAGO(norteX)
RDN

1
@vzn, RDN: edité una caracterización cuando el logaritmo es trascendental. Sobre la explosión en la reducción, depende de su definición de "legal": la reducción es correcta , pero su eficiencia no es polinómica, y por lo tanto no dice nada sobre la dureza NP. Por lo tanto , no es una reducción correcta de poli-tiempo , pero es una reducción correcta (sin calificadores).
Alex ten Brink

También hay un caso especial donde todos los números tienen la forma , cada n i racional, para cualquier c , no solo c = 2 . el algoritmo de aproximación en el que estaba pensando podría encontrar una c tal que la conversión de valores en esa "base" esté "cerca" de los originales. CnorteyonorteyoCC=2C
vzn

1

La explicación literal es que el problema del Producto del subconjunto es NP completo por una reducción de un problema fuertemente NP completo, como la cobertura exacta por 3 juegos. En tal reducción "fuerte", los enteros de entrada están delimitados por alguna función polinómica en el número de enteros en la instancia resultante del problema del Subconjunto de productos.

Tal reducción "fuerte" es imposible de cualquier problema fuertemente NP-completa a Subset Sum problema a menos que . Tenemos un algoritmo de programación dinámica de tiempo polinómico para resolver el problema de la suma de subconjuntos si los enteros de entrada están limitados por un polinomio.PAG=nortePAG


Sí, lo entiendo. Mi pregunta era por qué la conclusión que había hecho antes era incorrecta (es decir, equivalencia de SS y SP).
RDN

@rdn No hay equivalentes en ese sentido a menos que P = NP.
Mohammad Al-Turkistany

Sí, entiendo eso. Pero quiero saber qué estaba mal con mis reducciones en cualquier dirección.
RDN

¿Puedes delinear tus reducciones?
Mohammad Al-Turkistany

yo(SS)=X,Syo(SPAG)=Y,PAGyo(SS)yo(SPAG)PAG=miSYyo=miXyoSPAG=miSyo(SPAG)yo(SS)S=losol(PAG)Xi=log(Yi)PS=log(P)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.