Cómo mostrar un problema es NP completo

Para que cualquier problema Q sea NP-completo, tiene que satisfacer AMBAS las siguientes propiedades:

PROPIEDAD # 1
Existe un algoritmo no determinista que resuelve Q en tiempo polinómico .
Dicho de otra manera, existe un procedimiento de verificación que se ejecuta en tiempo polinómico, de si un certificado de entrada dado I (que afirma ser una solución del problema) , es en realidad una solución o no.
(Tan pronto como haya probado lo anterior, se garantiza que
[matemáticas] Q \ en NP [/ matemáticas] )

PROPIEDAD # 2
Cualquier otro problema Q ‘(que previamente se demostró que estaba en NP ) es reducible a Q en tiempo polinómico.
(Si solo ha probado lo anterior (pero falló en la primera condición), se garantiza que [math] Q \ in NP ~ hard [/ math])


Dado que SAT es np-complete, si logra reducir SAT a 3SAT en tiempo polinómico, es decir, [matemática] SAT \ leq _ {p} 3 ~ SAT [/ matemática] (observe la dirección de conversión), tiene éxito Alcanzó su intención.

Como clase general, estos son los problemas completos de NP más populares y sus reducciones:

Si el problema [matemáticas] A [/ matemáticas] se reduce al problema [matemáticas] B [/ matemáticas] en algún sentido razonable, eso significa que el problema [matemáticas] B [/ matemáticas] es al menos tan difícil como el problema [matemáticas] A [ /mates]. Entonces, si desea mostrar que [matemáticas] 3SAT [/ matemáticas] es difícil, debe encontrar un problema difícil conocido, por ejemplo, [matemáticas] SAT [/ matemáticas], y reducirlo a [matemáticas] 3SAT [/ matemáticas].

El pequeño roce aquí es que reducir [matemáticas] SAT [/ matemáticas] a [matemáticas] 3SAT [/ matemáticas] solo muestra que [matemáticas] 3SAT [/ matemáticas] es NP-duro. Si desea mostrar que está NP-completo, debe mostrar que pertenece a NP. Esto no es difícil de hacer, pero debes recordar hacerlo.

Primero debes demostrar que está en NP. Hace esto exhibiendo un algoritmo de tiempo polinómico no determinista para decidirlo.

En segundo lugar, muestra que cualquier problema de NP completo se reduce a 3SAT. Usas SAT o cualquiera …

Usa la lógica para resolver esto. Si puede exhibir un algoritmo de tiempo polinómico para transformar cualquier instancia del problema A en una instancia del problema B, entonces una solución general al problema B también es una solución general al problema A. Por lo tanto, el problema B debe ser al menos tan difícil de resolver como problema A. Si elige el problema A como un problema cuya dureza se conoce, entonces debe saber que el problema B es al menos tan difícil. Si desea mostrar que 3-SAT es al menos tan difícil como SAT, elija SAT para que sea el problema A y 3-SAT para que sea el problema B.

Puede demostrar que 3-SAT es NP-completo reduciendo SAT a 3-SAT. Reducir 3-SAT a otro problema no demuestra que 3-SAT sea difícil, solo que el otro problema es al menos tan difícil como 3-SAT.

More Interesting

Tenemos una serie de N palabras, ¿cómo podríamos clasificarlas con O (N) complejidad de tiempo?

¿En cuánto tiempo puedo ser un profesional en la resolución de problemas en algoritmos y estructuras de datos si empiezo hoy sin ningún conocimiento previo?

Cómo instalar accesorios de compresión en tubos de plástico

¿Qué algoritmos de Machine Learning pueden usarse para el aprendizaje supervisado incremental?

¿Alguien puede explicar el algoritmo de programación Round Robin?

¿Por qué la longitud de una matriz siempre es mayor que el índice más grande de la matriz?

¿El operador 'in' mientras busca claves en Python Dictionary toma O (1)? Si es así, ¿cómo?

¿De dónde obtienen los algoritmos comerciales sus datos sin procesar?

¿Existe un mapeo limpio de los ordenamientos de N objetos en la recta numérica?

¿Hay algún tipo de estrategias para resolver problemas en estática?

¿Se puede utilizar el algoritmo de red neuronal artificial en un conjunto de datos dinámicos como el clima o el tráfico?

Dado un laberinto cuadrado, cada entrada en el laberinto es una celda abierta 'O' o una pared 'X'. Una rata puede viajar a sus ubicaciones adyacentes (izquierda, derecha, arriba y abajo), pero para llegar a una celda, debe estar abierta. Dadas las ubicaciones de las ratas, ¿puedes averiguar si todas las ratas pueden alcanzar a las demás?

¿Cómo funciona el algoritmo de comprobación de cuentas falsas de Facebook?

Cómo implementar la ordenación de inserción recursiva usando una lista vinculada

Cómo aprender a analizar algoritmos