Notación Big-O

Post on 29-Nov-2014

151 views 5 download

Transcript of Notación Big-O

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Estructura y organización de DatosSemestre Agosto-Diciembre 2011

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Datos de la asignatura

• Clave de la asignatura: TID-1012• SATCA: 2-3-5• Aporte al perfil:

– Concientizarlo de la importancia de la estructuras de datos.

– Implementar eficientemente las principales estructuras de datos.

– Utilizar correctamente las estructuras de datos adecuadas para resolver distintos problemas.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Intención Didáctica

• Se organiza el temario en cuatro unidades.– Unidad 1 Fundamentos de Estructuras de Datos.– Unidad 2 Estructuras Lineales.– Unidad 3 Estructuras no Lineales– Unidad 4 Métodos de ordenamiento y búsqueda.

• Para acreditar la unidad es necesario alcanzar la calificación mínima aceptable en cada uno de los rubros de evaluación.

• Esto es no se debe reprobar ningún rubro.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Criterio de Evaluación

• Evaluación de la Unidad: 40%

• Colaboraciones: 30%

• Practicas: 30%

Evaluacion Unidad ColaboracionesPrácticas

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Prácticas

• Estas deberán ser entregadas impresas al final de la unidad, presentadas en un folder color Azul en broche BACO, con la portada y formato sugeridas en el siguiente documento:

• https://docs.google.com/leaf?id=0B9tn9TfGjjCdYzg3NzY2OGMtZDVhMC00YmQ5LTg4ZTctYmU0MDBhOTUyMjgx&hl=en_US

• http://alturl.com/f377m

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Prácticas

• Crear una cuenta en un host de datos, mediafire, googledocs, skydrive, organizada de la siguiente manera:

• U1– Practicas– Bitácora

• Mediafire: http://www.mediafire.com/

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Colaboraciones

• Las colaboraciones involucran participación en clase.

• Prestar atención a la sesión.• Realizar aportaciones originales.• Mostrar creatividad en la solución de los

problemas planteados.• Ser un participante de sesión proactivo.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Diagnostico del Progreso

• Consistirá en una evaluación: Teórico o Práctica.

• Podrá consistir en:– Una programa práctico en laboratorio con tiempo

fijo.– Un problema a resolver en casa.– Investigación en equipo.– Presentación en clase.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Asistencias

• Para tener derecho a la acreditación de la unidad el participante deberá cubrir un 70% de la asistencia al curso.

• Lo que significa que si una unidad consta de 10 sesiones si el participante falta 4, automáticamente ser ira a recuperación de la unidad.

• Para tener derecho a la asistencia del día el participante deberá cubrir el 70% del tiempo de una sesión, esto es una tolerancia de 15 min.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Retardos

• Para tener derecho a la asistencia del día, el participante deberá cubrir el 70% del tiempo de una sesión.

• Si se considera que una sesión dura 50 min, el participante tendrá una tolerancia de 15 min para entrar a clase, pasado ese tiempo el participante no podrá acceder al aula por respeto a los compañeros.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Avisos y página de contacto.

https://sites.google.com/site/edditgam/

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Libro de Referencia

• ESTRUCTURA DE DATOS ORIENTADA A OBJETOS ALGORITMOS CON C++– PRENTICE HALL MEXICO– Lengua: CASTELLANO 

Encuadernación: Tapa blandaISBN: 9789702607922 Nº Edición:1ª Año de edición:2007Plaza edición: MEXICO

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Libro de Referencia

• Data Structures Using C++– Course Technology; 2 edition (July 31, 2009)– Language: English– ISBN-10: 0324782012– ISBN-13: 978-0324782011– Product Dimensions: 9.3 x 7.4 x 1.5 inches

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Unidad 1 Fundamentos de Estructura de Datos

Software Developement PhaseFase de desarrollo de Software

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Software Developement Phase

• Leer del libro Data Structures using C++ desde la página 2 a la 8 y contestar las siguientes preguntas.

1. ¿Qué significa el termino software?2. ¿Cómo se le llama a la rama de la ciencias

computacionales que se encargar de vigilar la calidad del software desde que se concibe hasta que sale al mercado?

3. ¿A que se le llama el ciclo de vida de un programa?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Software Developement Phase

