You are on page 1of 32

Clasificacin de Funciones de Desempeo Algortmico

Dra. Laura Cruz Reyes Instituto Tecnolgico de Ciudad Madero Mxico


Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Anlisis Terico del Desempeo Algortmico


Tiene como objetivo el estudio terico del desempeo de algoritmos Ayuda a entender escalabilidad Proporciona un lenguaje formal para hablar acerca del desempeo de los algoritmos El anlisis se puede aplicar a diferentes recursos de cmputo: tiempo, espacio, ancho de banda de una red
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Notacin para nmeros


El conjunto de los nmeros naturales se denota con N ={0, 1, 2, 3, ... }. Este conjunto define el dominio de las entradas de los algoritmos. El conjunto de los nmeros reales no negativos se denota con \ *. Este conjunto define el rango de las funciones de desempeo, pues el tiempo de ejecucin no puede ser negativo.

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

Funcin de desempeo
Sea T una funcin de N en \
tiempo T \*
*

(tamao de la entrada al tiempo de ejecucin)

T(n) funcin de desempeo de un algoritmo

Tamao de la entrada n n N
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Funcin de desempeo
Algoritmo menor (n) 1 menor A[0] 2 for i = 1 to n-1 3 if A[i] < menor 4 menor = A[i] 5 return (menor)
Dra. Laura Cruz Reyes

T(n)=n-1

n
Operacin bsica: comparacin de clave T(n) = n-1 comparaciones

1.2 Clasificacin de Funciones de DA

Velocidad de Crecimiento y Tiempo de Ejecucin


T
3,000

2n
2,000

n3/2

5n2 100n

1,000

n
5 10 15 20

Tiempos de ejecucin de cuatro programas de distintas complejidades de tiempo


Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Velocidad de Crecimiento y Tiempo de Ejecucin


Tiempo de ejecucin T(n) Tamao mximo de problema para 103 seg. Tamao mximo de problema para 104 seg. Incremento en el tamao mx. de problema

100n 5n2 n3/2 2n

10 14 12 10

100 45 27 13

10.0 3.2 2.3 1.3

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

Anlisis Asinttico
Se estudia el comportamiento asinttico de la funcin T(n) para analizar la velocidad de crecimiento del tiempo de ejecucin cuando n es suficientemente grande (n ). Interesa el comportamiento asinttico de los algoritmos ya que es para tamaos grandes de n cuando se presentan problemas de tiempo o espacio.
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Anlisis Asinttico
En el limite, dado que las constantes y trminos no-dominantes son despreciables, las grficas de dos funciones se pueden aproximar, sin llegar jams a tocarse.
T
T2(n) = 3 n3 + 60n T1(n) = 10000 n2

n
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Crecimiento del tiempo con el tamao del problema


T

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

n 16

Crecimiento del tiempo con el tamao del problema


T

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

n 1000

Crecimiento del tiempo con el tamao del problema


T

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

n 10000

Tasas de crecimiento asinttico


Funcin
c
log n

log 2 n

n
n log n

nP P N
cn
Dra. Laura Cruz Reyes

c >1

Nombre Constante Logartmica Logartmica cuadrada Lineal Lineal-logartmica Polinomial Exponencial


1.2 Clasificacin de Funciones de DA

Conjuntos de funciones
Sean f y g funciones de N en \ (tamao de la entrada al tiempo de ejecucin)
g(n) funcin de crecimiento
asinttico que define conjuntos
*

T R*
f(n) funcin analizada correspondiente al algoritmo Tamao de la entrada n n N
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Notaciones asintticas
(g): Conjunto de todas las funciones que crecen asintticamente por lo menos tan rpido como g (g es un lmite inferior) Conjunto de todas las funciones que crecen asintticamente con la misma rapidez que g (g es un lmite ajustado) Conjunto de todas las funciones que no crecen asintticamente ms rpido que g (g es un lmite superior)

Omega Teta Omicron O grande

(g): (g):

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

Notaciones asintticas
Ejemplo g= n2
Conjunto de todas las funciones que crecen asintticamente de forma igual o mayor que g (g es un lmite inferior)

n5 n4 n3 n2+3

