NOTACIONES ASINTÓTICAS

17
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

description

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. - PowerPoint PPT Presentation

Transcript of NOTACIONES ASINTÓTICAS

Page 1: 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.

• 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.

Page 2: NOTACIONES ASINTÓTICAS

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 de f 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+ / cR+, n0N, n>=n0 : t(n)<=cf(n)}

Page 3: NOTACIONES ASINTÓTICAS

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 NN , que es isomorfo a N)

Valor de un número real (en este caso la entrada es su representación en forma binaria)

Page 4: NOTACIONES ASINTÓTICAS

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

Page 5: NOTACIONES ASINTÓTICAS

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 tO(f) : tO(g)

y se intenta encontrar el menor O(f) / tO(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)

Page 6: NOTACIONES ASINTÓTICAS

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.

Page 7: NOTACIONES ASINTÓTICAS

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 de f 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+ / cR+, n0N, n>=n0 : t(n)>=cf(n)}

Page 8: NOTACIONES ASINTÓTICAS

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.

Page 9: NOTACIONES ASINTÓTICAS

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,dR+, n0N, n>=n0 : cf(n)<=t(n)<=df(n)}

• No hay relaciones de inclusión.

Page 10: NOTACIONES ASINTÓTICAS

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)

Page 11: NOTACIONES ASINTÓTICAS

PROPIEDADES• fO(g) y gO(h) fO(h)

fΩ(g) y gΩ(h) fΩ(h)

• fO(g) O(f)O(g)

fΩ(g) Ω(f)Ω(g)

• O(f)O(g) fO(g)

Ω(f)Ω(g) fΩ(g)

•O(f)=O(g) fO(g) y gO(f)

Ω(f)=Ω(g) fΩ(g) y gΩ(f)

Page 12: NOTACIONES ASINTÓTICAS

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.

Page 13: NOTACIONES ASINTÓTICAS

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)

Page 14: NOTACIONES ASINTÓTICAS

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

Page 15: NOTACIONES ASINTÓTICAS

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 de f según P a:

O(f|P)={t: N→R+ / cR+, n0N, n>=n0 :

P(n) t(n)<=cf(n)}

Page 16: NOTACIONES ASINTÓTICAS

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

Page 17: NOTACIONES ASINTÓTICAS

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 de f 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+ / cR+, n1, n2,…, nm N,

k1>=n1, k2>=n2, …, km>=nm :

t(k1, k2, …, km)<=cf(k1, k2, …, km)}