1 / 17

NOTACIONES ASINTÓTICAS

NOTACIONES ASINTÓTICAS. Se utilizan para estudiar tiempos de ejecución u ocupaciones de memoria. Representan la forma en que crece una función. En general no consideran constantes, que no son valores propios de los algoritmos.

tamma
Télécharger la présentation

NOTACIONES ASINTÓTICAS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NOTACIONES ASINTÓTICAS Se utilizan para estudiar tiempos de ejecución u ocupaciones de memoria. Representan la forma en que crece una función. En general no consideran constantes, que no son valores propios de los algoritmos. Son asintóticas pues representan el comportamiento cuando el tamaño de la entrada tiende a infinito, pues para valores grandes es cuando puede haber problemas de tiempo o memoria.

  2. NOTACIÓN O Da una cota superior de la forma en que crece el tiempo de ejecución. DEFINICIÓN: Dada una función f:N→R+, llamamos orden def al conjunto de todas las funciones de N en R+ acotadas superiormente por un múltiplo real positivo de f para valores de n suficientemente grandes. Se denota O(f), y será: O(f)={t: N→R+/ cR+, n0N,  n>=n0 : t(n)<=cf(n)}

  3. NOTACIÓN O Se consideran funciones con dominio en N pues las entradas tendrán tamaños naturales: Valor de un número del que se calcula el factorial, Número de aros a mover en las Torres de Hanoi, Número de datos a ordenar, Número de nodos y aristas de un grafo (en este caso la entrada es NN , que es isomorfo a N) Valor de un número real (en este caso la entrada es su representación en forma binaria)

  4. NOTACIÓN O Se consideran funciones con rango R+pues el tiempo de ejecución no puede ser negativo. Sólo interesa lo que pase asintóticamente (n>=n0), por lo que podríamos considerar funciones no definidas en todo N o que tomen valores negativos para algunos valores de n. No se tienen en cuenta las constantes del tiempo de ejecución (t(n)<=cf(n)).

  5. NOTACIÓN O Al estudiar un tiempo de ejecución, t, se pretende obtener la función f que acote a t siendo lo más cercana posible a ella, por lo que se tiene una relación de orden en el conjunto de los órdenes: O(f)<=O(g) si tO(f) : tO(g) y se intenta encontrar el menor O(f) / tO(f) La relación de orden es una inclusión de conjuntos, por lo que se escribe O(f)<=O(g) o O(f)O(g)

  6. RELACIONES ENTRE ÓRDENES O(c)=O(d), con c y d constantes positivas. O(c)O(n) O(cn+b)=O(dn+e), con c y d constantes positivas. O(p)=O(q), si p y q son polinomios del mismo grado y con coeficiente principal positivo. O(p)O(q), si p y q son polinomios con coeficiente principal positivo y el grado de p es menor que el de q. O(p)O(2n), si p es un polinomio.

  7. NOTACIÓN Ω Da una cota inferior de la forma en que crece el tiempo de ejecución. DEFINICIÓN: Dada una función f:N→R+, llamamos omega def al conjunto de todas las funciones de N en R+ acotadas inferiormente por un múltiplo real positivo de f para valores de n suficientemente grandes. Se denota Ω(f), y será: Ω(f)={t: N→R+/ cR+, n0N,  n>=n0 : t(n)>=cf(n)}

  8. RELACIONES ENTRE OMEGAS Ω(c)= Ω(d), con c y d constantes positivas. Ω(c) Ω(n) Ω(cn+b)= Ω(dn+e), con c y d constantes positivas. Ω(p)= Ω(q), si p y q son polinomios del mismo grado y con coeficiente principal positivo. Ω(p) Ω(q), si p y q son polinomios con coeficiente principal positivo y el grado de p es menor que el de q. Ω(p) Ω(2n), si p es un polinomio.

  9. NOTACIÓN  (orden exacto) Da la forma en que crece el tiempo de ejecución. Son las funciones a las que f acota superior e inferiormente: (f)= Ω(f)O(f) Es equivalente a: (f)={t: N→R+/ c,dR+, n0N,  n>=n0 : cf(n)<=t(n)<=df(n)} No hay relaciones de inclusión.

  10. NOTACIÓN o (o pequeña) Se utiliza para comparar tiempos con el mismo orden. Aparecen constantes, por lo que es necesario hacer suposiciones sobre: conste de las operaciones, conteo de instrucciones, … Se define: o(f)={t: N→R+/ limn→ t(n)/f(n)=1} No hay relaciones de inclusión. (2n)= (3n), pero o(2n)≠o(3n)

  11. PROPIEDADES fO(g) y gO(h)  fO(h) fΩ(g) y gΩ(h)  fΩ(h) fO(g) O(f)O(g) fΩ(g)  Ω(f)Ω(g) O(f)O(g) fO(g) Ω(f)Ω(g) fΩ(g) O(f)=O(g) fO(g) y gO(f) Ω(f)=Ω(g) fΩ(g) y gΩ(f)

  12. PROPIEDADES O(f)=O(g)Ω(f)=Ω(g)  (f)=(g)  f(g) O(f+g)=O(max(f,g)) Ω(f+g)=Ω(max(f,g)) Para calcular los órdenes en un programa sólo es necesario hacerlo de la parte con mayor orden.

  13. COMPARACIÓN DE ÓRDENES limn→ f(n)/g(n)R+O(f)=O(g), Ω(f)=Ω(g), (f)=(g) limn→ f(n)/g(n)=0O(f)O(g), Ω(g) Ω(f) limn→ f(n)/g(n)=+O(g)O(f), Ω(f)Ω(g)

  14. COMPARACIÓN DE ÓRDENES O(1)O(log n)O(n1/2) O(n) O(n log n)  O(n log n log n) O(n2) O(n3) O(2n) O(n!) O(nn) O((log n)p) O(n1/q) Con Ω cambia el sentido de las inclusiones

  15. NOTACIONES CONDICIONALES Algunos algoritmos más fácil de estudiar cuando la entrada cumple alguna restricción (típicamente que sea potencia de 2). DEFINICIÓN: Dada una función f:N→R+, y P:N→{true,false}, llamamos orden defsegún P a: O(f|P)={t: N→R+/ cR+, n0N,  n>=n0 : P(n)  t(n)<=cf(n)}

  16. NOTACIONES CONDICIONALES Para quitar la restricción de ser potencia de un número se aplica el TEOREMA: Si b>=2 es un entero y f:N→R+eventualmente no decreciente (no decreciente a partir de algún valor) y b-armónica (f(bn)O(f(n))) y t:N→ R+eventualmente no decreciente tal que t(n)(f|n es potencia de b), entonces t(n)(f).

  17. NOTACIONES DE VARIOS PARÁMETROS Algoritmos en los que el tiempo depende de más de un parámetro (ej: algoritmos en grafos dependen de número de nodos y de aristas). Dada una función f:Nm→R+, llamamos orden def al conjunto de todas las funciones de Nm en R+ acotadas superiormente por un múltiplo real positivo de f para valores de n1,n2,…, nm suficientemente grandes. O(f)={t: Nm→R+/ cR+,  n1,n2,…, nmN, k1>=n1, k2>=n2, …, km>=nm: t(k1, k2, …, km)<=cf(k1, k2, …, km)}

More Related