Está en la página 1de 4

Teora de la complejidad de algoritmo

Vctor Daniel Rivera Estacio


1087205813

Universidad de Pamplona
Facultad de ingeniera y arquitectura
Ingeniera de sistemas
Pamplona Norte de Santander
2016-1

Teora de la complejidad de algoritmo


Esta es una rama de la teora de la computacin la cual, su objetivo est centrado en la
clasificacin de los problemas computacionales de acuerdo a su dificultad inherente, y en la
relacin entre las clases de complejidad.

Un problema inherentemente difcil es cuando su solucin requiere de una cantidad


significativa de recursos computacionales, sin importar el algoritmo utilizado. La teora de
la complejidad se formaliza dicha afirmacin, incluyendo modelos de computo
matemticos para poder estudiar estos problemas y el clculo dela cantidad de recursos
necesarios para poder resolverlos, como tiempo y memoria.

Unos de los fines de esta teora es determinar los lmites de que es lo se puede hacer y lo
que no, en un computador. Algunos campos relacionados con esta teora son:

Anlisis de algoritmos: Esta rea es la encargada de analizar o saber la cantidad de


recursos requeridos por un algoritmo en particular para resolver un problema.

Teora de la compatibilidad: Esta rea es la encargada de analizar todos los posibles


algoritmos los cuales pueden ser usado para resolver el mismo problema.

Todo empez por la influencia de la mquina de Turing en 1963, que consiste en simular
la lgica de cualquier algoritmo de computador, y a medida en que las computadoras se
desarrollaban, la mquina de Turing fue la que demostr ser el modelo terico correcto de
computo. Pero se descubri que el modelo bsico de la mquina de Turing fallaba al
calcular el tiempo y la memoria requerida por una computadora, lo cual es un problema
critico hoy en da, y an ms en aquellos tiempos. La idea de medir tiempo y espacio como
una funcin de tamao de entrada, se origin a principios de los 60s y as naci la Teora
de la complejidad de algoritmo o computacional.

En los inicios, los investigadores trataban de entender las nuevas medidas de complejidad,
y como se relacionaban unas con otras. En 1965, defini un "buen" algoritmo
como uno con un tiempo de ejecucin acotado por un polinomio, es
decir, con un tiempo de ejecucin polinmico. Esto condujo al
surgimiento de uno de los conceptos ms importantes de la teora de la
complejidad: la NP-completitud y su pregunta fundamental, si P=NP.

Se habla de que los cientficos de la computacin realizan la diferencia


entre algoritmos de:

Tiempo polinmico Suficientemente eficiente


se define como aquel con funcin de complejidad temporal en
O(p(n)) para alguna funcin polinmica p, donde n denota el
tamao de la entrada.

Tiempo Exponencial muy ineficiente


Cualquier algoritmo cuya funcin de complejidad temporal no
pueda ser acotada como la del tiempo polinmico.
La mayora de los algoritmos de tiempo exponencial son simples
variaciones de una bsqueda exhaustiva, mientras que los algoritmos de
tiempo polinomial, usualmente se obtienen mediante un anlisis ms
profundo de la estructura del problema. En la teora de la complejidad
computacional, existe el consenso de que un problema no est "bien
resuelto" hasta que se conozca un algoritmo de tiempo polinomial que lo
resuelva. Por tanto, nos referiremos a un problema como intratable, si
es tan difcil que no existe algoritmo de tiempo polinomial capaz de
resolverlo.

Clase P
Los problemas de clase P son los que contienen a aquellos problemas
que son solubles en tiempo polinmico por una mquina de Turing
determinista. Existen variantes de la mquina de Turing y es conocido
que la ms dbil de ellas puede simular a las fuerte, agregndole un
tiempo polinmico.

Clase NP
Se habla que hay problemas en los cuales no se ha podido o no se
pueden resolverse en tiempo polinmico, o tambin surge la hiptesis
que quizs estos problemas tengan un algoritmo en tiempo polinomial
que se basan en principios aun no conocidos, o estos problemas no
pueden ser resueltos en tiempo polinmico, ya que son inherentemente
intratables.
El trmino NP proviene de no determinista en tiempo polinmico y
se deriva de una caracterizacin alternativa de esta clase, donde se
utilizan Mquinas de Turing no deterministas. Al igual que la clase P, la
clase NP es insensible a la eleccin del modelo de cmputo no
determinista, debido a que dichos modelos son equivalentes
polinmicamente.

P=NP?
Se cree que P es un subconjunto de NP. Y, efectivamente, cada problema
de decisin resuelto por un algoritmo de tiempo polinomial determinista,
tambin puede ser resuelto por un algoritmo de tiempo polinomial no
determinista. Simplemente se necesita observar que cualquier algoritmo
determinista puede ser utilizado en la etapa de verificacin de un
algoritmo no determinista. La pregunta P=NP es una de las ms
importantes en el rea de las ciencias de la computacin, debido a las
grandes repercusiones que habra, en caso de encontrarse una solucin.
Si P=NP, cualquier problema polinmicamente verificable sera
polinmicamente decidible. La mayora de los investigadores cree que
estas clases no son iguales, porque se ha realizado bastantes esfuerzos
sin xito para encontrar algoritmos de tiempo polinomial para varios
problemas en NP. Los investigadores tambin han tratado de probar que
las clases son distintas, pero eso conllevara a mostrar que no existe un
algoritmo eficiente para reemplazar a la bsqueda por fuerza bruta.

NP-completos
Para hablar de esto primero se llega a algo que se le llama reduccin
polinomial la cual dice que un problema Q puede reducirse a un
problema Q, entonces que cualquier instancia de Q puedes ser
expresadas en instancia Q y cuya solucin de una solucin para la
instancia Q. La reduccin en tiempo polinmica, es el mtodo de
reduccin ms utilizado, ya que la reduccin de un problema a otro ser
reducida en tiempo polinomial.
Ya bien, sabiendo eso se formula la hiptesis, que como los problemas
NP-completos son subconjuntos de NP, y que estos problemas contienen
los problemas ms difciles de NP, en un sentido de que son los que ms
lejos estn de P. Como el problema P=NP an no se ha resuelto, los
problemas NP pueden ser reducido a este conjunto, esto implica que
encontrar un problema NP-completo que pueda ser resuelto en tiempo
polinomial, significara que P=NP. Y he aqu la importancia de este
problema ya que nos dira si P=NP o lo contrario.

También podría gustarte