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: 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:

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 una introducción al lenguaje C para programadores de Python.
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: Software necesario o recomendado: Enlaces de interés: