AnlisisdeAlgoritmos
Ing.JorgeMorrisA.
2009
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Principio
P i i i de
d Invarianza
I
i
Dos implementaciones diferentes de un mismo
algoritmo,
l
i
no difieren
difi
en eficiencia
fi i
i ms
que en
una constante multiplicativa
Si ambas
b
consumen T1(n)
( ) y T2(n)
( ) unidades
id d de
d
tiempo, en resolver un caso de tamao
n, siempre existe una constante positiva C tal
que T1(n)
( ) CT2(n),
( ) siempre
i
que n sea
suficientemente grande.
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Principio
P i i i de
d Invarianza
I
i
Principio vlido, independientemente de la
tecnologa
l utilizada.
ili d
U
Un cambio
bi de
d mquina
i puede
d resolver
l
un
problema 10 o 100 veces ms rpidamente, pero
slo un cambio de algoritmo, dar una mejora
d l tamao
del
de
d los
l casos.
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Principio de Invarianza
Entonces:
Un algoritmo consume tiempo de orden T(n), si
existe
i
una constante positiva
i i
C y una
implementacin del algoritmo capaz de resolver
cualquier caso del problema en un tiempo
acotado
d
superiormente
i
por
CT( )
CT(n)
segundos, donde n es el tamao del caso
considerado.
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Principio
P i i i de
d Invarianza
I
i
Es decir si se considera que:
S1
for(i=1; i <= N; i++) S2;
Requiere T(N) =t1 + t2*N,
T i (N ) T(N) Tmax(N)
Tmin(N
T
(N)
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Notacin Asinttica
P
Para comparar los
l
algoritmos
l
i
empleando
l
d los
l
tiempos de ejecucin, y las constantes (tambin
llamadas constantes ocultas).
Sirve para comparar funciones.
til
il para ell clculo
l l de
d la
l eficiencia
fi i
i terica
i
d
de
los algoritmos, es decir, para calcular la
cantidad de tiempo que consume una
i
implementacin
l
i de
d un algoritmo.
l
i
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Notacin
N t i Asinttica
A i tti
La notacin asinttica captura la conducta de
l funciones
las
f
i
para valores
l
grandes
d de
d x.
Lo anterior lleva a estudiar el comportamiento
d un algoritmo
de
l
i
cuando
d se fuerza
f
ell tamao
del
d l
problema al que se aplica. Matemticamente
hablando, cuando N tiende a infinito. Es
d i su comportamiento
decir,
i
asinttico.
i i
Por ejemplo:
El termino Dominante de 2x4+3x3+x2-16 es x4
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Notacin Asinttica
y = 3x
3 3+x2-16
16
Para x pequeos no est claro porqu x3 domina
ms que x2, o ms x.
x (los otros trminos se hacen
insignificantes y slo x3 es relevante.
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Notacin Asinttica
y
=3x
3 3+x2-16
16
14
12
10
8
6
XalCubo
Xalcuadrado
Ecuacin
0
2
4
6
8
10
ClaseN4Ing.JorgeMorrisA.2009
10
11
SloX
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Notaciones Asintticas
Indican como crece t, para valores suficientemente grandes (asintticamente)
sin considerar constantes.
9
9 (t):
( ) O
Orden
d inferior
i f i d
de t, u omega d
de t.
9 ((t):
) Orden exacto de t.
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
EficienciadelosAlgoritmos
Orden
Superior)
O d de
d complejidad
l d d de
d f(n):
f( ) O(f) (Cota
(C
S
)
Dada una ffuncin ff: N R+,, llamamos orden de f
al conjunto de todas las funciones de N en R+
acotadas superiormente por un mltiplo real
positivo de f,
f para valores de n suficientemente
grandes.
O(f)= { T:
O(f)
T N R+
R / C R+,
R n0 N,
N n n 0;
T(n) Cf(n) }
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
Eficiencia
de los Algoritmos
EficienciadelosAlgoritmos
Otra definicin:
AnlisisdeAlgoritmos
Eficiencia
de los Algoritmos
EficienciadelosAlgoritmos
Observaciones
ClaseN4Ing.JorgeMorrisA.2009
AnlisisdeAlgoritmos
Eficiencia
de los Algoritmos
EficienciadelosAlgoritmos
Observaciones
ClaseN4Ing.JorgeMorrisA.2009