You are on page 1of 14

Arturo Daz Prez

Anlisis y Complejidad de Algoritmos

Complejidad Computacional
Arturo Daz Prez

Lenguajes formales
- Gramticas formales
Jerarqua de Chomski
Teora de la complejidad
Una desigualdad computacional
Computabilidad

Anlisis y Diseo de Algoritmos Complexity-1

Tpicos

F Teora de autmatas

F Teora de computabilidad

F Teora de complejidad

F Como evadir la intratabilidad?

Anlisis y Diseo de Algoritmos Complexity-2

Anlisis y Complejidad de Algoritmos 1


Arturo Daz Prez

Lenguajes Formales
FAlfabeto
= { a1, a2, ..., an }, un conjunto finito de smbolos

FCadenas de smbolos
1 =
2 = , s1s2 = (s1, s2)
i = i-1 , s1s2...si = (s1, s2, ..., si)
, palabra vaca es tal que, s = s = s, 0 = { }

= U k
*

k =0

Anlisis y Diseo de Algoritmos Complexity-3

Lenguajes Formales

FCerradura de Kleene
Diccionario
Cerradura Positiva + = * - {}

FLenguaje
Un lenguaje es L *
Los autmatas finitos, autmatas de pila y mquinas
de Turing son caracterizados por su capacidad para
reconocer lenguajes

Anlisis y Diseo de Algoritmos Complexity-4

Anlisis y Complejidad de Algoritmos 2


Arturo Daz Prez

Gramticas Formales

FUna gramtica formal es una estructura


G = < N, T, P, S>, donde
/N es un conjunto finito de smbolos llamados no terminales
/ T es un conjunto finito de smbolos llamados terminales
3 V = N T, vocabulario
/S N, es el smbolo inicial
/P V* V*, es un conjunto de reglas sintcticas o
producciones de la forma
3 (, ) P , deriva

Anlisis y Diseo de Algoritmos Complexity-5

Gramticas Formales

FG = < N, T, P, S>
Derivaciones
/(, ) P , V*, tales que, = 12 y = 1 2 ,
entonces, aplicando la produccin se dice que se sigue de
,

/ se deriva de , * , si 0, 1,..., n, V*, tales


que, 0 = y n = , i < n, i+1 se sigue de i

Anlisis y Diseo de Algoritmos Complexity-6

Anlisis y Complejidad de Algoritmos 3


Arturo Daz Prez

Gramticas Formales

FEl lenguaje generado por G es

L(G) = { N* | se deriva de S, S * }

El conjunto de palabras con smbolos terminales que


se derivan en G del smbolo inicial S

Anlisis y Diseo de Algoritmos Complexity-7

Jerarqua de Chomski
F Sea G = < N, T, P, S> una gramtica

G es de tipo 0 o irrestricta si sus producciones son de la forma


/ , donde N+ y V*
G es de tipo 1 o sensible al contexto si sus producciones son
de la forma
/A , donde , y V* y A N
G es de tipo 2 o libre del contexto si sus producciones son de
la forma
/A , donde V* y A N
G es de tipo 3 o regular si sus producciones son de la forma
/A B, o
/ A donde T* y A,B N

Anlisis y Diseo de Algoritmos Complexity-8

Anlisis y Complejidad de Algoritmos 4


Arturo Daz Prez

Jerarqua de Chomski

FEl lenguaje se dice ser del mismo tipo que la


gramtica que lo genere
LR LLB LSB LI

Anlisis y Diseo de Algoritmos Complexity-9

Lenguajes Regulares

FEl lenguaje reconocido por un autmata finito A


A = < , Q, , q0, F>, es
L(A) = { s * | *(s, q0) F }, donde
/ * es la funcin de transicin extendida, * : * Q Q
3 *( q, a ) = ( q, a ), a }
3 *( q, as ) = *( ( q, a), s ), a , s * }

FEl lenguaje reconocido por un autmata finito se


conoce como un lenguaje regular

Anlisis y Diseo de Algoritmos Complexity-10

Anlisis y Complejidad de Algoritmos 5


Arturo Daz Prez

Lenguajes Regulares

FUn autmata finito tambin puede calcular una


funcin
Sea M = < , , Q, , > una mquina finita con
salida

M calcula la funcin de T pasos


/f(T)M : Q T Q T ,
/f( q0, w1, w2, ..., wT ) = (y1, y2, ...., yT )

Anlisis y Diseo de Algoritmos Complexity-11

