Está en la página 1de 34

Anlisis de algoritmos

Tema 05: Notacin asinttica


Solicitado: Tarea 03: Graficacin de ordenes de complejidad M. en C. Edgardo Adrin Franco Martnez http://www.eafranco.com edfrancom@ipn.mx
@efranco_escom

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.

Demostrar que domina asintticamente a


( 0, 0

ii.

Demostrar que no domina asintticamente a

0, 0 () , , )

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Dominio asinttico (Ejemplo 1)

Ejemplo 1: Sean = y = 3 funciones de a .

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

Ejemplo 1: Sean = y = 3 funciones de a .


i.
0, 0 () , Substituyendo () y ()

Demostrar que domina asintticamente a

Sustituyendo y en cada lado de la desigualdad 3 > Simplificando 2 > 2 > > y

0, 0, () > ()

Si se toma > , ambas desigualdades se cumplen para toda 0 0,

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Ejemplo 1: Sean = y = 3 funciones de a .


ii.
( 0, 0 Aplicando la negacin se tiene

Demostrar que no domina asintticamente a

, )

Ejemplo 1: Sean = y = 3 funciones de a .

10

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

i.

Demostrar que d. a. Demostrar que d. a.

ii.

0, 0 () , 0, 0 ,

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Dominio asinttico (Ejemplo 2)

Ejemplo 2: Sea () una funcin de a y () = () > 0 .

11

i.

Demostrar que d. a.

Pero || = |||| por lo tanto

0, 0 () , () || || ,

Como > 0; entonces () |()| ,


1

Tomando = , y = 0 se tiene () , 0 . .

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Ejemplo 2: Sea una funcin y() = () > 0 .

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

Ejemplo 2: Sea una funcin y() = () > 0 .

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

Dominio asinttico a la funcin complejidad

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

La definicin formal es:


=

i.e. que para > 0 , es menor o igual a un mltiplo de , decimos que: =

Definicin: Sean y funciones de a . Si existen constantes y 0 tales que: x > 0 , | f (x) | | g (x) |

> 0, 0 > 0 | x > 0 , | f () | | g () |

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Cota Superior: Notacin mayscula

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

= > 0, 0 > 0 | x > 0 , | f () | | g () |

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

Ejemplo 3: Muestre que n = 33 + 52 9 = 3


Partiendo de:

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 () |

x > 0 , > 0 , f (x) | | g (x) |

La definicin formal es:


=

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Cota Superior no ajustada: Notacin minuscula

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 ()

0 > 0 x > 0 , c > 0, f () | | g () |

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

> 0, 0 > 0 | x > 0 , c| g() | | f () |

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Cota Inferior: Notacin

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

= 1 > 0, 2 > 0, 0 > 0 | x > 0 , 1 | g() | | f () | 2 | g() |


Grande dice que ambas funciones se dominan mutuamente, en otras palabras, son asintticamente equivalentes.

Anlisis de algoritmos Tema 05: Notacin asinttica Prof. Edgardo Adrin Franco Martnez

Cota ajustada asinttica: Notacin

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

Observaciones sobre las cotas asintticas

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

Ordenes de complejidad (Cota superior)


Dado que las funciones complejidad estn en el conjunto de funciones que van de de a ; es posible clasificar los algoritmos segn el orden de su funcin complejidad. Gran parte de los algoritmos tienen complejidad que cae en uno de los siguientes casos:

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

Tarea 03: Graficacin de ordenes de complejidad


1.

Dados los ordenes de complejidad graficar cada uno de estos de manera separada para un rango de 0 < < 10,000,000.

34

También podría gustarte