(n2)

Conjunto de todas las funciones que crecen asintticamente con la misma rapidez que g (g es un lmite ajustado) Conjunto de todas las funciones que crecen asintticamente de forma igual o menor que g (g es un limite superior)
Dra. Laura Cruz Reyes

2n2

(n2)

n1.3 2n+1 n

(n2)

1.2 Clasificacin de Funciones de DA

Notaciones asintticas
Ejemplo g= n2 n5 n4 n3
(n2) (n2)

2n2 n2+3 n1.3 2n+1 n


Dra. Laura Cruz Reyes

n5 (n2) n4 (n2) n3 (n2) 2n2 (n2) 2n2 (n2) 2n2 (n2) n (n2) 2n+1 (n2)

n5 = (n2) n4 = (n2) n3 = (n2) 2n2 = (n2) 2n2 = (n2) 2n2 = (n2) n = (n2) 2n+1 = (n2)

(n2)

Se usa el smbolo de igualdad en lugar del smbolo de pertenencia. Esto es un abuso de la notacin pero simplifica el manejo algebraico de funciones asintticas.

1.2 Clasificacin de Funciones de DA

Rutina generalizada de bsqueda


Algoritmo BsquedaSec Entradas: E, n, K donde E es un arreglo con n entradas y K es el elemento buscado. Salidas: Devuelve respuesta, la ubicacin de K en E. Int BusquedaSec (int [ ] E , int n, int K ) 1. int respuesta, i; 2. respuesta = -1; //Suponer fracaso 3. for (i =0; i < n; i++) 4. if (K= = E[i]) 5. respuesta = i; //Exito 6. break; 7. return respuesta
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Rutina generalizada de bsqueda


Anlisis de peor caso

Operacin bsica: nmero de comparaciones Complejidad del peor caso: W(n) = n Complejidad asinttica del peor caso:
Ajustada (ms cercana a W(n), la exacta) W(n)= (n) Relajada (aproximaciones ciertas que se van alejando de W(n)) W(n)= (n)= (n2)= (n3) W(n)= (n)= (n0.5)= (n0.7)
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Rutina generalizada de bsqueda


Anlisis de comportamiento promedio Operacin bsica: nmero de comparaciones Complejidad del caso promedio: A(n) = 3n/4 + Complejidad asinttica del caso promedio:
Ajustada (ms cercana a A(n), la exacta) A(n)= (n) Relajada (aproximaciones ciertas que se van alejando de A(n)) A(n)= (n)= (n2)= (n3) A(n)= (n)= (n0.5)= (n0.7)
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Multiplicacin de matrices
Algoritmo Multiplicacin de matrices Entradas: Matrices A y B, y enteros m, n, y p, que indican que A es una matriz de m n y B es una matriz de n p Salidas: Matriz C, una matriz de m p. C se pasa al algoritmo, el cual la llena. multMat(A,B,C,m,n,p) 1. for (i =0; i<m; i++) 2. for (j =0; j<p; j++) 3. cij = 0 4. for (k =0; k<p; k++) 5. cij += aik bkj
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Multiplicacin de matrices
Operacin bsica: Multiplicacin de elementos de matrices Complejidad: B(n) = A(n) =W(n) = n3 Complejidad asinttica :
Ajustada (ms cercana a la exacta) B(n) = A(n)= W(n) = (n3) Relajada (aproximaciones ciertas que se van alejando de la exacta) B(n) = A(n)= W(n) = (n3)= (n4)= (n5) B(n) = A(n)= W(n) = (n3)= (n2)= (n)
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

El conjunto O(g)
c g(n) f(n)

t(n)
n n0

Si g es una funcin N en R, se denota por O(g) al conjunto de todas las funciones f, tal que para alguna constante real c > 0 y alguna constante entera no negativa no, f(n) c g(n) para toda n no La pertenencia se lee: f es O de g o f es miembro de O de g
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Pertenencia al conjunto O(g)


Ejemplo: Sea g(n)=n3 y f(n)= 9n2 a) Prueba y error:
n 1 2 3 4 f(n)=n2 9 36 81 144 cg(n)=4n3 4 32 108 192