4. Mencione algún caso en el cual un programa deba de ser retirado del mercado.5. ¿Cuales son las fases en que se divide el proceso de desarrollo de software?6. ¿A que se le llama el ciclo de vida de un programa?7. ¿En que consiste la fase de análisis en el proceso de desarrollo del software?8. ¿Una vez que se ha analizado el problema cual sería el paso a seguir?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Software Developement Phase

9. ¿Que es un algoritmo?.10. ¿En que consiste el diseño estructurado?11. ¿En que consiste el diseño orientado a objetos?12. ¿En que consiste la fase de implementación?13. ¿A que se refiere el termino “debugging”?14. ¿En que consiste el “blackbox testing”?15. ¿En que consiste el “whitebox testing”?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

Unidad 1 Fundamentos de Estructura de Datos

Algorithm Analysys: The Big-O NotationAnálisis de Algoritmos: La O-notación

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Así como un problema es analizado antes de diseñar el algoritmo que lo resuelva, una vez que el algoritmo es diseñado este debe ser analizado.

• La solución de un problema se puede realizar de diversas formas.

• Algunas formas pueden ser mas fáciles, otras mas complicadas, unas tomar muchos pasos, otras tomar menos pasos, o en su caso una combinación.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Considerar el siguiente problema:• La temporada navideña esta próxima y una

tienda de regalos esta experimentando una alza dramática en sus ventas, por lo que ha decido contratar personal extra por temporada para realizar de manera eficiente la entrega a domicilio de los regalos.

• Cierto día la compañía tiene que entregar 50 regalos en 50 diferentes puntos de entrega.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Cierto día la compañía tiene que entregar 50 regalos en 50 diferentes puntos de entrega, trazando la ruta, la compañía obtiene que cada punto esta separado 1 milla del otro, tao y como se muestra en la siguiente figura:

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Cierto día la compañía tiene que entregar 50 regalos en 50 diferentes puntos de entrega, trazando la ruta, la compañía obtiene que cada punto esta separado 1 milla del otro, tao y como se muestra en la siguiente figura:

• Un mensajero procede a entregar los paquetes de la siguiente forma: toma los 50 paquetes, maneja una milla y entrega el primer paquete, maneja otra milla y entrega el segundo paquete y así hasta terminar.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Siguiendo este esquema se obtiene que la distancia total manejada por el repartidor para entregar todos los paquetes es:– 1+1+1+1+…+1=50 millas.

• Por lo que la distancia total recorrida para entregar los paquetes y regresar a la tienda es:– 50+50= 100 millas.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Otro mensajero tiene una ruta similar pero este procede a entregar los paquetes de la siguiente forma: toma 1 paquete, maneja una milla y entrega el paquete, maneja una milla de regreso toma el segundo paquete y maneja ahora 2 millas para entregar el segundo paquete, regresa a la tiendo manejando 2 millas toma otro paquete y ahora maneja 3 millas para entregar el siguiente paquete y así continua hasta terminar de entregar todos los paquetes.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• ¿Cuántas millas le toma al segundo repartidor entregar todos sus paquetes y regresar a la tienda?

• Primero calculamos las idas a los puntos de entrega:– 1+2+3+4+…+50

• Luego se calculan los regresos a la tienda– 1+2+3+4+…+50

• Lo que da 2*(1+2+3+4+…+50) = 2550 millas

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• ¿Que pasaría si ahora en vez de entregar 50 paquetes la tienda tiene que entregar “n” paquetes?

• Bajo el primer esquema la distancia total para entregar “n” paquetes quedaría de la siguiente forma:– 11+12+13+…+1n+n =

• Ejemplo: si n=80, esto es son 80 los puntos de entrega las millas recorridas serían:– 2*n = 2*80=160 millas.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Bajo el segundo esquema la distancia total para entregar “n” paquetes quedaría de la siguiente forma:– 2*(1+2+3+…+n)=

• Ejemplo: si n=80, esto es son 80 los puntos de entrega las millas recorridas serían:– millas.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

2*n n2+n

Paquetes Esquema 1 Esquema 2

1 2 2

5 10 30

10 20 110

100 200 10100

1000 2000 1001000

10000 20000 100010000

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• En el análisis de un algoritmo, en particular lo mas común es contar el numero de operaciones que le toma al algoritmo completar su tarea.

