Tema 7: NOTACIONES ASINTÓTICAS

Slides:



Advertisements
Presentaciones similares
Funciones/Funciones Elementales/Polinomios.
Advertisements

Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
CONCEPTOS Y PROPIEDADES
Propiedades de las Funciones Continuas
El conjunto de los números reales es Completo
Repaso de Conjuntos Conjuntos y subconjuntos
¿ Que es la complejidad de un algoritmo ?
ANÁLISIS DE ESTABILIDAD
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introducción Unidad 5: Matemáticas necesarias.
Ecuaciones diferenciales de 1er orden :
Eficiencia de los algoritmos
RAICES DE POLINOMIOS 4El teorema fundamental del Algebra 4Evaluación 4 Aproximación y recuento de raíces.
1. FUNCIONES. LÍMITES. Depto. Matemáticas – IES Elaios
UNIDAD 1: LOS NúMEROS REALES
Polinomios Definiciones.
Exponentes y Logaritmos.
Ecuaciones de recurrencia
Análisis de Algoritmos
DÍA 05 * 1º BAD CT SUCESIONES Y LÍMITES
Sucesiones..
Análisis y Diseño de Algoritmos. Propiedades : f ( n )  O ( f ( n ) ) a ) O ( f ( n ) )  O ( g ( n ) )  f ( n )  g ( n )
Análisis de Algoritmos
Expresiones Algebraicas
DEFINICIONES Sea (P) el siguiente problema de programación lineal:
Infinito en Límites Si el valor de una función llega a crecer sin límite, cuando “x” tiende a “a”, se establece que la función se hace infinita es decir:
Resolución de recurrencias, por cambio de variable
UNIDAD No. 5 Series Sucesiones.
“LIMITES” MATEMATICAS II
1º BACHILLERATO | Matemáticas © Oxford University Press España, S.A Hacer clic en la pantalla para avanzar LÍMITE DE UNA SUCESIÓN Sucesión convergente:
Divide y vencerás 1. Método general.
Guías Modulares de Estudio Matemáticas IV – Parte B
FUNCIONES EXPONENCIALES Y LOGARITMICAS
A.E.D. 1 Tema 1. Análisis de algoritmos. Programa de teoría Parte I. Estructuras de Datos. 1. Abstracciones y especificaciones. 2. Conjuntos y diccionarios.
4.  Métodos matemáticos.
Matemáticas 4º ESO Opción B
Límite de una función en un punto.
LÍMITES.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 2: Orden de algoritmos.
M.C. Meliza Contreras González 1.  Es normal que un algoritmo se base en procedimientos auxiliares, haga llamadas recursivas para tamaños menores o reduzca.
Capítulo 6. ANÁLISIS DE ALGORITMOS
Análisis de Algoritmos
Análisis de algoritmos Generalidades
TEMA 5: El problema del flujo con costo mínimo
TEMA 4: LÍMITES Y CONTINUIDAD
Límites y continuidad Podríamos empezar diciendo que los límites son importantes en el cálculo, pero afirmar tal cosa sería infravalorar largamente su.
ALGORÍTMICA Ingeniería Técnica en Informática de Gestión y de Sistemas curso Teoría: Domingo Giménez Seminario C: José María Rodríguez Prácticas.
Calculo de Limite de Funciones
SUCESIONES Una sucesión de números reales es una aplicación del conjunto de los números naturales en el conjunto de los números reales: s: N R de.
Escuela de Ciencias Basicas, Tecnología e Ingeniería
Límites y continuidad.
Sesión 5 Tema: Operaciones en la recta real
Matemáticas 4º ESO Opción B
Envolvente convexa Parte 1: Algoritmos
Tema 3: Complejidad Estructura de Datos
CURSO DE MATEMATICAS TEMAS DE MATEMATICAS Matemáti cas 1 Matemá ticas 2 Matemá ticas 4 Matemá ticas 3 Calculo Diferencial Calculo Integral.
LÍMITES Y SUS PROPIEDADES
FUNCIONES POLINÓMICAS Y RACIONALES. INTERPOLACIÓN.
Límites y continuidad Cálculo 1.
JOHNY QUINTERO Tema 2. Límites 1 Límites 1.Índice 2.¿Qué es el Cálculo? 3.El problema del área 4.Introducción a los límites 5.Límites que no existen 6.Definición.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Introducción al Cálculo Infinitesimal Tema 1: Conceptos básicos José R. Narro Introducción al Cálculo Infinitesimal Tema 1: Conceptos básicos José R. Narro.
Introducción Matemática Nivelatoria
 El hecho que una función f tiene un límite L en el punto c, significa que el valor de f puede ser tan cercano a L como se desee, tomando puntos suficientemente.
TEMA 1.  Objetivos.  Conjuntos numéricos.  Funciones reales de una variable real.  Límites de funciones.  Continuidad de funciones.  Derivabilidad.
LIMITES. CÁLCULO DE LÍMITES POR MEDIO DE LOS MÉTODOS GRÁFICO Y NÚMERICO.
Logaritmo En análisis matemático, usualmente, el logaritmo de un número real positivo —en una base de logaritmo determinada— es el exponente al cual hay.
TEMA 3 SUCESIONES Y SERIES.
1 Índice del libro Números reales 1.El conjunto de los números realesEl conjunto de los números reales 2.Representación de los números reales.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Transcripción de la presentación:

Tema 7: 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.

NOTACIÓN O DEFINICIÓN: 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+ / cR+, n0N,  n>=n0 : t(n)<=cf(n)}

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)

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)). R+ c·f(n) O(f)

NOTACIÓN O O(f)<=O(g) si  tO(f) : tO(g) 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)

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.

NOTACIÓN Ω DEFINICIÓ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+ / cR+, n0N,  n>=n0 : t(n)>=cf(n)}

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.

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. R+ f(n) (f)

O(n)  O(n2) (n+1)!  O(n!) n2  O(n!) Ejemplos. ¿Cuáles son ciertas y cuáles no? 3n2  O(n2) n2  O(n3) n3  O(n2) 3n2  (n2) n2  (n3) n3  (n2) 3n2  (n2) n2  (n3) n3  (n2) 2n+1  O(2n) (2+1)n  O(2n) (2+1)n  (2n) O(n)  O(n2) (n+1)!  O(n!) n2  O(n!)

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)

PROPIEDADES fΩ(g) y g Ω(h)  fΩ(h) fO(g) O(f)O(g) 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)

PROPIEDADES  f(g) O(f+g)=O(max(f,g)) Ω(f+g)=Ω(max(f,g)) 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.

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)

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

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+ / cR+, n0N,  n>=n0 : P(n)  t(n)<=cf(n)}

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

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+ / cR+,  n1, n2,…, nm N, k1>=n1, k2>=n2, …, km>=nm : t(k1, k2, …, km)<=cf(k1, k2, …, km)}