Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del...

24
Teoría de Algoritmos 2 o curso de Ingeniería Informática José Luis Verdegay José Luis Verdegay Departamento de Ciencias de la Computación e Inteligencia Artificial http://decsai.ugr.es/verdegay

Transcript of Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del...

Page 1: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de Algoritmos2o curso de Ingeniería Informática

José Luis VerdegayJosé Luis VerdegayDepartamento de Ciencias de la Computación e

Inteligencia Artificialhttp://decsai.ugr.es/∼verdegay

Page 2: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Horarios y duración de la asignaturaGrupo A4 horas de teoría y 2 de prácticas por semana. Durante 15 semanas

Los grupos de prácticas “homogeneos” habrá que pasarselos, ya organizados, a los Profesores (David A. Pelta).

Page 3: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Horarios y duración de la asignaturaGrupo B4 horas de teoría y 2 de prácticas por semana. Durante 15 semanas

Los grupos de prácticas “homogeneos” habrá que pasarselos, ya organizados, a los Profesores (David A. Pelta).

Page 4: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Temas y objetivos de la asignatura Basados en la recomendación IEEE-ACM Computing Curricula 2001 para Computer Science la asignatura de “Metodología de la Programación I” junto a la asignatura “Teoría de Algoritmos” conforman la troncalidad de Metodología y Tecnología de la Programación en los planes de estudios de Informática en la Universidad de Granada.Considerando las recomendaciones del CC2001 y los descriptores de la materia troncal concernientes a la parte de tecnología de la programación, podemos considerar que los temas más importantes y sus objetivos en la asignatura son los siguientes

Page 5: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Temas y objetivos

Temas a considerar

Análisis asintótico de complejidad en media y en el peor caso.Diferencias entre el mejor caso, el peor caso y el caso promedioNotaciones O Mayúscula, o minúscula, omega y thetaClases de complejidadMedidas empíricas de eficienciaEquilibrio en la eficiencia en tiempo y en espacioRelaciones de recurrencia para analizar algoritmos recursivos

AL1, Análisis básico de Algoritmos

Page 6: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Temas y objetivos

Temas a considerar

Algoritmos de fuerza bruta (enumerativos, combinatorios)Algoritmos greedyDivide y vencerasBacktrackingBranch-and-boundHeurísticasEmparejamiento de patrones y algoritmos sobre textoAlgoritmos de aproximación numérica.

AL2, Estrategias algoritmicas

Page 7: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Temas y objetivosObjetivos

Explicar el uso de la notaciones O mayúscula, omega y theta paradescribir la cantidad de trabajo realizada por un algoritmo.Uso de la notación O mayúscula, omega y theta para dar límites en tiempo y espacio a la complejidad de un algoritmo.Determinar la complejidad en tiempo y espacio de algoritmos simples.Deducir relaciones de recurrencia para la complejidad en tiempo de algoritmos recursivos.Resolver relaciones de recurrencia elementalesDescribir las deficiencias de los algoritmos de fuerza bruta.

Page 8: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Temas y objetivosObjetivos

Identificar, para cada uno de los tipos de algoritmos, un ejemplo de la vida cotidiana que ejemplifique el concepto básico del mismo.Implementar un algoritmo greedy para resolver un problema apropiado.Implementar un algoritmo divide-y-vencerás para resolver un problema apropiado.Usar backtracking para resolver un problema tal como recorrer un puzzle.Describir varios problemas con su correspondiente solución heurística.Usar aproximación numérica para resolver otro tipo de problemas tales como obtener las raíces de un polinomio.

Page 9: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Programa de la asignatura

Capitulo 1. La Eficiencia de los Algoritmos. Planteamiento General. Introducción histórica al Análisis de Algoritmos.Tiempo de ejecución. Notaciones para la Eficiencia de los Algoritmos. Reglas teóricas y prácticas para el calculo de la eficiencia. Análisis de algoritmos elementalesResolución de Recurrencias Asintóticas. Inducción. Método de la función característica

Capitulo 2. Algoritmos Divide y Vencerás. Divide y Vencerás y Algoritmos Divide y Vencerás. Determinación del umbral. Algoritmos de Búsqueda Divide y Vencerás. Algoritmos Divide y Vencerás para la Ordenación. Otras Aplicaciones de la Técnica Divide y Vencerás. Multiplicación de matrices. El problema de la “línea del horizonte”.

Page 10: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Programa de la asignaturaCapitulo 3. Algoritmos Greedy.El Enfoque Greedy. Fundamentos teóricos. Algoritmos Greedy para Grafos. Definiciones. Algoritmos para el Árbol Generador Minimal de un grafo. Algoritmo de Dijkstra. El Problema del Árbol de Steiner.Heurísticas Greedy. El problema del Viajante de Comercio. El problema de la Mochila. El problema del Coloreo de un Grafo.

Capitulo 4. Algoritmos Basados en Programación Dinámica. Programación Dinámica y Diseño de Algoritmos. Principio de Optimalidad. Algoritmos Elementales que usan la Programación Dinámica. Algoritmos de Camino Mínimo. El Problema de la Mochila. El Problema del Viajante de Comercio. Multiplicación encadenada de matrices. Determinación de la Secuencia de mayor longitud

Page 11: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Programa de la asignatura

Capitulo 5. Algoritmos para la Exploración de Grafos. Grafos Implícitos. Árboles para Juegos. Algoritmos de solución para juegos elementales.Técnica Bactracking. Métodos Branch-Bound. Espacios de estados. Eficiencia de los algoritmos de exploración de grafos. El problema de las 8 reinas. El problema de la suma de subconjuntos.Algoritmos para la resolución del problema de las N reinas. Suma de Subconjuntos.

Capitulo 6. Otras Metodologías Algorítmicas. Algoritmos de Precondicionamiento y Transformación del Dominio Introducción a los algoritmos heurísticos para optimización.

Page 12: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Objetivos

a) Dominar los métodos de cálculo de la eficiencia teórica de los algoritmos

b) Conocer en profundidad las técnicas de diseño de algoritmos y

c) Saber asociar a un problema el mejor algoritmo para su resolución

Page 13: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de AlgoritmosTemario de prácticas:

Las prácticas serán de tres tiposa) Pizarra (eficiencias, recurrencias, …)b) Laboratorio, se desarrollaran en equipos

de 2 personas y tratarán sobreEficiencia de algoritmos, implementación de algoritmos DV, AG, PD, BB, BT (2 ó 3)

c) Prácticas voluntarias que se sugerirán

Page 14: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de AlgoritmosSistema de evaluación

Examen escrito de teoría y problemas (80%)El trabajo práctico (20%).Prácticas opcionales (influyen positivamente en la nota final)La nota de prácticas se podrá guardar hasta septiembre si la nota es superior a 8/10

Page 15: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de AlgoritmosBibliografía básica:

José Luis Verdegay: Curso de Teoría de Algoritmos

Librería Fleming (2004)

Page 16: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de AlgoritmosBibliografía de apoyo:

G. Brassard y P. Bratley: Fundamentos de Algoritmia. Prentice Hall T.H. Cormen, C.E. Leiserson y R. L. Rivest: Introduction to Algorithms. The MIT Press E. Horowitz y S. Sahni: Fundamentals of Computer Algorithms. Comp Science Press

Page 17: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Teoría de AlgoritmosBibliografía de consulta:

ConsultaA. V. Aho, J.E. Hopcroft y J.D. Ullman: Data Structures and Algorithms. Addison Wesley Pub. Co. (1982)S. Baase: Computer Algorithms. Introduction to Design and Analysis. Addison Wesley (1988)G. Brassard y P. Bratley: Fundamentos de Algoritmia.Prentice Hall (1997)D. Harel: Algorithmics (The spirit of computing). Addison Wesley Pub. Co. (1987)S. S. Kiena: The Algorithm Design Manual. Springer Verlag (1998)D.E. Knuth. El Arte de Programar Ordenadores. Algoritmos Fundamentales.Vol 1. Reverté, 1985. D.E. Knuth. El Arte de Programar Ordenadores. Clasificación y Búsqueda.Vol 3. Reverté, 1987.U. Manber. Introduction to Algorithms. Addison-Wesley, 1989.J.J. McConnell: Analysis of Algorithms (an active learning approach). Jones and Bartlett Pub. (2004)I. Parberry. Problems on Algorithms. Prentice Hall (1995).R. Sedgewick. Algorithms. Second edition. Addison-Wesley, 1988.R. Sedgewick y P. Flajolet. An Introduction to Analysis of Algorithms. Addison-Wesley, 1997.J.D. Smith: Design and Analysis of Algorithms. PWS-KENT Publishing Co. (1989)G. Valiente: Algorithms on Trees and graphs. Springer (1998).

Page 18: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Modo de aprobar la asignaturaEstudiar todos los días lo explicado en claseContrastar y ampliar los apuntes de clase con el libro de la asignatura y con otros que se irán recomendandoHacer los trabajos voluntarios que se irán proponiendoAsistir a tutorías ¡Ojo,que no son clases particulares!Hay un horario oficial de tutorías, pero se me puede localizar acualquier horaEn

http://decsai.ugr.es/~verdegay/webestaran colgados todos los materiales docentes interesantes: transparencias, apuntes, bibliografía, links, etc., dentro de la pagina de la asignaturaEn cuanto les habilite sus cuentas, tendrán acceso a ese material, y podrán rellenar sus fichas.

Page 19: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Pagina de la Asignatura

Page 20: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Pagina de la Asignatura

Page 21: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Pagina de la Asignatura

Page 22: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Resultados del último añoEl 75 % de los presentados en Febrero aprobaron la asignatura

Page 23: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

Resultados del último añoEl 32 % de los presentados en Septiembre aprobaron la asignatura

Page 24: Teoría de Algoritmos - Departamento de Ciencias de la ...ta_ii/algoritmos/pdf/Presentacion del Curso.pdfCapitulo 4 . Algoritmos Basados en Programación Dinámica. Programación Dinámica

José Luis VerdegayCatedrático

Departamento de Ciencias de la Computación e Inteligencia Artificial

Despacho 7

Tutorías L,M,Mi. De 10 a 12; e-mail: [email protected]