¿La dificultad de un problema NP-hard o NP-complete (como se define aquí ) cambia cuando su entrada es unaria en lugar de codificada en binario?
¿Qué diferencia hay si la entrada de un problema fuertemente NP-hard está codificada de forma unaria? Quiero decir, si tomo, por ejemplo, el problema de la mochila NP-complete débilmente, es NP-complete cuando está codificado en binario, pero puede resolverse en tiempo polinómico mediante programación dinámica cuando está codificado de forma unaria. ¿Quizás tiene algunas implicaciones para la dureza de los niveles superiores de la jerarquía del tiempo polinomial?
¿La noción de fuerte ...- duro también es válida para otras clases de complejidad, por ejemplo, clases más altas de la jerarquía de tiempo polinomial?
Anteriormente hice esta pregunta en stackoverflow.com pero se señaló que es más apropiado aquí.
fuente
Respuestas:
Un tamaño problemático de codificado en unario es el tamaño N y el log N si es binario. Si el tiempo empleado es F ( N ) , este es F ( tamaño ) en el primer caso y F ( tamaño 2 ) en el segundo caso. Entonces, un algoritmo que es polinómico para el primer caso probablemente será exponencial para el segundo. La codificación del problema puede cambiar radicalmente la complejidad de un algoritmo.norte norte Iniciar sesiónnorte F( N) F( tamaño ) F( 2Talla)
fuente
No.
Si cambia la codificación de la entrada, ha cambiado la definición formal del problema, lo que significa que es un problema diferente . La complejidad del problema original no cambia, por la misma razón que señalar una luz diferente en el cielo no cambia la masa de la luna.
fuente
La respuesta corta es que si la entrada está codificada unariamente, entonces es más larga . Es exponencialmente más largo. Ahora, un algoritmo que funciona en tiempo polinómico en el tamaño de la entrada tiene "tiempo suficiente" para resolver el problema, solo porque la entrada en sí es exponencialmente más larga que en el problema original.
fuente
Al ver más allá del problema de formulación señalado en la respuesta de JeffE, la respuesta es sí.
Considere el problema de la mochila . Tiene un algoritmo pseudo-polinomial , que es uno con tiempo de ejecución limitado por un polinomio en un número codificado en la entrada. Debido a que los valores de codificación unarios corresponden a la longitud, este es un algoritmo de tiempo polinómico para la versión unaria.
De hecho, cada problema débil de NP completo cae en esta categoría.
fuente