Académique Documents
Professionnel Documents
Culture Documents
Alicante)
2. Cotas de complejidad
Cota superior, inferior y promedio
3. Notacin asinttica
, ,
1. Nocin de complejidad
DEFINICIN
Posibilidad de hacer
Valoraciones
el algoritmo es: bueno, el mejor, prohibitivo
Comparaciones
el algoritmo A es mejor que el B
3
1. Nocin de complejidad
COMPLEJIDAD TEMPORAL
Externos
La mquina en la que se va a ejecutar El compilador: variables y modelo de memoria La experiencia del programador
Internos
El nmero de instrucciones asociadas al algoritmo
C es la contribucin de los factores externos (constante) f(T) es una funcin que depende de T (talla o tamao del problema)
4
1. Nocin de complejidad
COMPLEJIDAD TEMPORAL
Paso de programa:
Secuencia de operaciones con contenido semntico cuyo coste es independiente de la talla del problema Unidad de medida de la complejidad de un algoritmo
1. Nocin de complejidad
COMPLEJIDAD TEMPORAL. Ejemplos
(ejemplo1) = 1 pasos
(ejemplo2) = 1 pasos
1. Nocin de complejidad
COMPLEJIDAD TEMPORAL. Ejemplos
int ejemplo3 (int n) { int i, j; f (ejemplo3) j = 2; for (i=0; i 2000; i++) j=j*j; for (i=0; i n; i++) { j = j + j; j = j - 2; } return j; }
= 1 + 1 (n + 1) pasos
1. Nocin de complejidad
COMPLEJIDAD TEMPORAL. Ejemplos
int ejemplo4 (int n) { int i, j,k; f (ejemplo4) k = 1; for (i=0; i n; i++) for (j=1; j n; j++) k = k + k; return k; }
= 1 + 1 n (n + 1) pasos
int ejemplo5 (int n) { int i, j,k; k = 1; for (i=0; i n; i++) for (j=i; j n; j++) k = k + k; return k; f (ejemplo5) }
= 1 + i=0..n(j=i..n 1) pasos
8
1. Nocin de complejidad
CONCLUSIONES Slo nos ocuparemos de la complejidad temporal Normalmente son objetivos contrapuestos (complejidad temporal <--> complejidad espacial) Clculo de la complejidad temporal: a priori: contando pasos a posteriori: generando instancias para distintos valores y cronometrando el tiempo Se trata de obtener la funcin. Las unidades de medida (paso, sg, msg, ...) no son relevantes (todo se traduce a un cambio de escala) El n de pasos que se ejecutan siempre es funcin del tamao (o talla) del problema
2. Cotas de complejidad
INTRODUCCIN
funcion BUSCAR var i:natural comienzo i:=1; mientras (i i:=i+1; fmientras si i= X+1 fin
(*No encontrado*)
10
2. Cotas de complejidad
EL PROBLEMA
11
2. Cotas de complejidad
LA SOLUCIN: cotas de complejidad
Cuando aparecen diferentes casos para una misma talla genrica n, se introducen las cotas de complejidad:
Caso peor: cota superior del algoritmo Cs(n) Caso mejor: cota inferior del algoritmo Ci(n) Trmino medio: cota promedio Cm(n)
Todas son funciones del tamao del problema (n) La cota promedio es difcil de evaluar a priori
Es necesario conocer la distribucin de la probabilidad de entrada No es la media de la inferior y de la superior (ni estn todas ni tienen la misma proporcin)
12
2. Cotas de complejidad
EJERCICIO: cotas superior e inferior
funcion BUSCAR var i:natural comienzo i:=1; mientras (i i:=i+1; fmientras si i= X+1 fin (var X:vector[N]; z: N): devuelve N fvar;
X) (Xiz) hacer
(*No encontrado*)
Talla del problema: n de elementos de X: n Existe caso mejor y caso peor? Caso mejor: el elemento est el primero: X1=z ci(n) = 1 Caso peor: el elemento no est: i 1 i |X|, Xi z cs(n) = n+1
13
2. Cotas de complejidad
EJERCICIO: cotas superior e inferior
18 16 14 12 10 8 6 4 2 0
Ci(n)= 1 Cs(n)= n+ 1
Cota promedio?
10
15
Cota Inferior
14
2. Cotas de complejidad
CONCLUSIONES La cota promedio no la calcularemos. Slo se hablar de complejidad por trmino medio cuando la cota superior y la inferior coinciden El estudio de la complejidad se hace para tamaos grandes del problema por varios motivos: Los resultados para tamaos pequeos o no son fiables o proporcionan poca informacin sobre el algoritmo Es lgico invertir tiempo en el desarrollo de un buen algoritmo slo si se prev que ste realizar un gran volumen de operaciones A la complejidad que resulta de tamaos grandes de problema se le denomina complejidad asinttica y la notacin utilizada es la notacin asinttica
15
3. Notacin asinttica
INTRODUCCIN
Notacin matemtica utilizada para representar la complejidad espacial y temporal cuando n Se definen tres tipos de notacin:
Notacin O (big-omicron) caso peor Notacin (omega) caso mejor Notacin (big-theta) caso promedio
16
3. Notacin asinttica
Teorema de la escala de complejidad