Está en la página 1de 81

Notacin Asinttica 2

mat-151

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

xamen Rpido (10 minutos)

Cada operacin fundamental usa c milisegundos, cunto tiempo toma contar hasta 1,000,000? Cual es el valor de N?Cul es el rden de complejidad en funcin de N?
int i,k,count=0; for(i=0; i<N; i++) for(k=0; k<N; k++) count ++;

Alonso Ramirez Manzanares Computacin y Algoritmos 07.02.2012

Notacin asinttica
Comportamiento asinttico: comportamiento cuando tamao del problema. , donde n es el

Tres notaciones bsicas:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Notacin asinttica (equivalentes)

Ejemplo: es una relacin de equivalencia:

Para n grande son muy parecidas

! Transitiva: ! Reexiva: ! Simtrica:

Idea bsica: tomar en cuenta solo los trminos principales, ignorando aquellos que crecen ms lento.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

16

Notacin asinttica (equivalentes)

Ejemplo: es una relacin de equivalencia:

Para n grande son muy parecidas

! Transitiva: ! Reexiva: ! Simtrica:

Idea bsica: tomar en cuenta solo los trminos principales, ignorando aquellos que crecen ms lento.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

16

Notacin asinttica (dominada)

i.e.,

est eventualmente acotado por un valor nito.

Idea bsica: f crece ms lento que g, o tan rpido como g.

Transitivo: Reexivo:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Notacin asinttica (respectivamente acotadas)

! Ejemplos: ! ! !

es una relacin de equivalencia.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Notacin O grande

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Notacin O grande

Se lee: T(n) es de orden f(n)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Notacin O grande

Se lee: T(n) es de orden f(n) T(n) no crece ms rpido que f(n)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Notacin O grande

Se lee: T(n) es de orden f(n) T(n) no crece ms rpido que f(n)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Notacin O grande

90.0

67.5

45.0

Funcion Notacion O grande

22.5

0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1

1. 2 1. 3 1. 4 1. 5 1. 6 1. 7 1. 8 1. 9 2

Alonso Ramirez Manzanares

2. 2 2. 3 2. 4 2. 5 2. 6 2. 7 2. 8 2. 9 3

Computacin y Algoritmos

07.02.2012

20

Notacin O grande

porque haciendo (c,n0) = (3,2) vericamos que para n!2


90.0

67.5

45.0

Funcion Notacion O grande

22.5

0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1

1. 2 1. 3 1. 4 1. 5 1. 6 1. 7 1. 8 1. 9 2

Alonso Ramirez Manzanares

2. 2 2. 3 2. 4 2. 5 2. 6 2. 7 2. 8 2. 9 3

Computacin y Algoritmos

07.02.2012

20

Notacin O grande

porque haciendo (c,n0) = (3,2) vericamos que para n!2


90.0

67.5

45.0

Funcion Notacion O grande

22.5

0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1

1. 2 1. 3 1. 4 1. 5 1. 6 1. 7 1. 8 1. 9 2

Alonso Ramirez Manzanares

2. 2 2. 3 2. 4 2. 5 2. 6 2. 7 2. 8 2. 9 3

Computacin y Algoritmos

07.02.2012

20

Notacin O grande

porque haciendo (c,n0) = (3,2) vericamos que para n!2


90.0

67.5

45.0

Funcion Notacion O grande

22.5

0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1

1. 2 1. 3 1. 4 1. 5 1. 6 1. 7 1. 8 1. 9 2

Alonso Ramirez Manzanares

2. 2 2. 3 2. 4 2. 5 2. 6 2. 7 2. 8 2. 9 3

Computacin y Algoritmos

07.02.2012

20

Notacin O grande
La notacin O grande permite denir un lmite superior al crecimiento de una funcin. Establece un orden entre funciones:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin O grande
Considerar funciones que sean lo ms pequeas posibles:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin O grande
Considerar funciones que sean lo ms pequeas posibles:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin O grande
Considerar funciones que sean lo ms pequeas posibles:

Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden olvidar los trminos de grado inferior y las constantes.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin O grande
Considerar funciones que sean lo ms pequeas posibles:

Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden olvidar los trminos de grado inferior y las constantes. Usar la clase de funciones ms chica: 2n es O(n), aunque sea tambin O(n2)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin O grande
Considerar funciones que sean lo ms pequeas posibles:

Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden olvidar los trminos de grado inferior y las constantes. Usar la clase de funciones ms chica: 2n es O(n), aunque sea tambin O(n2) Usar la expresin ms simple

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin !

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin !
Presenta la cota asinttica inferior de una funcin.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin !
Presenta la cota asinttica inferior de una funcin.

Se usa generalmente para acotar el tiempo de ejecucin en el mejor caso.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin !
Presenta la cota asinttica inferior de una funcin.

