115117 Análisis de Algoritmos
Trimestre 2010 Otoño
Instructor: Dr. Francisco
Javier Zaragoza Martínez.
Inicio y fin del curso: lunes
20 de septiembre a viernes 3 de diciembre de 2010.
Grupo: CCT81 (lunes y
miércoles
de 16:30 a 18:00).
Asesorías: lunes,
miércoles y viernes de 10:00 a 11:30 en la
oficina H-264.
Salón: E309.
Cupo: 50 estudiantes.
Contenido
Se cubrirá el contenido
oficial del curso (el cual se detalla
abajo). Es posible que el temario se cubra en un
orden distinto al allí mencionado.
- Conceptos matemáticos básicos.
- Relaciones de recurrencia.
- Comportamiento asintótico de funciones.
- Complejidad computacional de algoritmos.
Evaluación
La calificación será como sigue: Las mejores cuatro
tareas (de un total de seis)
valdrán un total de 40 puntos y los tres exámenes un
total
de 60 puntos. No
habrá examen global. Además de obtener al menos 36
puntos
en los exámenes y al menos 24 puntos en las tareas, se
requiere:
- obtener al menos un total de 60 puntos para acreditar con S,
- obtener al menos un total de 73 puntos para acreditar con B y
- obtener al menos un total de 87 puntos para acreditar con MB.
Las tareas que sean programas se deberán entregar por correo
electrónico a
la cuenta aa en callix.azc.uam.mx. Su cuenta
está en la misma máquina, a la que se pueden conectar con
ssh y que tiene
dirección IP 148.206.79.29. Recuerden que, de acuerdo al Reglamento de
Alumnos de la UAM, es falta de los alumnos en contra de la
Institución el suplantar o permitir ser suplantado en la
realización de actividades académicas (Artículo 9)
y se impondrá desde amonestación escrita hasta
suspensión por dos trimestres (Artículo 13).
Calendario
El calendario de clases, de entrega de tareas y de
exámenes escritos que muestro abajo es tentativo e irá
apareciendo paulatinamente. Las referencias entre paréntesis son
a los números de
página de las notas (nueva versión).
- 21/09: Inicio del
curso. Introducción e inducción matemática (1-18).
- 23/09: Correctitud
de algoritmos recursivos e iterativos (19-39).
- 23/09 a 28/09:
Examen eliminatorio del Séptimo Concurso de
Programación de la UAM. Forma de inscripción y examen eliminatorio (corregido).
- 28/09: Notación O y tipos de análisis
(40-60).
- 30/09: Análisis de un algoritmo no recursivo: ordenamiento
por montículo
(61-77) [este tema lo
deberán estudiar por su cuenta]. Tarea
1 (para el 07/10) y calificaciones.
- 05/10:
Derivación y solución de relaciones de
recurrencia
(78-98).
- 07/10: Primer examen
parcial: Introducción al análisis de algoritmos
(1-98) y calificaciones. Tarea extra y calificaciones.
- 08/10 a 11/10:
Examen final
del Séptimo Concurso de Programación
de la UAM. Aquí está el examen.
- 12/10: Día feriado. Tarea 2 (para
el 21/10).
- 14/10: Análisis de algoritmos de divide y vencerás
(99-123).
- 19/10:
Análisis de un algoritmo de divide y
vencerás: quicksort (124-138).
- 21/10:
Análisis de otro algoritmo de divide y
vencerás: k-selección (139-152). Tarea
3 (para el 04/11).
- 26/10:
Análisis de algoritmos de programación
dinámica (153-165). Clase
cancelada
por
causas
de
fuerza mayor.
- 28/10:
Análisis de un algoritmo de
programación
dinámica: producto encadenado de matrices (166-174). Tarea 4
(para el 11/11).
- 02/11:
Día feriado.
- 04/11: Segundo examen
parcial: Análisis de algoritmos de divide y
vencerás y de programación dinámica
(99-174).
- 09/11: Análisis de dos algoritmos glotones:
almacenamiento óptimo en
cintas (198-206) y problema
continuo de la mochila (207-219).
- 11/11: Análisis de un algoritmo glotón: Dijkstra
(220-233). Tarea 5 (para el 18/11).
- 16/11:
Análisis de un algoritmo glotón: problema de
unión y búsqueda (234-241).
- 18/11:
Análisis de un algoritmo glotón:
árboles abarcadores de costo mínimo (242-252).
- 23/11: Estaré en un congreso.
- 25/11: Estaré en un congreso.
- 30/11:
Análisis de algoritmos de búsqueda con
retroceso: cadenas k-arias y aplicaciones (253-274). Tarea 6 (para el 09/12).
- 02/12:
Análisis de algoritmos de búsqueda con
retroceso: permutaciones y aplicaciones (275-290).
- 09/12: Tercer
examen parcial: Análisis de algoritmos glotones y de
búsqueda con retroceso (198-290).
- 13/12: Entrega del acta.
Bibliografía
- Baase y Van Gelder. Algoritmos
computacionales: Introducción
al análisis y diseño. Addison Wesley.
- Dasgupta, Papadimitriou, Vazirani. Algorithms.
Mc
Graw
Hill.
- Kleinberg
y Tardos. Algorithm Design.
Addison Wesley.
- Parberry. Lecture Notes on
Algorithm Analysis and Computational Complexity. University of
North Texas. [Notas del curso.]
- Parberry. Problems on Algorithms.
Prentice
Hall.
[Libro
de
problemas.]
- Sedgewick y Flajolet. An Introduction
to the Analysis of Algorithms. Addison Wesley. [Libro más
avanzado.]
- Wilf. Algorithms and
Complexity. A K Peters Ltd.