You are on page 1of 4

COMPLEJIDAD COMPUTACIONAL

Adrin Camilo Snchez Rodrguez


Prof. Jorge Omar Portilla Jaimes
Anlisis de Algoritmos
Ingeniera de Sistemas
Universidad de Pamplona

La complejidad computacional es el campo de la teora de la computacin que estudia


tericamente la complejidad inseparable a la resolucin de un problema. Los recursos
que normalmente se estudian son:

El Tiempo: Nmero de pasos base de ejecucin de un algoritmo para resolver un


problema.
El Espacio: Cantidad de memoria que utilizamos para solucionar algn problema.

Podemos estudiar al igual otros parmetros, as como el nmero de procesadores que


necesitamos para solucionar el problema en equivalente. La teora de la complejidad se
distingue de la teora de la computabilidad en que sta se necesita de la posibilidad de
manifestar problemas como algoritmos ms efectivos sin tomar en cuenta los recursos
necesarios para esto.

Los problemas que tienen una solucin con orden de complejidad lineal son los
problemas que se resuelven en un tiempo que se vincula linealmente con su tamao.

Los problemas de decisin son clasificados en conjuntos de complejidad comparable


llamados clases de complejidad.

Clases de Complejidad:

Las clases de complejidad ms sencillas se definen teniendo en cuenta factores como:

El Tipo de Problema Computacional: los problemas comnmente utilizados son los


problemas de decisin, pero las clases de complejidad se pueden definir para otros
tipos de problemas.
El Modelo de Computo: el modelo de computo ms comn es la mquina de Turing
determinista, pero muchas clases de complejidad se basan en mquinas de Turing no
deterministas, mquinas de Turing cunticas, etc.

El/Los Recurso(s) Que Est(n) Siendo Acotado(s) y la(s) Cota(s): estas dos
propiedades usualmente se utilizan juntas, por ejemplo, el tiempo polinomial, espacio
logartmico, profundidad constante, etc.

Clase de Complejidad P
Cuando el tiempo de ejecucin de un algoritmo, es por cual se obtiene una solucin al
problema, es menor que el cierto valor calculado partiendo del nmero de variables
incluidas, normalmente son variables de entrada, utilizando una frmula polinmica, se
puede decir que el problema lo podemos resolver en un tiempo polinmico.

La clase de complejidad de los problemas de decisin que se pueden resolver en


tiempo polinmico al calcular partiendo de la entrada gracias a mquina de
Turing determinista es llamada P.

Clase de Complejidad NP
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. Un ejemplo es el clsico problema del viajante.

Clase de Complejidad NP-COMPLETO


Informalmente, los problemas de NP-completos son los problemas ms difciles de NP,
en el sentido de que son los ms probables de no encontrarse en P. Los problemas de
NP-completos son esos problemas NP-duros que estn contenidos en NP.

Clase de Complejidad L: Es el conjunto de los problemas de decisin que pueden ser


resueltos en espacio log(n) (sin contar el tamao de la entrada), donde n es el tamao
de la entrada, por una mquina de Turing determinista tal que la solucin si existe es
nica.
Clase de Complejidad NL: La clase de complejidad NL (espacio logartmico no
determinista) es el conjunto de los problemas de decisin que pueden ser resueltos en
espacio log(n) (sin contar el tamao de la entrada), donde n es el tamao de la entrada,
por una mquina de Turing no determinista tal que la solucin si existe es nica.

P=NP?

La pregunta P=NP es una de las ms importantes en el campo 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.

Mquina de Turing

Es un dispozsitivo de reconocimientos de lenguaje, es ms general que cualquier


autmata finito y cualquier autmata de pila, debido a que ellas pueden reconocer tanto
los lenguajes regulares, como los lenguajes independientes de contexto y adems
muchos otros tipos de lenguajes.

La mquina de Turing (abreviado MT) tiene, un control finito, una cabeza lectora y una
cinta donde puede haber caracteres, y donde eventualmente viene la palabra de
entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende
indefinidamente, llenndose los espacios con el carcter blanco (que representaremos
con t). La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta
que es el extremo izquierdo, la MT la cabeza lectora es de lectura y escritura, por lo que
la cinta puede ser modificada en curso de ejecucin. Adems, en la MT la cabeza se
mueve bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidas
veces sobre un mismo segmento de la cinta.

Este modelo est conformado por un alfabeto de entrada y uno de salida, un smbolo
especial llamado blanco (normalmente b, o 0), un conjunto de estados finitos y un
conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una
funcin de transicin, que recibe un estado inicial y una cadena de caracteres (la cinta,
la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va
leyendo una celda de la cinta, borrando el smbolo, escribir el nuevo smbolo
perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha
(solo una celda a la vez), repitiendo esto segn se indique en la funcin de transicin,
para finalmente detenerse en un estado final o de aceptacin, representando as la
salida.

Diagrama Artstico de una Mquina de Turing


La mquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que
el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las
operaciones que se pueden realizar en esta mquina se limitan a: avanzar el cabezal
lector/escritor hacia la derecha. Avanzar el cabezal lector/escritor hacia la izquierda. El
cmputo es determinado a partir de una tabla de estados de la forma: (estado, valor)
(nuevo estado, nuevo valor, direccin).

Cmo Funciona?

Una mquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT


despus de algunos pasos. Tanto el INPUT como el OUTPUT constan de nmeros en
cdigo binario (ceros y unos). En su versin original la mquina de Turing consiste en
una cinta infinitamente larga con unos y ceros que pasa a travs de una caja. La caja es
tan fina que solo el trozo de cinta que ocupa un bit (0 1) est en su interior. La
mquina tiene una serie de estados internos finitos que tambin se pueden numerar en
binario. Para llevar a cabo algn algoritmo, la mquina se inicializa en algn estado
interno arbitrario.

You might also like