Lenguajes Libres del Contexto


FEl lenguaje reconocido por un autmata de pila
AP
AP = < , , Q, , q0, Z0, F>, es

L(A) = { s * | *(q0, s, Z0) = (, qf) qf F }, donde


/ * es la funcin de transicin extendida, * : Q *
Q

El lenguaje reconocido por un autmata de pila no


determinista se conoce como un lenguaje libre del
contexto

Anlisis y Diseo de Algoritmos Complexity-12

Anlisis y Complejidad de Algoritmos 6


Arturo Daz Prez

Lenguajes Libres del Contexto


FEjemplo
G = < N, T, P, S>
/N = { S }, T = {a, b}
/P = { S aSb, S ab }

Una derivacin
S aSb
aaSbb
aaaSbbb
aaaabbbb

Anlisis y Diseo de Algoritmos Complexity-13

Mquinas de Estados Finitos


Salida

Entrada

L Memoria

Estado

Anlisis y Diseo de Algoritmos Complexity-14

Anlisis y Complejidad de Algoritmos 7


Arturo Daz Prez

Una Desigualdad Computacional


F Sea f: Bn Bm, la funcin que calcula un autmata finito
en T pasos
Su estado y T entradas externas contienen las n entradas
Booleanas y sus T salidas contienen las m salidas Booleanas

F La funcin f podra ser calculada por el siguiente circuito

y1 y2 yT

x1 x2 xT
L q1 L q2 L qT
q0

Anlisis y Diseo de Algoritmos Complexity-15

Una Desigualdad Computacional


y1 y2 yT

x1 x2 xT
L q1 L q2 L qT
q0

Sea C(L) el nmero de compuertas utilizadas para


construir L
El circuito tiene TC(L) compuertas
Ya que este circuito no es necesariamente el mejor para
calcular f, entonces
C(f) T C(L)
donde C(f) es el tamao del menor circuito para calcular f
W = TC(L) es el trabajo computacional para calcular f
Anlisis y Diseo de Algoritmos Complexity-16

Anlisis y Complejidad de Algoritmos 8


Arturo Daz Prez

Una Desigualdad para RAM


F Considere una RAM con S bits de memoria
F Si S es grande, como lo es usualmente, C(L) para la
RAM es proporcional a S
F Por lo tanto,
C(f ) kST
F ST, el producto espacio-tiempo, es una medida
importante de complejidad de un problema
F Las funciones con un tamao de circuito grande se
pueden calcular por una RAM solo si tiene una gran
capacidad de almacenamiento, o ejecuta muchos pasos
o ambos.
F Existen resultados similares para mquinas de Turing
Anlisis y Diseo de Algoritmos Complexity-17

Teora de la Complejidad
F Tratable vs. Intratable
Un problema es una cuestin general en donde existe
/descripcin de parmetros
/descripcin de la solucin
Un algoritmo es un procedimiento paso por paso
/una secuencia
/un programa de computadora
/un objeto matemtico
Se busca siempre el algoritmo ms eficiente para resolver un
problema
/el ms rpido (lo ms comn)
/el que ocupa menos memoria (algunas veces)
/la eficiencia se expresa como funcin del tamao del problema

Anlisis y Diseo de Algoritmos Complexity-18

Anlisis y Complejidad de Algoritmos 9


Arturo Daz Prez

El Problema del Agente Viajero


FEjemplo: El problema del agente viajero

FParmetros
conjunto de ciudades
conjunto de longitudes de caminos entre ciudades

FSolucin
El recorrido (tour) ms corto a travs de las ciudades

Anlisis y Diseo de Algoritmos Complexity-19

El Problema del Agente Viajero


FCul es la medida apropiada del tamao del
problema?
m nodos (ciudades)
m(m+1)/2 distancias
Se debe usar una codificacin del problema
/alfabeto o smbolos
/cadenas: abcd//10/5/9//6/9/3
FMedidas
Tamao del problema: longitud de la codificacin
Complejidad en tiempo: cuanto tiempo tarda el
algoritmo en funcin del tamao del problema
Anlisis y Diseo de Algoritmos Complexity-20

Anlisis y Complejidad de Algoritmos 10


Arturo Daz Prez

Complejidad en Tiempo
FQu es un problema tratable?
Un algoritmo de tiempo polinomial es aquel cuya
complejidad en tiempo es O(p(n)) para algn
polinomio p(n)