• Esto es así por que un algoritmo en particular puede ser implementado en una variedad muy grande de computadoras, por lo que la velocidad de ejecución puede ser afectado por la velocidad a la que corre la computadora.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Un algoritmo puede correr mas rápido en una cpu Intel Core i5 que en un Atom Duo.

• ¿A caso es que el algoritmo se siente mas cómodo en una maquina que en otra?.

• Por lo que la “eficiencia” de un algoritmo se mide en el numero de pasos que le toma a este resolver un problema.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Regresando al problema de entrega de regalos tenemos 2 esquemas para completar la tarea cada uno modelado matemáticamente:

• Esquema 1:

• Esquema 2:

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• En el análisis de algoritmos se suele tomar el termino dominante de su modelo, cuando se hace esto se dice que la complejidad del algoritmo esta siendo analizado en la notación big-O.

• Tomando el termino dominante de cada esquema tenemos:• Esquema 1:

– , el termino dominante es “n” por lo que su complejidad queda definida como: O(n)

• Esquema 2:– el termino dominante es n2 por lo que su complejidad queda

definida como: O(n2)

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejemplo 1: El modelo matemático de un algoritmo arroja la siguiente función: ,determinar su complejidad usando la notación “Big-O”.

• Reescribiendo la función se tiene , el mayor impacto en el rendimiento de la función son los términos de “n” que en este caso sería , lo que arroja el siguiente resultado:– El algoritmos tiene una complejidad de

• ¿Que significa esto?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejemplo 2: Cierto algoritmo es analizados en términos del siguiente modelo matemático, , ¿Cuál es su complejidad?.

• El elemento “n” de mayor impacto en este problema es “n”, por lo que la notación de su complejidad queda de la siguiente manera:

• ¿Qué significa esto?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejemplo 3: Cierto algoritmo es analizados en términos del siguiente modelo matemático, , ¿Cuál es su complejidad?.

• El elemento “n” de mayor impacto en este problema es, por lo que la notación de su complejidad queda de la siguiente manera:

• ¿Qué significa esto?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• En general existe un teorema que nos permite de manera rápida determinar la complejidad de una algoritmo basado en su modelo:

• Siendo una función real no negativa tal que .

• Donde todas las son números reales y diferentes de cero, m son enteros no negativos, entonces .

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• La notación O(n) tiene también una definición formal:

• Siendo f y g funciones reales y no negativas para todos los números reales “n”.

• Se dice que f(n) es Big-O de g(n), escrito como f(n)=O(g(n)), si existe un número positivo constante “c” y “n0” tal que para toda .

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejercicios: Obtener la complejidad de las siguientes modelos matemáticos de funciones en notación big-O.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejercicios: Obtener la complejidad de las siguientes modelos matemáticos de funciones en notación big-O.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• Ejemplo 4: Considerar el siguiente código, donde “m” y “n” son enteros no negativos:

• ¿Cual es la complejidad del algoritmo?

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• El código contiene 2 fors anidados, siendo observadores el código mas interno se ejecuta “n” veces, y ese código a su vez se ejecuta “m” veces por lo que el modelo queda de la siguiente manera:– , por lo que la complejidad es:

• Si m = n entonces la complejidad es:

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

• La siguiente tabla nos ayuda a determinar que tan eficiente es un algoritmo en función de su

complejidad.

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

Función g(n) Radio de crecimiento de f(n)

g(n)=1 El radio de crecimiento es constante no depende de n.

Si el problema crece la complejidad crece lentamente.

El grado de crecimiento es lineal, el crecimiento es proporcional al crecimiento de problema

El crecimiento de la complejidad es un poco mas grande que el lineal

El grado de complejidad crece muy rápidamente

El grado de complejidad crece exponencialmente

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=1

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=𝑙𝑜𝑔2𝑛

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=𝑛

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=𝑛∗𝑙𝑜𝑔2𝑛

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=𝑛2

Cd. Madero 2009

Instituto Tecnológico de Gustavo A. Madero

M.C Jorge Ivan Rivalcoba RivasSemestre Agp-Dic 2011

Dirección General de Educación Superior Tecnológica

D.R. ©

The Big-O Notation

𝑔 (𝑛 )=2𝑛