Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCristián Espinoza San Martín Modificado hace 10 años
1
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 2: Orden de algoritmos
2
MTP: Metodología y Tecnología de la Programación 2 Introducción al orden Hemos indicado en la unidad anterior que: Una función t n es predice la eficiencia con una precisión limitada por un multiplicador constante Por el principio de indiferencia, el análisis empírico de un algoritmo está limitado en precisión por constantes arbitrarias Ambos hechos implican que tanto el análisis teórico como empírico de la eficiencia de algoritmos sólo predice aproximadamente el comportamiento real n t c2tnc2tn c3tnc3tn c1tnc1tn
3
MTP: Metodología y Tecnología de la Programación 3 Introducción al orden Dado el problema inducido por los multiplicadores, cabría preguntarse si es posible caracterizar el comportamiento de la función t n Nos interesan especialmente los casos para “n” grandes La solución es buscar funciones que acoten (asintóticamente) inferior y superiormente a t n n t c2tnc2tn c3tnc3tn c1tnc1tn ¿?
4
MTP: Metodología y Tecnología de la Programación 4 Cota superior Big O Dada una función f(n), O(f(n)) es el conjunto de funciones de complejidad g(n) para las cuales Existe una constante real positiva c Y un entero no negativo N Tales que para todo n>= N, g(n) <= cf(n) n t g(n) cf(n) 12 1 Condición asintótica 2 Efecto del multiplicador
5
MTP: Metodología y Tecnología de la Programación 5 Cota inferior Dada una función f(n), (f(n)) es el conjunto de funciones de complejidad g(n) para las cuales Existe una constante real positiva c Y un entero no negativo N Tales que para todo n>= N, g(n) >= cf(n) n t g(n) 12 1 Condición asintótica 2 Efecto del multiplicador cf(n)
6
MTP: Metodología y Tecnología de la Programación 6 Introducción a O(f(n)) y (f(n)) son conjuntos de funciones Por ejemplo, n, n+1, n 2, n 2 +n, etc. pertenecen a O(n 2 ) y n 2, n 2 +1, n 2 +n+1, etc. pertenecen a (n 2 ) Una función (o conjunto de funciones) g(n) pertenece simúltáneamente a múltiples O(f(n)) y (f(n)) Por ejemplo, n 2 pertenece a O(n 2 ), O(n 3 ), O(n 4 ), etc. y n 2 pertenece a (n 2 ), (n) y (c), c constante real positiva Por ello, O(f(n)) y (f(n)) caracterizan de forma gruesa a las funciones g(n) Si g(n) O(f(n)), nada se nos dice acerca de Si g(n) (f(n)), nada se nos dice acerca de O
7
MTP: Metodología y Tecnología de la Programación 7 Introducción a Sería interesante obtener algún tipo de acotación que implicara simultáneamente a O y Ello permitiría acotar superior e inferiormente las funciones g(n), lo cual permitiría una mejor caracterización t g(n) cf 2 (n) df 1 (n)
8
MTP: Metodología y Tecnología de la Programación 8 Orden ( ) Para una función f(n) (f(n)) = O(f(n)) (f(n)) (f(n)) representa, por lo tanto, el conjunto de funciones de complejidad g(n) para las cuales existen constantes reales positivas c y d, y un entero N no negativo, tales que para todo n >= N cf(n) <= g(n) <= df(n)
9
MTP: Metodología y Tecnología de la Programación 9 Orden ( ) (f(n)), al acotar superior e inferiormente las funciones g(n), permite identificar que g(n) posee una complejidad “en el orden de” f(n) Asintóticamente, las funciones g(n) tardarán “más o menos lo mismo” que f(n), con la precisión de un multiplicador (u obviando éste, que es precisamente lo que se buscaba) t g(n) cf (n) df (n)
10
MTP: Metodología y Tecnología de la Programación 10 Propiedades del orden ( ) 1.g(n) O(f(n)) f(n) (g(n)) {dualidad} 2.g(n) (f(n)) f(n) (g(n)) {clasificación} 3.Si c >= 0, d > 0, g(n) O(f(n)) y h(n) (f(n)), entonces cg(n) + dh(n) (f(n)) {eliminación de términos de menor peso} 4. {límite}
11
MTP: Metodología y Tecnología de la Programación 11 Notas finales Existen un conjunto de funciones de complejidad de utilización habitual (1), (log n), (n), (n log n), (n 2 ), (n j ), (n k ), (a n ), (b n ), (n!) donde k > j > 2 y b > a > 1 (ver gráficas en doc. anexo)
12
MTP: Metodología y Tecnología de la Programación 12 Notas finales En algunas ocasiones, determinar las funciones de complejidad de un algoritmo es complejo Con cierta frecuencia, si se restringe el análisis a los valores de ‘n’ que cumplen cierta condición p(n), se puede obtener fácilmente una función de complejidad Se define la complejidad asintótica condicional (O, y ) como el conjunto de funciones de complejidad g(n) tales que, dados una función f(n) y un predicado p(n) Existe una constante real positiva c Y un entero no negativo N cumplen que para todo n>= N, p(n) g(n) <= cf(n)
13
MTP: Metodología y Tecnología de la Programación 13 Notas finales Puede suceder que el análisis de la complejidad de un algoritmo no dependa únicamente de un parámetro “n”, sino de varios parámetros simultáneamente Las definiciones de O, y pueden extenderse a múltiples parámetros con la misma formulación de para un único parámetro.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.