Un algoritmo de tiempo exponencial es aquel que no


puede ser acotado por una funcin polinomial
(Ej. nlog n)

Un algoritmo polinomial es tratable

Un algoritmo exponencial es intratable


Anlisis y Diseo de Algoritmos Complexity-21

Complejidad en Tiempo
FQu es un problema tratable?

10 20 30 40 50 60
n .00001 seg. .00002 seg. .00003 seg. .00004 seg. .00005 seg. .00006 seg.
n2 .0001 seg. .0004 seg. .0009 seg. .0016 seg. .0025 seg. .00036 seg.
n3 .001 seg. .008 seg. .027 seg. .064 seg. .125 seg. .216 seg.
n5 .1 seg. 3.2 seg. 24.3 seg. 1.7 min 5.2 min 13.0 min
2n 0.001 seg 1.0 seg 17.9 min 12.7 das 35.7 aos 366 siglos
3n 0.059 seg 58 min 6.5 aos 3855 siglos 2x108 siglos 1.3x1013 siglos

Anlisis y Diseo de Algoritmos Complexity-22

Anlisis y Complejidad de Algoritmos 11


Arturo Daz Prez

Efecto de la Aceleracin
FEfecto de la aceleracin o mejoramiento de
procesadores
Considere el tamao mximo del problema que se
puede resolver en una hora

Actual 100 veces ms 1000 veces ms


rpido rpido
n N1 100N1 1000N1
n2 N2 10N2 31.6N2
n3 N3 4.64N3 10N3
n5 N4 2.5N4 3.98N4
2n N5 N5+6.64 N5+9.97
3n N6 N6+4.19 N6+6.29

Anlisis y Diseo de Algoritmos Complexity-23

Un algoritmo eficiente para el


problema del agente viajero
FRespuestas posibles:
Claro, en la tarde est listo !
/Todos los algoritmos conocidos verifican todos los
posibles caminos
3 la bsqueda exhaustiva es exponencial

Probar que no existe tal algoritmo


/Probar intratabilidad es difcil
3 Muchos problemas importantes no tienen algoritmos
tratables conocidos pero tampoco se ha probado su
intratabilidad

Anlisis y Diseo de Algoritmos Complexity-24

Anlisis y Complejidad de Algoritmos 12


Arturo Daz Prez

Un algoritmo eficiente para el


problema del agente viajero
No puedo encontrarlo, soy incapaz de hacerlo
/No adecuada si se quiere conservar el empleo
El problema es NP-completo. No puedo encontrar un
algoritmo eficiente pero tampoco lo ha podido
encontrar ninguna de estas personas famosas ...
/El problema es igual de difcil que otros problemas los cuales
personas inteligentes no han podido resolver eficientemente
Se puede encontrar un algoritmo que se comporte
bien en la mayora de los casos
/Encontrar una solucin aproximada,
/Utilizar aleatorizacin, aplicar paralelismo, etc.

Anlisis y Diseo de Algoritmos Complexity-25

Computabilidad
F En la primera mitad del siglo 20 algunos matemticos
tales como, Alan Turing, Kurt Gdel y Alonzo Church
descubrieron que algunos problemas no pueden ser
resueltos por las computadoras
Ejemplo: Es esta proposicin matemtica cierta o falsa

F Se requiere tener modelos tericos para las


computadoras
Los modelos tericos ayudan a la construccin de
computadoras reales

Anlisis y Diseo de Algoritmos Complexity-26

Anlisis y Complejidad de Algoritmos 13


Arturo Daz Prez

No Decidibilidad
FNo decidibilidad: problemas que no pueden ser
resueltos por las computadoras
Ejemplos:
/Este programa corre para siempre?
/Es este programa correcto?
/Son equivalentes estos dos programas?
/Es este programa ptimo?
/Tiene una ecuacin con una o ms variables y
coeficientes enteros (5x + 15y = 12) una solucin entera?
3 El dcimo problema de Hillbert

Anlisis y Diseo de Algoritmos Complexity-27

Tpicos
F Teora de autmatas
Qu es una computadora?
F Teora de computabilidad
Qu pueden hacer las computadoras?
F Teora de complejidad
Qu hace que algunos problemas sean computacionalmente
difciles y otros fciles?
F Como evadir la intratabilidad?
Aproximacin
Aleatorizacin
Paralelismo

Anlisis y Diseo de Algoritmos Complexity-28

Anlisis y Complejidad de Algoritmos 14

You might also like