You are on page 1of 7

.

Los problemas solucionables. Los problemas que tienen una solución con orden de complejidad lineal son los problemas que se resuelven en un tiempo que se relaciona linealmente con su tamaño. Estos problemas no tienen una solución algorítmica. Los problemas con costo no polinomial están agrupados en la clase NP. Aunque actualmente la mayoría de los algoritmos resueltos por las máquinas tienen como máximo una complejidad o costo computacional polinómico. tales como el número de procesadores necesarios para resolver el problema en paralelo. P es conocido por contener muchos problemas naturales. A estos recursos se les puede añadir otros. requieren gran cantidad de recursos como tiempo y espacio de almacenamiento. que es la clase de lenguajes decidibles en tiempo polinómico sobre una máquina de Turing no determinista. lo que corresponde intuitivamente a problemas que pueden ser resueltos aún el peor de sus casos. De forma trivial. Éstos son problemas agrupados en la clase P. CLASE P Es el conjunto de problemas de decisión que pueden ser resueltos en una máquina determinística en tiempo polinómico.COMPLEJIDAD COMPUTACIONAL La Teoría de la Complejidad Computacional es la parte de la teoría de la computación que estudia los recursos requeridos durante el cálculo para resolver un problema. si un cálculo requiere más espacio de almacenamiento que otro decimos que es más complejo. Por otro lado. Si un cálculo requiere más tiempo que otro decimos que es más complejo y lo llamamos complejidad temporal. y encontrar una correspondencia máxima. P suele ser la clase de problemas computacionales que son “eficientemente resolubles” o “tratables. la mayor parte de los expertos creen que esto es un subconjunto estricto. cálculo del máximo común divisor. conduce a una clasificación de los problemas en dos grandes clases: los problemas con solución y los problemas sin solución. Aunque no está demostrado. en este caso hablamos de una complejidad espacial. Los problemas más difíciles en P son los problemas P-completos: conjunto de problemas de . El estudio de los procesos computacionales. Problema notables en P Una generalización de P es NP. incluyendo las versiones de decisión de programa lineal. es decir. Los recursos comúnmente estudiados son el tiempo (número de pasos de ejecución de un algoritmo para resolver un problema) y el espacio (cantidad de memoria utilizada para resolver un problema). es decir. tenemos que P es un subconjunto de NP. una máquina no puede resolverlos en un tiempo razonable. la relación entre el tamaño del problema y su tiempo de ejecución es polinómica.

Sin embargo. . Intuitivamente. En el artículo de 2002. Es el conjunto de problemas que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista. ahora se sabe que también está en P. es que puede calcular en tiempo polinómico el tiempo polinómico del algoritmo principal reduciéndolo a una máquina más básica. La importancia de esta clase de problemas de decisión es que contiene muchos problemas de búsqueda y de optimización para los que se desea saber si existe una cierta solución o si existe una mejor solución que las conocidas. Dada su importancia. algunos rasgos de esta máquina.2 encontró un algoritmo que trabaja en tiempo polinómico para el problema de saber si un número es primo. Anteriormente se sabía que ese problema estaba en NP. entonces el algoritmo completo es de tiempo polinómico. Manindra Agrawal con sus estudiantes1 . NP es el acrónimo en inglés de nondeterministic polynomial time ("tiempo polinomial no determinado"). COMPLEJIDAD NP En teoría de la complejidad computacional. como el acceso aleatorio. pareciera que para algunos problemas de NP (los del conjunto NPcompleto) no es posible encontrar un algoritmo mejor que simplemente realizar una búsqueda exhaustiva. esto quiere decir que si uno escribe una función con un determinado tiempo polinómico y consideramos que las llamadas a esa misma función son constantes y. de tiempo polinómico. En esta clase están el problema del viajante (también llamado "problema del agente de ventas" o "problema del agente viajero") donde se quiere saber si existe una ruta óptima que pasa por todos los nodos en un cierto grafo y el problema de satisfacibilidad booleana en donde se desea saber si una cierta fórmula de lógica proposicional puede ser cierta para algún conjunto de valores booleanos para las variables. si bien no en NP-completo. se han hecho muchos esfuerzos para encontrar algoritmos que decidan algún problema de NP en tiempo polinómico. "PRIMES is in P". Esto es uno de los motivos principales por los que P se considera una máquina independiente. Propiedades Los algoritmos de tiempo polinómico son cerrados respecto a la composición.decisión de gran utilidad para identificar los problemas que pueden ser resueltos eficientemente en maquinas paralelas.

Por lo tanto. y se lo llamó el teorema de Cook. es fácil demostrar que muchos otros problemas pertenecen a esta clase. la clase de complejidad NP-hard (o NP-complejo. NP contiene todos los problemas pertenecientes a las clases P y NP-C. entonces es posible construir un algoritmo que trabaje en tiempo polinómico para cualquier problema de NP ejecutando primero la reducción de este problema en H y luego ejecutando el algoritmo A. o NP-difícil) es el conjunto de los problemas de decisión que contiene los problemas H tales que todo problema L en NP puede ser transformado polinomialmente en H. Esta clase puede ser descrita como conteniendo los problemas de decisión que son al menos tan difíciles como un problema de NP. Esta afirmación se justifica porque si podemos encontrar un algoritmo A que resuelve uno de los problemas H de NP-hard en tiempo polinómico. después de que este problema se demostrara que es NP-Completo. . y a su vez está contenido en el conjunto de los PSPACE. Este resultado fue demostrado por Stephen Cook en 1971. una amplia clase de problemas en principio inconexos son reducibles unos a otros. En particular. Aún se desconoce si estas inclusiones son estrictas o no.El primer problema natural que se demostró que es completo NP fue el problema de satisfacibilidad booleana.un resultado profundo e inesperado. Sin embargo. La demostración de Cook de que la satisfacibilidad es un problema NP-completo es muy complicada. y por lo tanto resultan en "el mismo problema" -. y si la intersección entre los NP y Co-NP es o no vacía. el mayor problema en ciencias de la computación consiste en responder al siguiente problema de decisión: ¿P=NP? NP-HARD En teoría de la complejidad computacional.

y de L a H por reducción polinómica de Turing. Los problemas NP-completos se pueden transformar unos en otros por una reducción polinómica. Algunas consecuencias de la definición son:  Como NP-completo es el tipo más costoso de la clase NP. entonces H pertenece también a NP-completo porque en este caso existe una transformación poli nómica de Turing que cumple los requisitos de las transformaciones poli nómicas. 1.Asumiendo que el lenguaje L es NP-completo. entonces hay algoritmos para resolver todos los problemas de NP en tiempo polinómico. sin embargo. así que todos los problemas de NP se reducen a H. pero no la propiedad 1. esto significaría que Problema ¿P=NP?. Si hay algún algoritmo polinómico para resolver un problema NP-hard. NP-COMPLETO En teoría de la complejidad computacional. ya que aunque hay serias sospechas sobre que no existen algoritmos para resolver estos problemas en tiempo polinómico. esto implica utilizar dos tipos diferentes de transformaciones: de problemas de decisión NP-completos a un problema NP-completo L por transformaciones polinómicas. esto nunca ha sido demostrado. ∀L' en NP.     Un error común es pensar que NP en NP-hard quiere decir no polinómico. L' ≤ L En el conjunto NP-Hard se asume que el lenguaje L satisface la propiedad 2. Si un problema de optimización H tiene una versión NP-completa. L está en NP 2. Si H pertenece a NP. la clase de complejidad NP-completo es el subconjunto de los problemas de decisión en NP tal que todo problema en . entonces H es NP-hard. el problema H es al menos tan costoso como NP. La clase NP-completo puede definirse alternativamente como la intersección entre NP y NP-hard. pero H no tiene por qué estar en NP y por tanto no tiene por que ser un problema de decisión. los problemas NP-completos pueden ser resueltos en tiempo polinómico por reducción a H.

. El Clay Mathematics Institute está ofreciendo una recompensa de un millón de dólares a quien logre dar una demostración de que P=NP o P≠NP.NP se puede reducir en cada uno de los problemas de NP-completo. haciéndolo uno de los grandes problemas no resueltos de la matemática. aunque el término "NP-completo" como tal no aparece en el documento. En 1972. John Hopcroft llevó a todos los asistentes de la conferencia a consenso concluyendo que el estudio sobre si los problemas NP-completos son resolubles en tiempo polinomial debiera ser pospuesto ya que nadie había conseguido probar formalmente sus hipótesis ni en un sentido ni en otro. En la conferencia de ciencias de la computación hubo un intenso debate entre los científicos de la computación sobre si los problemas NP-completos podían ser resueltos en tiempo polinómico o en una máquina de Turing determinista. Nadie ha sido capaz aun de dar una respuesta final a este problema. El Teorema de Cook demuestra que el problema de satisfacibilidad booleana es un problema NP-completo. Richard Karp demostró que otros problemas eran también NP-completos (ver Lista de 21 problemas NP-completos de Karp). todos los problemas de NP tendrían también una solución en tiempo polinómico (y por lo tanto. La razón es que de tenerse una solución polinómica para un problema NP-completo. Se puede decir que los problemas de NP-completo son los problemas más difíciles de NP y muy probablemente no formen parte de la clase de complejidad P. todos los problemas NP serán intratables). cientos de problemas se han descubierto que pertenecen también a NP-completo por reducciones desde otros problemas que previamente se habían demostrado NP-completos. muchos de estos problemas han sido recogidos en libro de 1979 de Garey and Johnson's Computers and Intractability: A Guide to NP-Completeness. si se demuestra que para un problema NP-completo no existe solución en tiempo polinómico. A partir de los resultados originales del Teorema de Cook. Esto se conoce como el problema ¿P=NP?. El concepto de "NP-completo" fue introducido por Stephen Cook en un artículo titulado 'The complexity of theorem-proving procedures' en las páginas 151-158 de Proceedings of the 3rd Annual ACM Symposium on Theory of Computing en 1971.