Complejidad
Complejidad computacional
Gerardo Cruz, Arturo S. Garc´ıa, Uriel O. Moreles
Universidad Nacional Aut´onoma de M´exico
Complejidad
´Indice
1 Complejidad en el tiempo
2 Clases de Problemas
Complejidad
Complejidad en el tiempo
Complejidad de una m´
aquina de Turing
Definici´on
Complejidad
Complejidad en el tiempo
An´
alisis asint´
otico
Definici´on
Sean f, g :N→R+. f(n) =O(g(n))si existen c y n0 tal que
para toda n≥n0
f(n)≤cg(n)
Complejidad
Complejidad en el tiempo
Complejidad
Complejidad en el tiempo
Complejidad
Complejidad en el tiempo
Complejidad de una m´
aquina de Turing
Ejemplo
A={0k1k|k ≥1}. Sea M
1 la MT que reconoce a A descrita, para
una cadena w , como sigue:
1 Escanea a lo largo de la cinta y rechaza si un 0 es encontrado
a la derecha de un 1.
2 Repite el siguente paso mientras que 0s y 1s se encuentren en
la cinta
3 Recorre la cinta marcando un 0 y un 1.
4 Rechaza si quedan 0s despu´es de marcar todos los 1s, o si
Complejidad
Complejidad en el tiempo
Complejidad de una m´
aquina de Turing
Ejemplo
A={0k1k|k ≥1}. Sea M
2 la MT que reconoce a A descrita, para
una cadena w , como sigue:
1 Escanea a lo largo de la cinta y rechaza si un 0 es encontrado
a la derecha de un 1.
2 Repite 3 y 4 mientras que 0s y 1s se encuentren en la cinta.
3 Escanea la cinta checando si el n´umero total de 0s y 1s es par
o impar. Si es impar rechaza.
4 Recorre la cinta marcando cada tercer 0 y luego marcando
cada tercer 1.
5 Si no quedan 0s ni 1s en la cinta acepta. De lo contrario
Complejidad
Complejidad en el tiempo
Complejidad de una m´
aquina de Turing
Ejemplo
A={0k1k|k ≥1}. Sea M
3 la MT que reconoce a A descrita, para
una cadena w , como sigue:
1 Escanea a lo largo de la primera cinta y rechaza si un 0 es
encontrado a la derecha de un 1.
2 Escanea a trav´es de los 0s de la primera cinta hasta encontrar
el primer 1. Al mismo tiempo, copia los 0s en la segunda cinta.
3 Escanea a trav´es de los 1s de la primera cinta hasta el final de
la cadena. Para cada 1 le´ıdo en la primera cinta marca un 0 en la segunda cinta. Si todos los ceros son marcados antes de que todos los 1s se lean, rechaza.
Complejidad Clases de Problemas
La Clase P
Definici´on
Complejidad Clases de Problemas
La Clase P
Ejemplo
¿Es x un n´umero par?
¿Es la multiplicaci´on de n n´umeros dados es mayor a 3500? Dado un grafo conexo, ¿Existe un camino entre el V´ertice A y el V´ertice B con una distancia menor que 20?
Complejidad Clases de Problemas
Complejidad Clases de Problemas
Complejidad Clases de Problemas
La Clase NP
Definici´on
La Clase NP (nondeterministic polynomial time) est´a conformada por todos aquellos problemas que pueden ser solucionados
Complejidad Clases de Problemas
La Clase NP completo
Definici´on
Un problema H es NP-Completo si y s´olo si:
1 H est´a en NP.
2 Todo problema en la clase NP puede ser reducido en tiempo
polinomial a H.
Ejemplo
Complejidad Clases de Problemas
Reducci´
on
Definici´on
Complejidad Clases de Problemas
Clase NP-Duro
Definici´on
La Clase NP-Duro est´a compuesta por aquellos problemas A tal que todo problema en NP puede ser reducido a A en tiempo polinomial y no necesariamente est´an en NP.
Example
Complejidad Clases de Problemas
Complejidad
Complejidad en el espacio
Complejidad en el espacio
Definici´on
Con el t´ermino de complejidad espacial consideramos a la complejidad de los problemas computacionales en t´erminos de la cantidad de espacio (o memoria) que requieran. El tiempo y espacio son dos de las m´as importantes consideraciones cuando buscamos soluciones pr´acticas a muchos problemas
Complejidad
Complejidad en el espacio
Complejidad en el espacio
Complejidad
Complejidad en el espacio
Complejidad en el espacio
Los esquemas de almacenamiento y manipulaci´on de datos dentro de la memoria son indispensables para el desempe˜no de los
Complejidad
Complejidad en el espacio
Complejidad en el espacio
Definici´on
Complejidad
Complejidad en el espacio
Las clases L y NL
Definici´on
L es la clase de lenguajes que son decidibles en espacio logar´ıtmico en una m´aquina de Turing determin´ıstica. Dicho de otra forma:
L=ESPACIO(log n)
NL es la clase lenguajes que son decidibles en espacio logar´ıtmico en una m´aquina de Turing no determin´ıstica. Esto es:
Complejidad
Complejidad en el espacio
Las clases L y NL
Ejemplo
Pensemos en una cinta de entrada de s´olo lectura como un CD-ROM, un dispositivo usado para introducir datos en muchas computadoras personales. A veces, el CD-ROM contiene m´as datos de los que la computadora puede almacenar en su memoria
Complejidad
Complejidad en el espacio
Complejidad en el espacio
Ejemplo
Complejidad
Complejidad
Complejidad en el espacio
Referencias
Michael Sipser (2012)
Introduction to the theory of computation (3rd edition)
John C. Martin (2011)
Introduction to languages and the theory of computation (4th edition)
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (1979)