análisis de algoritmos - cimatalram/analisis_algo/clase0.pdf · • análisis probabilístico de...

64
Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013 Análisis de Algoritmos COMP-420 Dra. Claudia Esteves Jaramillo Dr. Alonso Ramirez Manzanares Dr. Johan Van Horebeek Depto. de Matemáticas Univ. de Guanajuato e-mail: [email protected] web: http://ww w.cimat.mx/~alram/comp_algo/ Wednesday, August 21, 13

Upload: others

Post on 10-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Análisis de AlgoritmosCOMP-420

Dra. Claudia Esteves JaramilloDr. Alonso Ramirez ManzanaresDr. Johan Van Horebeek

Depto. de MatemáticasUniv. de Guanajuato

e-mail: [email protected]: http://www.cimat.mx/~alram/comp_algo/

Wednesday, August 21, 13

Page 2: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Breve descripción

• Es un curso dirigido tanto a matemáticos como a computólogos con un interés no solamente en aprender a diseñar algoritmos para resolver problemas fundamentales en Ciencias de la Computación sino también en analizar su comportamiento y complejidad.

• El curso sirvirá al mismo tiempo como una aplicación de temas vistos en las materias de matemáticas al área de Ciencias de la Computación.

Wednesday, August 21, 13

Page 3: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Objetivos del curso

• Avanzar en los conceptos de algoritmo y el diseño de los mismos.

• Caracterizar la complejidad de los algoritmos, incluso en casos donde esta depende de la entrada o de decisiones aleatorias que se lleven acabo en la ejecución.

• Tener una biblioteca de algoritmos clásicos que sirvan como punto de partida en el diseño de nuevos algoritmos para problemas específicos.

• Al final del curso que sean capaces de resolver problemas e implementarlos en una computadora utilizando un lenguaje de alto nivel. (C++)

• Entender el desempeño de un algoritmo y determinar las estructuras de datos adecuadas para su implementación.

2

Wednesday, August 21, 13

Page 4: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Pre-requisitos

• Conocimientos de programación en C, C++.

• El curso de Computación y Algoritmos (estructuras de datos)

• Principios básicos de programación orientada a objetos

• Conocimientos de probabilidad, su primer curso y lo que vean en el segundo.

3

Wednesday, August 21, 13

Page 5: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Clases

• Las clases son los martes y jueves de 9:30 a 10:50

• Practicas con ayudante XX [email protected]

• Las notas de las clases al igual que las tareas se podrán bajar en el sitio web: http://www.cimat.mx/~alram/analisis_algo/

4

Wednesday, August 21, 13

Page 6: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Políticas de evaluación

• Calificaciones

• 3 exámenes parciales - 50%

• Proyecto Final - 25%

• Tareas - 25%, ¡ tarea no entregada no vale !, pero hay calificaciones parciales por trabajo parcial)

5

Wednesday, August 21, 13

Page 7: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Calculo de complejidad y revisión breve notación asintótica

• Resolución de ecuaciones de diferencias caso lineal y caso general

• El teorema Master;

• Estratégias de diseño de algoritmos

• Backtracking e Introducción a Teoría de Gráficas

• Representación de Gráficas y Recorridos Genéricos

• Recorridos en Profundidad (DFS) y Amplitud (BFS)

• Árboles Mínimos Generadores (MST)

• Algoritmo de Kruskal6

Wednesday, August 21, 13

Page 8: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Calculo de complejidad y revisión breve notación asintótica

• Resolución de ecuaciones de diferencias caso lineal y caso general

• El teorema Master;

• Estratégias de diseño de algoritmos

• Backtracking e Introducción a Teoría de Gráficas

• Representación de Gráficas y Recorridos Genéricos

• Recorridos en Profundidad (DFS) y Amplitud (BFS)

• Árboles Mínimos Generadores (MST)

• Algoritmo de Kruskal6

Wednesday, August 21, 13

Page 9: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Algoritmo de Prim y Caminos más cortos

• Algoritmos de Flujos: definiciones

• Algoritmos de flujos: Ford-Fulkerson

• Introducción a Processing

• Análisis probabilístico de complejidad y ejemplos

• Introducción a informatión retrieval y búsquedas en textos

• Arboles sufijos, Algoritmo Ukkonen, Algoritmo Knuth-Morris-Pratt, fingerprinting

• Algoritmos aleatorizados

Wednesday, August 21, 13

Page 10: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Algoritmo de Prim y Caminos más cortos

• Algoritmos de Flujos: definiciones

• Algoritmos de flujos: Ford-Fulkerson

• Introducción a Processing

• Análisis probabilístico de complejidad y ejemplos

• Introducción a informatión retrieval y búsquedas en textos

• Arboles sufijos, Algoritmo Ukkonen, Algoritmo Knuth-Morris-Pratt, fingerprinting

• Algoritmos aleatorizados

Wednesday, August 21, 13

Page 11: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Algoritmo de Prim y Caminos más cortos

• Algoritmos de Flujos: definiciones

• Algoritmos de flujos: Ford-Fulkerson

• Introducción a Processing

• Análisis probabilístico de complejidad y ejemplos

• Introducción a informatión retrieval y búsquedas en textos

• Arboles sufijos, Algoritmo Ukkonen, Algoritmo Knuth-Morris-Pratt, fingerprinting

• Algoritmos aleatorizados

Wednesday, August 21, 13

Page 12: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Temario

• Algoritmos de Moore y Dijkstra (caminos cortos)

• Algoritmo A* y Algoritmo de Floyd-Warshall

• Convex Hull

• Intersección de Segmentos de Recta

• Problema de la Galería de Arte - Triangulación de Polígonos

• Diagramas de Voronoi

Wednesday, August 21, 13

Page 13: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Referencias• Introduction to Algorithms. Cormen T.H., Leiserson, C.E., Rivest R.L. and

Stein, C. The MIT Press (puesto en reserva)• Algorithm Design. Kleinberg J. and Tardos E. Addison Wesley• Computational Geometry, Algorithms and Applications. de Berg M. , Cheong

O., van Kreveld M. and Overmars M. Springer. • Algorithms Course Materials. Erickson J. http://www.cs.uiuc.edu/~jeffe/

teaching/algorithms• Página web del lenguaje Processing http://www.processing.org• Algorithms and Programming, Problems and Solutions, Alexander Shen,

Birkhauser, 1997• Especificación, derivación y análisis de Algoritmos, Narciso Marti et al.,

Pearson 2006.• Probability and Computing: randomized algorithms and probabilistic analysis,

Mitzenmacher et al., Cambridge, 2005• Algorithms on strings, trees and sequences, Gusfield, Cambridge, 1997

7

Wednesday, August 21, 13

Page 14: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Tutoría

• Previa cita, ya sea por e-mail ([email protected], [email protected], [email protected]) o teléfono (1211, 49564, 1206 ), H-6, en segundo piso del edificio blanco.

8

Wednesday, August 21, 13

Page 15: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Cosas que hay que saber de programación

• Apuntadores

• Memoria dinámica

• Leer escribir archivos

• Pasar argumentos a los programas

• etc...

Wednesday, August 21, 13

Page 16: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Modo de programación• Usaremos C++ con el compilador linux gcc o Windows MinGW (http://

www.mingw.org/).

