Beruflich Dokumente
Kultur Dokumente
Introduccin Asntota Dominio asinttico Dominio asinttico a la funcin complejidad Notacin de orden (Cotas asintticas)
Cota Superior: Notacin mayscula Cota Superior no ajustada: Notacin minscula Cota Inferior: Notacin Cota ajustada asinttica: Notacin
Diferencia entre y
Ejemplo 1 Ejemplo 2
Observaciones sobre las cotas asintticas Ordenes de complejidad (Cota superior) Tarea 03: Graficacin de ordenes de complejidad
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Contenido
Para valores suficientemente pequeos de , el coste de ejecucin de cualquier algoritmo es pequeo, incluyendo los algoritmos ineficientes; i.e. la eleccin del algoritmo no es un problema crtico para problemas de pequeo tamao. El anlisis de algoritmos se realiza para valores grandes de . Para lo cual se considera el comportamiento de sus funciones de complejidad para valores grandes de , es decir se estudia el comportamiento asinttico de de (), lo cul permite conocer el comportamiento en el lmite del coste cuando crece.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Introduccin
El costo para obtener una solucin de un problema concreto aumenta con el tamao del problema.
Tambin se puede decir que es la curva la que se aproxima continuamente a la recta; o que ambas presentan un comportamiento asinttico.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Asntota
Se le llama asntota a una lnea recta que se aproxima continuamente a otra funcin o curva; es decir que la distancia entre las dos tiende a cero, a medida que se extienden indefinidamente.
En otros trminos, podemos decir que si una funcin domina a otra, su velocidad de crecimiento es mayor o igual. Puesto que las funciones complejidad son funciones con dominio ( ), y contradominio ; los conceptos y las propiedades de dominio asinttico proporcionan una manera conveniente de expresarlas y manipularlas.
() ,
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Dominio asinttico
Sean y funciones de a . Se dice que domina asintticamente a o que es dominada asintticamente por ; si 0 0 tales que:
Grficas de las funciones () y () ,donde es el valor a partir del cual () es mayor que () y esta relacin de magnitud se conserva conforme crece.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
i.
ii.
0, 0 () , , )
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Si se toman = 1 y = 1, las desigualdades anteriores se cumplen, por lo tanto, y existen, y en consecuencia domina asintticamente a .
m 3 ,
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
0, 0, () > ()
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
, )
10
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
i.
ii.
0, 0 () , 0, 0 ,
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
11
i.
Demostrar que d. a.
0, 0 () , () || || ,
Tomando = , y = 0 se tiene () , 0 . .
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
de
12
i.
Demostrar que d. a.
Esto es
0, 0
Tomando = = 0 se tiene
() |()| ,
() |()| , 0 . .
13
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
de
i.e. () domina asintticamente a cualquier (); dicho de otra manera la demanda de recursos se va a regir por el modelo de crecimiento que observe ().
() = () | | | |
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Cuando se hace el anlisis terico para obtener la funcin complejidad () que caracterice a un algoritmo, se est obteniendo un modelo de comportamiento para la demanda de recursos en funcin del parmetro ; de tal forma que si () es la cantidad real del recurso que se consume para una implantacin especfica del algoritmo se tiene que:
14
La notacin asinttica captura el comportamiento de la funcin para valores grandes de . Se consideran las funciones asintticamente no negativas. Las notaciones no son dependientes de los tres casos anteriormente vistos, es por eso que una notacin que determine el peor caso puede estar presente en una o en todas las situaciones.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Notacin asinttica
El inters principal del anlisis de algoritmos radica en saber cmo crece la demanda de recursos, cuando el tamao del problema crece. Esto es la eficiencia asinttica del algoritmo. Se denomina asinttica porque analiza el comportamiento de las funciones en el lmite, es decir, su tasa de crecimiento.
15
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Notacin de orden
Cuando describimos cmo es que el nmero de operaciones () depende del tamao ; lo que nos interesa es encontrar el patrn de crecimiento o cota para la funcin complejidad y as caracterizar al algoritmo; una vez hecha esta caracterizacin podremos agrupar las funciones de acuerdo al nmero de operaciones que realizan.
16
Definicin: Sean y funciones de a . Si existen constantes y 0 tales que: x > 0 , | f (x) | | g (x) |
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
La notacin O (Omicron mayscula) se utiliza para comparar funciones. Dada una funcin , se desea estudiar funciones que a lo sumo crezcan tan deprisa como .
17
18
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Sustituyendo
, 0 | x > 0 , | f () | | g () |
|33 + 52 9| |3 | 33 + 52 9 3 52 ( 3)3 +9
Agrupando
Si = 5 0 = 0, > 0 52 23 + 9 33 + 52 9 = 3
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
19
Ejemplo 3: 52 23 + 9 33 + 52 9 = 3
20
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Definicin: Sean y funciones de a . Si para toda constante > 0 y una constante 0 se cumple que: i.e. que para > 0 , es menor o igual a todos los mltiplos > 0 de , decimos que: =
0 > 0 x > 0 , c > 0, f () | | g () |
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
La cota superior asinttica dada por la notacin puede o no ser ajustada asintticamente. La cota 2n = O(n) es ajustada asintticamente, pero la cota 2n = o(n) no lo es. Se emplea la notacin o para denotar una cota superior que no es ajustada asintticamente.
21
= ()
22
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
()
23
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Para la desigualdad se mantiene para todas las constantes positivas, mientras que para la desigualdad se mantiene slo para algunas constantes positivas.
= = > 0, 0 > 0 | x > 0 , | f () | | g () |
Intuitivamente en la notacin , la funcin () se vuelve insignificante con respecto a () a medida que se acerca a infinito () = lim ()
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Diferencia entre y
Las notaciones de y son similares. La diferencia principal es, que en () = (()), la cota 0 () () se cumple para alguna constante > 0 , pero en () = (()), la cota 0 () () se cumple para todas las constantes > 0.
24
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
La notacin Es el reverso de , i.e es una funcin que sirve de cota inferior de otra funcin cuando el argumento tiende a infinito
25
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
La cota ajustada asinttica o de orden exacto es una funcin que sirve de cota tanto superior como inferior de otra funcin cuando el argumento tiende a infinito.
26
2. Para un algoritmo dado se pueden obtener tres funciones que miden su tiempo de ejecucin, que corresponden a sus casos mejor, medio y peor, y que denominaremos respectivamente Tm(n), T1/2(n) y Tp(n), para cada una de ellas podemos dar hasta 4 cotas asintticas (O, o, , ) de crecimiento, por lo que se obtiene un total de 12 cotas para el algoritmo.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
1. La utilizacin de las cotas asintticas para comparar funciones de tiempo de ejecucin se basa en la hiptesis de que son suficientes para decidir el mejor algoritmo, prescindiendo de las constantes de proporcionalidad. Sin embargo, esta hiptesis puede no ser cierta cuando el tamao de la entrada es pequeo.
27
4. Por ltimo, diremos que un algoritmo es de orden exacto (f) si su tiempo de ejecucin en el caso medio T1/2(n) es de este orden.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
3. Para simplificar, dado un algoritmo diremos que su orden de complejidad es O(f) si su tiempo de ejecucin para el peor caso es de orden O de f, es decir, Tp(n) es de orden O(f). De forma anloga diremos que su orden de complejidad para el mejor caso es (g) si su tiempo de ejecucin para el mejor caso es de orden de g, es decir, Tm(n), es de orden (g).
28
() ( ) () ( ) ( ) ( ) (!)
() Complejidad constante (log ) Complejidad logartmica () Complejidad lineal ( log ) Complejidad n log n ( ) Complejidad cuadrtica ( ) Complejidad cubica ; > Complejidad exponencial (!) Complejidad factorial
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
29
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
() ( ) () ( ) ( ) ( ) (!)
30
= log Complejidad logartmica Los algoritmos de complejidad logartmica, habitualmente son algoritmos que resuelven un problema transformndolo en problemas menores. = Complejidad lineal Los algoritmos de complejidad lineal generalmente tratan de manera constante cada n del problema por lo que si n dobla su tamao el algoritmo tambin dobla el nmero de pasos. = log Complejidad n log n Los algoritmos de complejidad n log n generalmente dividen un problema en problemas ms sencillos de resolver para finalmente combinar las soluciones obtenidas.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
= Complejidad constante Los algoritmos de complejidad constate ejecutan siempre el mismo numero de pasos sin importar cuan grande es n.
31
= ( ) Complejidad cubica Los algoritmos de complejidad cubica son tiles para resolver problemas pequeos p.g. si n=100 el nmero de operaciones es de 1,000,000. ; > Complejidad exponencial Los algoritmos de complejidad exponencial no son tiles desde el punto de vista practico, aparecen cuando un problema se soluciona empleando fuerza bruta.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
= ( ) Complejidad cuadrtica Los algoritmos de complejidad cuadrtica aparecen cuando los datos se procesan por parejas, en la mayora de los casos en bucles anidados.
32
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
(!) Complejidad factorial Un algoritmo de complejidad factorial generalmente aparece cuando el problema tambin es resuelto por fuerza bruta y es un problema complejo por definicin; o cuando se maneje de mala manera un algoritmo recursivo.
33
2.
Confronte en pares a todos los ordenes en un rango de 0 < < 10,000 y de una justificacin de cual elegira segn cada par confrontado.
() Complejidad constante (log ) Complejidad logartmica () Complejidad lineal ( log ) Complejidad n log n ( ) Complejidad cuadrtica ( ) Complejidad cubica ; > Complejidad exponencial (!) Complejidad factorial
*Se entregar antes del da Viernes 06 de Septiembre de 2013 (23:59:59 hora limite). *Incluir la redaccin de cada ejercicio *Portada y encabezados de pagina.
Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez
Dados los ordenes de complejidad graficar cada uno de estos de manera separada para un rango de 0 < < 10,000,000.
34