Domingo Giménez Cánovas

 

Curso 2013-2014

Prácticas de Algoritmos y Estructuras de Datos II

segundo curso del Grado en Ingeniería Informática, Grupo 3 y PES
3 créditos teóricos y 3 prácticos
Segundo cuatrimestre

Profesor de Teoría Norberto Marín, de prácticas Domingo Giménez.

Texto-guía de Algoritmos y Estructuras de Datos, y su fe de erratas

Tutoríasde prácticas martes, miércoles y jueves de 12 a 14 (mejor quedar antes por correo a domingo@um.es, para esas horas u otras)

· Planificación general

Habrá sesiones de prácticas dedicadas a resolver problemas y otras para dudas de prácticas.

Inicialmente, en las sesiones de análisis de algoritmos se resolverán problemas y al final se realizará una prueba de resolución de problemas, pudiendo utilizar material bibliográfico. A partir de una cierta nota en esa prueba se puede no realizar el parcial de Análisis de Algoritmos, y a partir de otra nota se puede optar por hacer la media entre la nota de la prueba y la del parcial.

Habrá una primera práctica dedicada a Análisis y Divide y Vencerás.

En las sesiones prácticas de Programación Dinámica se procederá como en las de análisis, en este caso pudiendo servir el resultado de esta prueba de programación dinámica como nota del problema de programación dinámica en el examen final, ya sea no teniendo que realizar el problema o obteniéndose la nota en ese problema con la media entre lo obtenido en la prueba y en el problema del examen.

La segunda práctica estará dedicada a avance rápido, backtracking y ramificación y poda.

· Planificación temporal (que puede sufrir ligeros cambios)

febrero 2014

lunes

Martes 11

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prob. Análisis I

Miércoles 12

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prob. Análisis I

Jueves 13

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prob. Análisis I

Viernes 14

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Recuperación Miércoles

Prob. Análisis II

Lunes


Martes 18

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prob. Análisis II

Miércoles 19

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prob. Análisis III

Jueves 20

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prob. Análisis II

Viernes


Lunes


Martes 25

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prob. Análisis III

Miércoles 26

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prob. Análisis IV

Jueves 27

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prob. Análisis III

Viernes 28

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Recuperación Jueves

Prob. Análisis IV

                                                                Marzo

Lunes


Martes 4

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prob. Análisis IV

Miércoles 5

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Test Análisis

Jueves 6

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Test Análisis

Viernes

Lunes 10

Saldrá el enunciado de la práctica de análisis y dv


Martes 11

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Test Análisis

Miércoles 12

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac DV I

Jueves 13

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac DV I

Viernes

Lunes

Martes 18

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac DV I

Miércoles

Jueves 20

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac DV II

Viernes 21

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac DV II


Martes 25

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac DV II

Miércoles 26

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac DV III

Jueves 27

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac DV III

Viernes 28

Parcial de Análisis de Algoritmos

                                                                Abril

Lunes


Martes 1

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac DV III

Miércoles 2

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac DV IV

Jueves 3

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac DV IV

Viernes 4

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Recuperación Martes

Prac DV IV

Lunes 7

Entrega práctica análisis y DV

Saldrá el enunciado de la práctica de ar, back y bb

Martes 8

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac PD

Miércoles 9

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac PD

Jueves 10

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac PD

Viernes


Martes 29

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac AR, Back, BB I

Miércoles 30

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac AR, Back, BB I



                                                         Mayo

Lunes


Martes 6

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Test PD

Miércoles 7

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Test PD

Jueves 8

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Test PD

Viernes 9

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Recuperación Jueves

Prac AR, Back, BB I

Lunes

Martes 13

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac AR, Back, BB II

Miércoles 14

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac AR, Back, BB II

Jueves 15

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Prac AR, Back, BB II

Viernes 16

17:10 - 18:50 AED2
Lab Sub 3.1 y PES (Lab 1.4)

Recuperación Jueves

Prac AR, Back, BB III

Lunes


Martes 20

18:50 - 20:30 AED2
Lab Sub 3.3 (Lab 1.6)

Prac AR, Back, BB III

Miércoles 21

18:50 - 20:30 AED2
Lab Sub 3.2 (Lab 1.5)

Prac AR, Back, BB III

Jueves


Viernes

Lunes 26

Entrega práctica AR, Back y BB

Martes


Miércoles

Jueves

Viernes

Examen final de junio, día 13 por la tarde

Examen final de julio, día 16 por la tarde



·         Apuntes (modificados a julio del 2001, contienen exámenes anteriores al 2001): postscript, pdf

En 2003 se editó un texto-guía de la asignatura de "Algoritmos y Estructuras de Datos" del plan antiguo. El segundo volumen es de la parte de Algorítmica, y básicamente contiene los apuntes y problemas, revisados y (esperamos) mejorados.

·           Exámenes

examen de febrero 2001: postscript, pdf,

examen de septiembre 2001: postscript, pdf,

examen de diciembre 2001: postscript, pdf,

examen de febrero 2002: postscript, pdf,

examen de septiembre 2002: postscript, pdf,

examen de diciembre 2002: postscript, pdf,

examen de febrero 2003: postscript, pdf,

examen de septiembre 2003: postscript, pdf,

examen de diciembre 2003: postscript, pdf,

examen de febrero 2004: postscript, pdf,

parcial de algoritmos de AED, mayo  2004: postscript, pdf,

final de AED, junio  2004 (en postscipt: enunciado, soluciones)

final de AED, septiembre  2004 (en postscipt: enunciado, soluciones)

Diciembre  2004 (el de diciembre de AED, que contiene la parte de algoritmos, en postscript)

Examen 10 de junio, coincidiendo con el segundo parcial 2005, algoritmos, de AED, postscript, pdf,

Examen 28 de junio , postscript, pdf,

Examen 6 de septiembre 2005, pdf,

Examen 1 de diciembre 2005, pdf

Examen 9 de marzo 2011 (Análisis de Algoritmos), pdf

Examen final junio 2011 enunciados y solución: pdf 

Examen septiembre 2011, por ahora sólo están las soluciones de los problemas de avance rápido, programación dinámica, backtracking y branch-and-bound, pdf,

Examen parcial 1 de marzo 2012 (Análisis de Algoritmos), pdf

Final 1 de junio de 2012, pdf

Examen parcial marzo 2013 (Análisis de Algoritmos), Enunciado del Grupo 3, Enunciado del PES, Solución del PES

Final 7 de junio de 2013, enunciado y solución

Enlace a un  tutorial de C

Enlaces a la asignatura de ISO:  apuntes de Csobre make

·          TEMARIO:


Tema 0: Introducción.
Noción de algoritmo. Algoritmos, programas y problemas.

Tema 1: Análisis de Algoritmos.
Notaciones asintóticas.
Resolución de ecuaciones recurrentes. Cambio de variable y transformación de la imagen.

Tema 2: Divide y vencerás:
Método general.
Ordenación por mezcla.
Ordenación rápida.
Multiplicación rápida de enteros.
Multiplicación rápida de matrices.

Tema 3: Algoritmos voraces:
Método general.
Problema de la mochila.
Secuenciamiento de trabajos a plazos.
Heurísticas voraces.

Tema 4: Programación dinámica:
Descripción.
Problema de la mochila 0/1.

Tema 5: Backtracking:
Descripción.
Problema de las n reinas.
Problema de la mochila.
Análisis.

Tema 6: Branch and Bound:
Estrategias FIFO, LIFO, LC, LC-FIFO, LC-LIFO.
Secuenciamiento de trabajos.
Problema de la mochila.

·           BIBLIOGRAFÍA:
Aho, Hoptcroft, Ullman: The design and analysis of computer algorithms. Addison-Wesley. 1974.
Aho, Hoptcroft, Ullman: Estructuras de datos y algoritmos. Addison-Wesley. 1988.
Baase: Computer algorithms. Introduction to design and analysis.
Addison-Wesley. 1983.
Brassard, Bratley: Algorítmica. Concepción y análisis. Masson. 1990.
Brassard, Bratley: Fundamentos de Algoritmia. Prentice-Hall. 1996. (BÁSICA)
Cormen, Leiserson, Rivest: Introduction to Algorithms. MIT Press.
1991.
Galve, González, Sánchez y Velázquez: Algoritmia: diseño y análisis de algoritmos Funcionales e Imperativos. Ed ra-ma. 1993.
Giménez Cánovas, Domingo; Cervera López, Joaquín; García Mateos, Ginés; Marín Pérez, Norberto: Algoritmos y Estructuras de Datos. Volumen II. Algoritmos. Texto guía. DM 2003. (BÁSICA)
Gonnet, Baeza-Yates: Handbook of Algorithms and Data Structures. Second Edition. Addison-Wesley. 1991.
Horowitz, Sahni: Fundamentals of computer algorithms.
Pitman. 1978.
Knuth: El arte de programar ordenadores. Vol 3: Clasificación y búsqueda. Reverté. 1987.
Mehlhorn: Data structures and algorithms. Vol 1: Sorting and Searching. Springer-Verlag. 1984.
Mehlhorn: Data structures and algorithms. Vol 2: Graph algorithms and NP-Completeness.
Springer-Verlag. 1984.
Troya Linero: Análisis y diseño de algoritmos. VI Escuela de Verano de Informática. AEIA. 1984.
Wirth: Algoritmos + Estructuras de Datos = Programas. Ediciones del Castillo. 1980.
Wirth: Algoritmos y estructuras de datos. Prentice-Hall. 1987.