Page 179 - INTRODUCCIÓN AL ANÁLISIS DE ALGORITMOS
P. 179

INTRODUCCIÓN AL ANÁLISIS  DE ALGORITMOS


            Estos problemas de decisión en los que la solución parece difícil, pero verificarla parece sencillo,
            forman su propia clase de complejidad, conocida como NP. Se ha dicho parecen, porque, como se
            ha comentado, no se sabe hoy en día si realmente son tan difíciles de resolver.

            Como primera observación, se recalcará que en NP solo hay problemas de decisión. Así, en NP está
            la versión de decisión de TSP, pero no el problema de función más general de encontrar la ruta ópti-
            ma. La segunda observación es que la búsqueda del certificado es un algoritmo. No el algoritmo que
            resuelve el problema, sino el que lo verifica. Finalmente, es importante hacer notar que el tiempo para
            dar por bueno el certificado, el tiempo de ejecución de este algoritmo, es polinómico con respecto a
            la cadena de entrada. Pero ¿cuál sería un posible certificado para TSP como problema de decisión?
            Claramente, el camino hamiltoniano.

            Cook afirma que es trivial mostrar que P C NP y también afirma que hay dos formas de establecer si
            un problema pertenece a la clase NP:



                        •  Si su solución implica el uso de una máquina de Turing no determinística en
                        tiempo polinomial,


                        •  o si su solución se puede verificar en una máquina de Turing determinística en
                        tiempo polinomial.




            Es posible demostrar que un problema pertenece a la clase P mediante dos formas:




                        •  mostrando un algoritmo polinomial que lo resuelve,

                        •  o usando una transformación polinomial a otro problema que ya se sabe que
                        está en la clase P.





            Una transformación polinomial de B en C es un algoritmo determinista que transforma instancias de
            b       B en instancias de c      C, tales que la respuesta a c es positiva si y solo si la respuesta a b lo es.

            P puede ser un subconjunto propio de NP o P puede ser igual a NP. Es algo que no se sabe. De
            hecho, es el problema abierto más importante de la teoría de la complejidad computacional y uno de
            los más importantes de la matemática:
                                                 ¿P = NP? o ¿P ≠ NP?

            La inmensa mayoría de los expertos piensa que P ≠ NP, aunque no se ha podido demostrar. La im-
            portancia de la clase de problemas NP es que contiene muchos problemas de búsqueda y de opti-
            mización para los que se desea saber si existe cierta solución o si hay una mejor que las conocidas.


                                                         173
   174   175   176   177   178   179   180   181   182   183   184