b) Enunciado demostrativo: Para n0 = 3 y c = 4, f(n) cg(n) para toda n 3, se sigue que f O(g)
cg(n) =4 n3 f(n)= 9n2

T(n)

n0= 3
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

El conjunto (g)
f(n)

T(n)

c g(n)

n n0

Si un g es una funcin N en R, se denota por (g) al conjunto de todas las funciones f, tal que para alguna constante real c > 0 y alguna constante entera no negativa no, f(n) c g(n) para toda n no La pertenencia se lee: f es omega de g, o f es miembro de omega de g
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

El conjunto (g)
c1g(n) f(n) c2g(n) n n0

T(n)

Si un g es una funcin N en R, se denota por (g) al conjunto de todas las funciones f, que estn tanto en O(g) como en (g), para toda n no c1 g(n) f(n) c2 g(n) La pertenencia se lee f es teta g, f es miembro de teta de g

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

Lemas para demostrar pertenencia


T(n)

Una funcin f (g) si


lim
n

(g)
g(n) f(n)

c=

f ( n) = c (0 < c ) g ( n)

Una funcin f (g) si


lim
n

(g)

0<c<

f ( n) = c (0 < c < ) g ( n)

Una funcin f (g) si


lim
n

(g)
c=0

f ( n) = c (0 c < ) g ( n)

n
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Lemas para demostrar pertenencia


T(n)

(g)
f (n)=n3

n3 lim 2 = lim n = n n n
En el lmite, f tiene un valor mucho ms grande que g; g es una cota inferior para f

g(n)=n2 f (n)=2n2

(g)

2n 2 lim 2 = 2 n n
En el lmite, f tiene un valor cercano al de g.

f(n)=n

(g)
n

lim

n 1 = =0 lim n n 2 n n
En el lmite, f tiene un valor mucho ms pequeo que g; g es una cota superior para f

Dra. Laura Cruz Reyes

1.2 Clasificacin de Funciones de DA

Lemas para demostrar pertenencia


Ejemplo: Sea f(n) = 37n2 +120n + 17 y g(n) = n3/2, se demuestra que f O(g).
f ( n) 37 n 2 + 120n + 17 2 3 lim = lim = lim(74 / n + 240 / n + 34 / n )=0 3 n g ( n) n n n /2

Ejemplo: Sea f(n) = n3 y g(n) = 37n2 +120n + 17, se demuestra que f (g).
f ( n) n3 n3 / n3 = lim = lim = lim n g ( n) n 37 n 2 + 120n + 17 n 37 n 2 / n 3 + 120n / n 3 + 17 / n 3 1 1 = = lim n 37 / n + 120 / n 2 + 17 / n 3 0+0+0
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Regla de LHopital
Sea f y g funciones diferenciables, con derivadas f y g respectivamente, tales que
lim f (n) = lim g (n) = .
n n

entonces
lim
n

Ejemplo: Sea f(n) = n2 y g(n) = nlogn, se demuestra que f (g).


f ( n) n2 n = lim = lim lim n g ( n) n n log n n log n lim
n

f ( n) f '(n) = lim g (n) n g '(n)

f ( n) f (n) 1 n = lim = lim = lim = g (n) n g(n) n (log e) / n n log e


1.2 Clasificacin de Funciones de DA

Dra. Laura Cruz Reyes

Funciones asintticas annimas


Las funciones annimas de , y O, permiten eliminar trminos que no son interesantes. Por ejemplo :
MergeSort : T(n) = 2T(n/2) + (n). 2n + O(n) = (n) (n) O(n), g(n) (n) tal que 2n + (n) =g(n). 2n + 3n + 1 = 2n + (n) 2n + 3n + 1 = (n).
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

Bibliografa
Algoritmos Computacionales: Introduccin al anlisis y diseo. Tercera Edicin. Sara Basse, Allen Van Gelder. Addison Wesley. 2002 Cormen T.H., Leiserson C.E., Rivest R.L: Introduction to Algorithms, MIT Press (1990)
Dra. Laura Cruz Reyes 1.2 Clasificacin de Funciones de DA

You might also like