Problema NP-completo : en la teoría de los algoritmos , un problema con la respuesta "sí" o "no" de la clase NP , al que cualquier otro problema de esta clase se puede reducir en tiempo polinomial (es decir, usando operaciones cuyo número no excede algún polinomio dependiendo del tamaño de los datos originales). Por lo tanto, los problemas NP-completos forman, en cierto sentido, un subconjunto de problemas "típicos" en la clase NP: si se encuentra un algoritmo de solución "polinomialmente rápido" para algunos de ellos, entonces se puede resolver cualquier otro problema de la clase NP. igual de “rápidamente””.
Un alfabeto es cualquier conjunto finito de caracteres (por ejemplo, {} o {}). El conjunto de todas las palabras posibles ( cadenas finales compuestas por los caracteres de este alfabeto) sobre algún alfabetose denota. Un idioma sobre un alfabetoes cualquier subconjunto del conjunto, es decir.
La tarea de reconocimiento de un idioma es la determinación de si una palabra dada pertenece al idioma .
Sea y sea dos idiomas sobre el alfabeto . Se dice que un lenguaje es reducible (según Karp) a un lenguaje si existe una función , , que es computable en tiempo polinomial y tiene la siguiente propiedad:
Se dice que un idioma es NP-duro si cualquier idioma de la clase NP es reducible a él. Se dice que un lenguaje es NP-completo si es NP-difícil y pertenece a la clase NP.
Informalmente hablando, el hecho de que el problema se reduzca al problema significa que el problema “no es más difícil” que el problema (porque si podemos resolver , entonces podemos resolver y ). Por lo tanto, la clase de problemas NP-difíciles incluye problemas NP-completos y problemas que son "más difíciles" que ellos (es decir, aquellos problemas a los que se pueden reducir los problemas NP-completos). La clase NP incluye problemas NP-completos y problemas que son "más fáciles" que ellos (es decir, aquellos problemas que se reducen a problemas NP-completos).
De la definición se deduce que si se encuentra un algoritmo que resuelve algún (cualquier) problema NP-completo en tiempo polinomial, entonces todos los problemas NP estarán en la clase P , es decir, se resolverán en tiempo polinomial.
Una tarea se denomina NP-completa en sentido estricto si tiene una subtarea que:
La clase de tales problemas se llama NPCS . Si la hipótesis P ≠ NP es verdadera, entonces no existe un algoritmo pseudopolinomial para el problema NPCS .
La cuestión de la coincidencia de las clases P y NP ha sido uno de los problemas centrales abiertos durante más de treinta años . La comunidad científica tiende a dar una respuesta negativa a esta pregunta [1] — en este caso, no será posible resolver problemas NP-completos en tiempo polinomial.
Clases de complejidad de algoritmos | |
---|---|
Considerado ligero |
|
Se supone que es difícil | |
Considerado difícil |
|
Problemas NP-completos | |
---|---|
Problema de maximización del apilamiento (packing) |
|
teoría de grafos teoría de conjuntos | |
Problemas algorítmicos | |
Juegos de lógica y rompecabezas. | |