Professional Documents
Culture Documents
Complejidad Computacional
Arturo Daz Prez
Lenguajes formales
- Gramticas formales
Jerarqua de Chomski
Teora de la complejidad
Una desigualdad computacional
Computabilidad
Tpicos
F Teora de autmatas
F Teora de computabilidad
F Teora de complejidad
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
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
Gramticas Formales
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
,
Gramticas Formales
L(G) = { N* | se deriva de S, S * }
Jerarqua de Chomski
F Sea G = < N, T, P, S> una gramtica
Jerarqua de Chomski
Lenguajes Regulares
Lenguajes Regulares
Una derivacin
S aSb
aaSbb
aaaSbbb
aaaabbbb
Entrada
L Memoria
Estado
y1 y2 yT
x1 x2 xT
L q1 L q2 L qT
q0
x1 x2 xT
L q1 L q2 L qT
q0
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
FParmetros
conjunto de ciudades
conjunto de longitudes de caminos entre ciudades
FSolucin
El recorrido (tour) ms corto a travs de las ciudades
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)
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
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
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
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
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