Se usa generalmente para acotar el tiempo de ejecucin en el mejor caso. Cuando decimos que el tiempo de ejecucin de un algoritmo es !(g(n)), decimos que sin importar la entrada de tamao n, el tiempo de clculo para esa entrada es al menos una constante multiplicativa de g(n), para una n sucientemente grande.
Alonso Ramirez Manzanares Computacin y Algoritmos 07.02.2012
7

Notacin !
Presenta la cota asinttica inferior de una funcin.

Se usa generalmente para acotar el tiempo de ejecucin en el mejor caso. Cuando decimos que el tiempo de ejecucin de un algoritmo es !(g(n)), decimos que sin importar la entrada de tamao n, el tiempo de clculo para esa entrada es al menos una constante multiplicativa de g(n), para una n sucientemente grande.
Alonso Ramirez Manzanares Computacin y Algoritmos 07.02.2012
7

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

Notacin

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

10

Notacin asinttica (propiedades)


Transitividad

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

11

Notacin asinttica (propiedades)


Transitividad

Prueba:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

11

Notacin asinttica (propiedades)


Suma

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

12

Notacin asinttica (propiedades)


Suma

Prueba

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

12

Notacin asinttica (propiedades)


Producto

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

13

Notacin asinttica (propiedades)


Producto

Prueba

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

13

Notacin asinttica (propiedades)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

14

Ejemplos de anlisis de algortimos

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria. Suponemos que la entrada son nmeros enteros

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria. Suponemos que la entrada son nmeros enteros Compaa de tarjetas de crdito, N tarjetas robadas, M transacciones a vericar.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria. Suponemos que la entrada son nmeros enteros Compaa de tarjetas de crdito, N tarjetas robadas, M transacciones a vericar. N del orden de (103 a 106)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria. Suponemos que la entrada son nmeros enteros Compaa de tarjetas de crdito, N tarjetas robadas, M transacciones a vericar. N del orden de (103 a 106) M del orden de (106 a 109)

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Ejemplos de anlisis de algortimos


Anlisis del algoritmo de bsqueda secuencial y bsqueda binaria. Suponemos que la entrada son nmeros enteros Compaa de tarjetas de crdito, N tarjetas robadas, M transacciones a vericar. N del orden de (103 a 106) M del orden de (106 a 109) Estimar el tiempo de clculo cuando los parmetros caen en estos rangos.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

15

Bsqueda secuencial
int search ( int a[], int v, int l, int r ) { for ( int i=l; i<=r; i++ ) if( v == a[i]) return i; return -1; }

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

16

Bsqueda secuencial
int search ( int a[], int v, int l, int r ) { for ( int i=l; i<=r; i++ ) if( v == a[i]) return i; return -1; } El tiempo de ejecucin depende si el objeto buscado est en el arreglo o no.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

16

Bsqueda secuencial
int search ( int a[], int v, int l, int r ) { for ( int i=l; i<=r; i++ ) if( v == a[i]) return i; return -1; } El tiempo de ejecucin depende si el objeto buscado est en el arreglo o no. Podemos decir que no est despues de recorrer todo el arreglo, o encontrarlo en la primera, segunda, tercera o cualquiera de las posiciones.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

16

Bsqueda secuencial
int search ( int a[], int v, int l, int r ) { for ( int i=l; i<=r; i++ ) if( v == a[i]) return i; return -1; } El tiempo de ejecucin depende si el objeto buscado est en el arreglo o no. Podemos decir que no est despues de recorrer todo el arreglo, o encontrarlo en la primera, segunda, tercera o cualquiera de las posiciones. Para hacer una prediccin se necesita una entrada adecuada a la aplicacin.
Alonso Ramirez Manzanares Computacin y Algoritmos 07.02.2012
16

Bsqueda secuencial

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Bsqueda secuencial
Tomamos el caso de nmero encontrado o no encontrado y los analizamos separadamente.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Bsqueda secuencial
Tomamos el caso de nmero encontrado o no encontrado y los analizamos separadamente. Propiedad 1: La bsqueda secuencial examina N nmeros para cada nmero no encontrado y en promedio N/2 posiciones para cada bsqueda exitosa.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Bsqueda secuencial
Tomamos el caso de nmero encontrado o no encontrado y los analizamos separadamente. Propiedad 1: La bsqueda secuencial examina N nmeros para cada nmero no encontrado y en promedio N/2 posiciones para cada bsqueda exitosa. Si cada nmero en el arreglo tiene la misma probabilidad de ser el nmero buscado, entonces: (1+2+ ... + N)/N = (N+1)/2 es el costo promedio de la bsqueda.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Bsqueda secuencial
Tomamos el caso de nmero encontrado o no encontrado y los analizamos separadamente. Propiedad 1: La bsqueda secuencial examina N nmeros para cada nmero no encontrado y en promedio N/2 posiciones para cada bsqueda exitosa. Si cada nmero en el arreglo tiene la misma probabilidad de ser el nmero buscado, entonces: (1+2+ ... + N)/N = (N+1)/2 es el costo promedio de la bsqueda.

