1158065 - Laboratorio de Optimización
Institución: Universidad Autónoma Metropolitana, Azcapotzalco.
Instructores: Rodrigo Alexander Castro Campos.
Trimestre: 2025-I.
Grupo: CPMOPT01.
Horario: Martes y jueves de 7:45 a 10:00.
Salón: E-312.
Contenido oficial del curso:
- Algoritmos exactos.
- Algoritmos de aproximación. Obtención de cotas.
- Heurísticas.
- Criterios de comparación de resultados.
Calificación:
Habrá al menos cuatro tareas y cada una consistirá en la resolución de un problema de optimización que involucre el uso de solucionadores o la implementación de programas. Cada tarea estará disponible con al menos una semana de anticipación con respecto a la fecha de entrega, y recibirá una calificación de 0 a 100. La calificación final se obtiene del promedio de las calificaciones de las tareas. La escala de calificación en acta es:
- Al menos 60 puntos para acreditar con S.
- Al menos 73 puntos para acreditar con B.
- Al menos 87 puntos para acreditar con MB.
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 y se impondrá desde amonestación escrita hasta suspensión por dos trimestres. Los alumnos que incurran en esta falta, o que envíen programas cuya escritura haya sido asistida mediante herramientas de inteligencia artificial generativa, no tendrán derecho a aprobar el curso.
Pueden consultar esta lista de problemas de "Programación Estructurada" para que practiquen.
Pueden consultar esta lista de problemas de "Algoritmos y Estructuras de Datos" para que practiquen.
Pueden consultar esta lista de problemas de "Análisis y Diseño de Algoritmos" para que practiquen.
Calendario: El calendario es tentativo y podrá cambiar. Pueden consultar programas de ejemplo de los temas del curso.
11/02: Presentación del curso. Introducción a C.
13/02: Introducción a C++. Sesión de práctica de programación estructurada.
18/02: Sesión de práctica de programación estructurada.
20/02: Algoritmia y eficiencia.
25/02: Medición de tiempo y generación de números aleatorios.
27/02: Secuencias dinámicas y algoritmos. Recursión y sus aplicaciones.
04/03: Día de descanso obligatorio.
06/03: Introducción a Gurobi. Modelación matemática y el lenguaje de modelado LP.
11/03: Instalación de Gurobi. Acceso al servidor de trabajo y comandos básicos.
13/03: Generación de modelos LP mediante programas. Uso de Gurobi desde línea de comandos. Tarea 1 para el 27/03. Caso de entrada. Calificaciones.
18/03: Generación de modelos LP mediante programas. Parámetros configurables.
20/03: El proceso de optimización de modelos lineales. La interfaz de programación de Gurobi.
25/03: Generación de modelos mediante el API de Gurobi.
27/03: Generación de modelos mediante el API de Gurobi. Tarea 2 para el 15/04. Caso de entrada. Calificaciones.
01/04: Generación de modelos mediante el API de Gurobi.
03/04: Algoritmos glotones para calcular soluciones iniciales. Tarea 3 para el 24/04. Caso de entrada.
08/04: Algoritmos de aproximación para calcular soluciones iniciales.
10/04: Algoritmos de búsqueda aleatoria para calcular soluciones iniciales.
15/04: Retrollamadas y algoritmos de búsqueda local para mejorar soluciones intermedias. Tarea 4 para el 07/05.
17/04: Día de descanso obligatorio.
Posiblemente se reprogramen las fechas de entrega de tareas pendientes debido al paro.
22/04: Comparación de rendimiento: Gurobi contra otros algoritmos exactos (programación dinámica).
24/04: Comparación de rendimiento: Gurobi contra otros algoritmos exactos (algoritmos glotones).
29/04: Comparación de rendimiento: implementaciones entre lenguajes compilados e interpretados.
Entornos de programación que pueden usar localmente:
Entornos de programación que pueden usar en línea:
Bibliografía:
- Castro Campos. Notas de curso.
- Gurobi Optimization Inc., Gurobi optimizer reference manual, 2019.
- The C++ Programming Language (4th Edition), Addison-Wesley ISBN 978-0321563842, mayo 2013.
- Textos relacionados con la resolución de problemas de optimización mediante solucionadores.
Software necesario o recomendado:
Enlaces de interés: