Sunteți pe pagina 1din 7

COMPLEJIDAD COMPUTACIONAL La Teora de la Complejidad Computacional es la parte de la teora de la computacin que estudia los recursos requeridos durante el clculo

para resolver un problema. Los recursos comnmente estudiados son el tiempo (nmero de pasos de ejecucin de un algoritmo para resolver un problema) y el espacio (cantidad de memoria utilizada para resolver un problema). A estos recursos se les puede aadir otros, tales como el nmero de procesadores necesarios para resolver el problema en paralelo. Si un clculo requiere ms tiempo que otro decimos que es ms complejo y lo llamamos complejidad temporal. Por otro lado, si un clculo requiere ms espacio de almacenamiento que otro decimos que es ms complejo, en este caso hablamos de una complejidad espacial. El estudio de los procesos computacionales, conduce a una clasificacin de los problemas en dos grandes clases: los problemas con solucin y los problemas sin solucin. Los problemas solucionables, requieren gran cantidad de recursos como tiempo y espacio de almacenamiento. Los problemas que tienen una solucin con orden de complejidad lineal son los problemas que se resuelven en un tiempo que se relaciona linealmente con su tamao. Aunque actualmente la mayora de los algoritmos resueltos por las mquinas tienen como mximo una complejidad o costo computacional polinmico, es decir, la relacin entre el tamao del problema y su tiempo de ejecucin es polinmica. stos son problemas agrupados en la clase P. Los problemas con costo no polinomial estn agrupados en la clase NP. Estos problemas no tienen una solucin algortmica, es decir, una mquina no puede resolverlos en un tiempo razonable.

CLASE P Es el conjunto de problemas de decisin que pueden ser resueltos en una mquina determinstica en tiempo polinmico, lo que corresponde intuitivamente a problemas que pueden ser resueltos an el peor de sus casos. P suele ser la clase de problemas computacionales que son eficientemente resolubles o tratables. P es conocido por contener muchos problemas naturales, incluyendo las versiones de decisin de programa lineal, clculo del mximo comn divisor, y encontrar una correspondencia mxima. Problema notables en P Una generalizacin de P es NP, que es la clase de lenguajes decidibles en tiempo polinmico sobre una mquina de Turing no determinista. De forma trivial, tenemos que P es un subconjunto de NP. Aunque no est demostrado, la mayor parte de los expertos creen que esto es un subconjunto estricto. Los problemas ms difciles en P son los problemas P-completos: conjunto de problemas de

decisin de gran utilidad para identificar los problemas que pueden ser resueltos eficientemente en maquinas paralelas. Propiedades Los algoritmos de tiempo polinmico son cerrados respecto a la composicin. Intuitivamente, esto quiere decir que si uno escribe una funcin con un determinado tiempo polinmico y consideramos que las llamadas a esa misma funcin son constantes y, de tiempo polinmico, entonces el algoritmo completo es de tiempo polinmico. Esto es uno de los motivos principales por los que P se considera una mquina independiente; algunos rasgos de esta mquina, como el acceso aleatorio, es que puede calcular en tiempo polinmico el tiempo polinmico del algoritmo principal reducindolo a una mquina ms bsica. COMPLEJIDAD NP En teora de la complejidad computacional, NP es el acrnimo en ingls de nondeterministic polynomial time ("tiempo polinomial no determinado"). Es el conjunto de problemas que pueden ser resueltos en tiempo polinmico por una mquina de Turing no determinista. La importancia de esta clase de problemas de decisin es que contiene muchos problemas de bsqueda y de optimizacin para los que se desea saber si existe una cierta solucin o si existe una mejor solucin que las conocidas. En esta clase estn el problema del viajante (tambin 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 frmula de lgica proposicional puede ser cierta para algn conjunto de valores booleanos para las variables. Dada su importancia, se han hecho muchos esfuerzos para encontrar algoritmos que decidan algn problema de NP en tiempo polinmico. Sin embargo, pareciera que para algunos problemas de NP (los del conjunto NPcompleto) no es posible encontrar un algoritmo mejor que simplemente realizar una bsqueda exhaustiva. En el artculo de 2002, "PRIMES is in P", Manindra Agrawal con sus estudiantes1 ,2 encontr un algoritmo que trabaja en tiempo polinmico para el problema de saber si un nmero es primo. Anteriormente se saba que ese problema estaba en NP, si bien no en NP-completo, ahora se sabe que tambin est en P.

El primer problema natural que se demostr que es completo NP fue el problema de satisfacibilidad booleana. Este resultado fue demostrado por Stephen Cook en 1971, y se lo llam el teorema de Cook. La demostracin de Cook de que la satisfacibilidad es un problema NP-completo es muy complicada. Sin embargo, despus de que este problema se demostrara que es NP-Completo, es fcil demostrar que muchos otros problemas pertenecen a esta clase. Por lo tanto, una amplia clase de problemas en principio inconexos son reducibles unos a otros, y por lo tanto resultan en "el mismo problema" -- un resultado profundo e inesperado. NP contiene todos los problemas pertenecientes a las clases P y NP-C, y a su vez est contenido en el conjunto de los PSPACE. An se desconoce si estas inclusiones son estrictas o no, y si la interseccin entre los NP y Co-NP es o no vaca. En particular, el mayor problema en ciencias de la computacin consiste en responder al siguiente problema de decisin: P=NP?

NP-HARD En teora de la complejidad computacional, la clase de complejidad NP-hard (o NP-complejo, o NP-difcil) es el conjunto de los problemas de decisin 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 decisin que son al menos tan difciles como un problema de NP. Esta afirmacin se justifica porque si podemos encontrar un algoritmo A que resuelve uno de los problemas H de NP-hard en tiempo polinmico, entonces es posible construir un algoritmo que trabaje en tiempo polinmico para cualquier problema de NP ejecutando primero la reduccin de este problema en H y luego ejecutando el algoritmo A.

Asumiendo que el lenguaje L es NP-completo, 1. L est en NP 2. L' en NP, L' L En el conjunto NP-Hard se asume que el lenguaje L satisface la propiedad 2, pero no la propiedad 1. La clase NP-completo puede definirse alternativamente como la interseccin entre NP y NP-hard. Algunas consecuencias de la definicin son:

Como NP-completo es el tipo ms costoso de la clase NP, el problema H es al menos tan costoso como NP, pero H no tiene por qu estar en NP y por tanto no tiene por que ser un problema de decisin. Los problemas NP-completos se pueden transformar unos en otros por una reduccin polinmica, los problemas NP-completos pueden ser resueltos en tiempo polinmico por reduccin a H, as que todos los problemas de NP se reducen a H; sin embargo, esto implica utilizar dos tipos diferentes de transformaciones: de problemas de decisin NP-completos a un problema NP-completo L por transformaciones polinmicas, y de L a H por reduccin polinmica de Turing. Si hay algn algoritmo polinmico para resolver un problema NP-hard, entonces hay algoritmos para resolver todos los problemas de NP en tiempo polinmico, esto significara que Problema P=NP?. Si un problema de optimizacin H tiene una versin NP-completa, entonces H es NP-hard. Si H pertenece a NP, entonces H pertenece tambin a NP-completo porque en este caso existe una transformacin poli nmica de Turing que cumple los requisitos de las transformaciones poli nmicas.

Un error comn es pensar que NP en NP-hard quiere decir no polinmico, ya que aunque hay serias sospechas sobre que no existen algoritmos para resolver estos problemas en tiempo polinmico, esto nunca ha sido demostrado.

NP-COMPLETO En teora de la complejidad computacional, la clase de complejidad NP-completo es el subconjunto de los problemas de decisin en NP tal que todo problema en

NP se puede reducir en cada uno de los problemas de NP-completo. Se puede decir que los problemas de NP-completo son los problemas ms difciles de NP y muy probablemente no formen parte de la clase de complejidad P. La razn es que de tenerse una solucin polinmica para un problema NP-completo, todos los problemas de NP tendran tambin una solucin en tiempo polinmico (y por lo tanto, si se demuestra que para un problema NP-completo no existe solucin en tiempo polinmico, todos los problemas NP sern intratables). El concepto de "NP-completo" fue introducido por Stephen Cook en un artculo titulado 'The complexity of theorem-proving procedures' en las pginas 151-158 de Proceedings of the 3rd Annual ACM Symposium on Theory of Computing en 1971, aunque el trmino "NP-completo" como tal no aparece en el documento. En la conferencia de ciencias de la computacin hubo un intenso debate entre los cientficos de la computacin sobre si los problemas NP-completos podan ser resueltos en tiempo polinmico o en una mquina de Turing determinista. 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 haba conseguido probar formalmente sus hiptesis ni en un sentido ni en otro. Esto se conoce como el problema P=NP?. Nadie ha sido capaz aun de dar una respuesta final a este problema, hacindolo uno de los grandes problemas no resueltos de la matemtica. El Clay Mathematics Institute est ofreciendo una recompensa de un milln de dlares a quien logre dar una demostracin de que P=NP o PNP. El Teorema de Cook demuestra que el problema de satisfacibilidad booleana es un problema NP-completo. En 1972, Richard Karp demostr que otros problemas eran tambin NP-completos (ver Lista de 21 problemas NP-completos de Karp). A partir de los resultados originales del Teorema de Cook, cientos de problemas se han descubierto que pertenecen tambin a NP-completo por reducciones desde otros problemas que previamente se haban 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.

S-ar putea să vă placă și