Anda di halaman 1dari 14

Anlisis de Algoritmos

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,

Donde t1 tiempo ejecucin de S1 y t2 tiempo de ejecucin de S2


Todos los algoritmos incluyen sentencias condicionales, y que las
sentencias realmente ejecutadas dependan de los datos, por lo tanto ms
que un valor T(N) especfico, se considera un rango de stos.

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

O(t): Orden de complejidad de t.

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:

Una funcin f(n) est asintticamente dominada


por g(n),
g(n) si cuando multiplicamos g(n) por
alguna constante, se obtiene un resultado mayor
que f(n), para los valores grandes de n.
Sean f y g funciones definidas de N en R+. Se dice
que f es de orden g, O(g(n)), si existen dos
constantes positivas C y K tales que:

n k, f es menor o igual que un mltiplo de g


ClaseN4Ing.JorgeMorrisA.2009

AnlisisdeAlgoritmos

Eficiencia
de los Algoritmos
EficienciadelosAlgoritmos
Observaciones

O(f) es un conjunto de funciones, no una funcin.


O(f(n)) esta formado por aquellas funciones g(n)
que crecen a un ritmo menor o igual que el de
f( )
f(n).
Valores de n suficientemente grandes.

ClaseN4Ing.JorgeMorrisA.2009

AnlisisdeAlgoritmos

Eficiencia
de los Algoritmos
EficienciadelosAlgoritmos
Observaciones

Funciones acotadas superiormente por un


mltiplo de ff, (sin constantes multiplicativas)
multiplicativas).
La definicin es aplicable a cualquier funcin de
N en R,
R no slo
l ti
tiempos d
de ejecucin.
j
i

ClaseN4Ing.JorgeMorrisA.2009

Anda mungkin juga menyukai