• El ambiente de desarrollo será Code::Blocks. (http://www.codeblocks.org/ Instalación muy fácil en linux-ubuntu y windows). En Windows hay que bajar el que tiene MinGW integrado llamado IDE (Integrated development environment). Usaremos el tipo de proyecto “Console Application” con lenguaje C++.

• ¿Por qué usar gcc y MinGW?

• Compatibilidad multiplataforma bajo normas ANSI.

• ¿Cuales son las bondades de un ambiente integrado de programación?

• Tener un editor y un debuger integrado (Es MUY importante aprender a usar el DEBUGGER)

Wednesday, August 21, 13

Page 17: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Screenshot de code::blocks

Wednesday, August 21, 13

Page 18: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Tarea Opcional:

• mandar por correo una descripción breve del uso de las siguientes opciones de debugger en code::blocks:

• continue, next line, next instruction, step into, step out, toggle break point, remove all break points, run to cursor, debugging windows y edit watches.

Wednesday, August 21, 13

Page 19: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

Wednesday, August 21, 13

Page 20: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

Wednesday, August 21, 13

Page 21: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

Wednesday, August 21, 13

Page 22: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

Wednesday, August 21, 13

Page 23: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

Wednesday, August 21, 13

Page 24: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

Wednesday, August 21, 13

Page 25: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

• finito

Wednesday, August 21, 13

Page 26: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

• finito• bien definido

Wednesday, August 21, 13

Page 27: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

• finito• bien definido• entradas bien definidas

Wednesday, August 21, 13

Page 28: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

• finito• bien definido• entradas bien definidas• salidas bien definidas

Wednesday, August 21, 13

Page 29: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos

• ¿Qué es un algoritmo?

• Un algoritmo es una secuencia explícita, precisa, no ambigua de instrucciones elementales que toma un valor o conjunto de valores como entrada y produce un valor o conjunto de valores como salida.

• Todo algoritmo debe tener las siguientes 5 características principales:

• finito• bien definido• entradas bien definidas• salidas bien definidas• factible

Wednesday, August 21, 13

Page 30: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmo

Wednesday, August 21, 13

Page 31: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmo

• Un algoritmo es correcto si para todas las posibles entradas, termina con la salida correcta.

Wednesday, August 21, 13

Page 32: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmo

• Un algoritmo es correcto si para todas las posibles entradas, termina con la salida correcta.

• Se puede especificar en un lenguaje como el español o inglés, como un programa de computadora o bien como un diseño de hardware (ejemplo, un circuito que ordena con comparadores ).

Wednesday, August 21, 13

Page 33: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmo

• Un algoritmo es correcto si para todas las posibles entradas, termina con la salida correcta.

• Se puede especificar en un lenguaje como el español o inglés, como un programa de computadora o bien como un diseño de hardware (ejemplo, un circuito que ordena con comparadores ).

Wednesday, August 21, 13

Page 34: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmo

• Un algoritmo es correcto si para todas las posibles entradas, termina con la salida correcta.

• Se puede especificar en un lenguaje como el español o inglés, como un programa de computadora o bien como un diseño de hardware (ejemplo, un circuito que ordena con comparadores ).

Wednesday, August 21, 13

Page 35: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

Wednesday, August 21, 13

Page 36: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

Wednesday, August 21, 13

Page 37: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

• Un subsecuencia de X es X donde quitamos algunos (quizá ninguno) de sus símbolos.

Wednesday, August 21, 13

Page 38: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

• Un subsecuencia de X es X donde quitamos algunos (quizá ninguno) de sus símbolos.

• La subsecuencia común mas larga de X y Y nos dice que tan parecidos son X y Y

Wednesday, August 21, 13

Page 39: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

• Un subsecuencia de X es X donde quitamos algunos (quizá ninguno) de sus símbolos.

• La subsecuencia común mas larga de X y Y nos dice que tan parecidos son X y Y

• Aplicaciones en análisis de ADN en biología.

Wednesday, August 21, 13

Page 40: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

• Un subsecuencia de X es X donde quitamos algunos (quizá ninguno) de sus símbolos.

• La subsecuencia común mas larga de X y Y nos dice que tan parecidos son X y Y

• Aplicaciones en análisis de ADN en biología.

• ¿cuantas subsecuencias tiene X?

Wednesday, August 21, 13

Page 41: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Dadas 2 secuencias ordenadas de símbolos X = (x1,x2 ... xm), Y =(y1,y2, ... , yn) queremos encontrar la subsecuencia común mas larga a ambos X y Y.

• Un subsecuencia de X es X donde quitamos algunos (quizá ninguno) de sus símbolos.

• La subsecuencia común mas larga de X y Y nos dice que tan parecidos son X y Y

• Aplicaciones en análisis de ADN en biología.

• ¿cuantas subsecuencias tiene X?

• 2m

Wednesday, August 21, 13

Page 42: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 43: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 44: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 45: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 46: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 47: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 48: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Ejemplo de problemas

• Un roadmap con las distancias entre intersecciones adyacentes. Encontrar la ruta mas corta de una intersección a otra. El número de intersecciones puede ser enorme, ¿como elegir la mas corta ?

Wednesday, August 21, 13

Page 49: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Características de problemas interesantes

Wednesday, August 21, 13

Page 50: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Características de problemas interesantes

• Hay muchas soluciones candidatas, la mayoria no resuelven el problema.

Wednesday, August 21, 13

Page 51: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Características de problemas interesantes

• Hay muchas soluciones candidatas, la mayoria no resuelven el problema.

• Encontrar la(s) correcta(s) es todo un reto.

Wednesday, August 21, 13

Page 52: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Características de problemas interesantes

• Hay muchas soluciones candidatas, la mayoria no resuelven el problema.

• Encontrar la(s) correcta(s) es todo un reto.

• Solucionar estos problemas tiene aplicaciones prácticas.

Wednesday, August 21, 13

Page 53: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Relación entre algoritmo y estructura de datos

• Se debe escoger la más adecuada (arreglo, pila, lista, montículo)

• Se debe de especificar en el algoritmo haciendo uso de su interfás.

Wednesday, August 21, 13

Page 54: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Se deben de aprender técnicas

• En la vida académica y profesional habrá problemas son solución publicada.

• hay que aprender a desarrollar y analizar nuevos algoritmos.

Wednesday, August 21, 13

Page 55: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

Wednesday, August 21, 13

Page 56: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

Wednesday, August 21, 13

Page 57: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

• Si, se debe demostrar que termina y que termina con la solución correcta.

Wednesday, August 21, 13

Page 58: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

• Si, se debe demostrar que termina y que termina con la solución correcta.

Wednesday, August 21, 13

Page 59: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

• Si, se debe demostrar que termina y que termina con la solución correcta.

• Eficiencia: Insertion sort ( O(n2) ) vs. merge sort ( O( nlog(n) ) ).

Wednesday, August 21, 13

Page 60: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

• Si, se debe demostrar que termina y que termina con la solución correcta.

• Eficiencia: Insertion sort ( O(n2) ) vs. merge sort ( O( nlog(n) ) ).

• el primero en computadora 1000 veces mas rápida , mucho mejor implementado por el mejor programador del mundo (2n2 vs 50 n log n)

Wednesday, August 21, 13

Page 61: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Si las computadoras fueran infinitamente rápidas y con infinita memoria ¿todavía es necesario hacer análisis de algoritmos?

• Si, se debe demostrar que termina y que termina con la solución correcta.

• Eficiencia: Insertion sort ( O(n2) ) vs. merge sort ( O( nlog(n) ) ).

• el primero en computadora 1000 veces mas rápida , mucho mejor implementado por el mejor programador del mundo (2n2 vs 50 n log n)

• Para ordenar 100 millones, el primero 23 dias, el segundo 4 horas.

Wednesday, August 21, 13

Page 62: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• El ejemplo anterior nos dice que los algoritmos, así como el hardware, son tecnología.

• tan importantes como, por ejemplo

• tecnologías de fabricación de computadoras

• interfases fáciles de usar GUI

• redes de transmisión rápida

• Por ejemplo, cuando una aplicación es interpretada de su lenguaje nativo a lenguaje maquina, ahí hay algoritmos involucrados (compiladores, interpretes)

Wednesday, August 21, 13

Page 63: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Algoritmos como tecnología

• Tener un sólido conocimiento sobre algoritmos existentes y técnicas de desarrollo y análisis separa a los verdaderos programadores profesionales de los demás.

Wednesday, August 21, 13

Page 64: Análisis de Algoritmos - CIMATalram/analisis_algo/clase0.pdf · • Análisis probabilístico de complejidad y ejemplos • Introducción a informatión retrieval y búsquedas en

Alonso Ramírez Manzanares Computación y Algoritmos 22.01.2013

Hay que empezar

Wednesday, August 21, 13