Esto implica que cada bsqueda es proporcional a N, suponiendo que la

comparacin entre dos nmeros es constante: si doblamos el nmero de transacciones, doblamos el tiempo de clculo.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

17

Bsqueda secuencial

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda?

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda? ORDENANDO LA LISTA!

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda? ORDENANDO LA LISTA! Veremos algoritmos de ordenamiento de O(MlogM), adecuado dado el tamao de M.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda? ORDENANDO LA LISTA! Veremos algoritmos de ordenamiento de O(MlogM), adecuado dado el tamao de M.

Con una lista ordenada se puede terminar la bsqueda al llegar al primer


nmero ms grande al que buscamos.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda? ORDENANDO LA LISTA! Veremos algoritmos de ordenamiento de O(MlogM), adecuado dado el tamao de M.

Con una lista ordenada se puede terminar la bsqueda al llegar al primer


nmero ms grande al que buscamos. mismo que la bsqueda exitosa.

Esto reduce el costo a cerca de N/2 para una bsqueda no exitosa, lo

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial
Cmo acelerar la bsqueda? ORDENANDO LA LISTA! Veremos algoritmos de ordenamiento de O(MlogM), adecuado dado el tamao de M.

Con una lista ordenada se puede terminar la bsqueda al llegar al primer


nmero ms grande al que buscamos. mismo que la bsqueda exitosa.

Esto reduce el costo a cerca de N/2 para una bsqueda no exitosa, lo Propiedad 2: La bsqueda secuencial en un arreglo ordenado examina N

nmeros en el peor caso y cerca de N/2 nmeros para cada bsqueda en promedio.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

18

Bsqueda secuencial

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Bsqueda secuencial
El tiempo de ejecucin de la bsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Bsqueda secuencial
El tiempo de ejecucin de la bsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso. Esto nos dice que este algoritmo no es utilizable para tablas muy grandes:

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Bsqueda secuencial
El tiempo de ejecucin de la bsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso. Esto nos dice que este algoritmo no es utilizable para tablas muy grandes: Si toma c microsegundos examinar un nmero y M=109 y N=106 , el tiempo de ejecucin para todas las transacciones ser de al menos (c/2) 109 segundos, o alrededor de 16c aos.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

19

Bsqueda binaria
int search ( int a[], int v, int l, int r ) { while (r >= l){ int m = (l+r)/2; if (v == a[m]) return m; if (v < a[m]) r=m-1; else l=m+1; } return -1; }

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

20

Bsqueda binaria

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Si es menor, aplicamos el mismo mtodo a la mitad izquierda de la tabla.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Si es menor, aplicamos el mismo mtodo a la mitad izquierda de la tabla. Si es mayor, aplicamos el mismo mtodo a la mitad derecha de la tabla.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Si es menor, aplicamos el mismo mtodo a la mitad izquierda de la tabla. Si es mayor, aplicamos el mismo mtodo a la mitad derecha de la tabla.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Si es menor, aplicamos el mismo mtodo a la mitad izquierda de la tabla. Si es mayor, aplicamos el mismo mtodo a la mitad derecha de la tabla.

Propiedad 1: La bsqueda binaria nunca examina ms de (lgN)+1 nmeros.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

21

Bsqueda binaria

Si los nmeros estn ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posicin media de la tabla. Si es igual, la bsqueda es exitosa.

Si es menor, aplicamos el mismo mtodo a la mitad izquierda de la tabla. Si es mayor, aplicamos el mismo mtodo a la mitad derecha de la tabla.

Propiedad 1: La bsqueda binaria nunca examina ms de (lgN)+1 nmeros. Lo que signica: Permite resolver problemas muy grandes, de hasta 1 milln de nmeros con mximo 20 comparaciones por transaccin, que puede ser menos de lo que tarda una computadora en imprimir o leer el nmero.
Alonso Ramirez Manzanares Computacin y Algoritmos 07.02.2012
21

Problemas de bsqueda"
Un anlisis del comportamiento asinttico de estos algoritmos nos permite elegir el mejor entre ellos para nuestra aplicacin. El anlisis del peor caso nos proporciona garantas sobre el funcionamiento del programa. El anlisis del caso promedio nos da predicciones sobre el funcionamiento promedio, con los datos apropiados, del programa.

Alonso Ramirez Manzanares

Computacin y Algoritmos

07.02.2012

22

También podría gustarte