Tras los éxitos consecutivos de las dos ediciones del curso de introducción a Python para científicos e ingenieros llega el momento de dar el salto para plantear la resolución de problemas de optimización matemática con aplicación a nivel académico y/o industrial. En este taller práctico enseñaremos a utilizar Pyomo, la alternativa gratuita a GAMS y AMPL desarrollada en Python.
Un problema de optimización consiste, a grandes rasgos, en maximizar o minimizar una función real eligiendo sistemáticamente valores de entrada (tomados de un conjunto permitido) y calculando el valor de la función. Este problema se vuelve interesante cuando aparecen restricciones (lineales y no lineales) y variables enteras (para modelar la toma de decisiones discretas). Dos de los lenguajes de modelado comerciales más utilizados para resolver este tipo de problemas matemáticos son GAMS y AMPL. Pyomo (pyomo.org) proporciona una alternativa libre y gratuita a estos lenguajes de modelado algebraico haciendo uso de Python, un lenguaje de programación de alto nivel con todas las funciones con un rico conjunto bibliotecas científicas.
Respecto a sus capacidades como lenguaje de modelado algebraico, Pyomo es compatible con una amplia gama de tipos de problemas de optimización tipo LP, QP, NP, MILP, MINLP, MISP entre otros y se comunica con los principales solvers comerciales, gratuitos y/o libres.
La resolución mediante métodos de optimización son a menudo desconocidos o bien delegados por falta de tiempo y/o recursos. Por este motivo, en este taller para estudiantes de la EPS de la Universidad de Alicante se realizará un breve repaso a conceptos de optimización y presentará Pyomo para la resolución de diferentes problemas tipo.
Duración: 6 horas
Coste: ¡Gratuito! (plazas limitadas)
Horario y aulas:
Del jueves 18 y viernes 19 de febrero de 16:00 a 19:00 h en el edificio Politécnica I (laboratorio L24)
Temario
- Repaso al ecosistema Python, Jupyter Notebook e instalación de Pyomo
- Introducción a Pyomo (ver vídeo)
- Resolución de problemas de optimización con Pyomo tipo LP (ver vídeo)
- Repaso a las posibilidades de Pyomo:
- Problemas con un archivo de datos como entrada y conexión varios solvers + NEOS Server
- Variables estocásticas para modelar con incertidumbre
- Resolución de DAEs
A continuación, puedes ver las diapositivas de introducción a Pyomo que Daniel Domene y Carlos Planelles presentaron durante la PyConES 2015:
Instructor:
Juan Luis Cano es Ingeniero Aeronáutico por la Universidad Politécnica de Madrid y editor del blog de Pybonacci, referencia a nivel nacional en cuanto al uso de Python científico.
Juan Luis repite como instructor y posee amplia experiencia docente tanto en empresas interesadas en adoptar Python como herramienta de trabajo como en su universidad de origen (UPM).CAChemE (@CAChemEorg) estará presente como organización y apoyo. El curso se ha diseñado para que sea totalmente práctico, con ejemplos extraídos de asignaturas de optimización comunes en carreras científicas y de ingeniería química.
Requisitos:
- Conocimientos de optimización. Haber cursado una asignatura de optimización de procesos que incluya conocimientos básicos sobre problemas de tipo LP, MIP, NLP y MINLP, y sobre el modelado de estos problemas (incluyendo variables binarias). Si no estás familiarizado a la resolución de problemas de optimización GAMS o AMPL, te recomendamos varios recursos online para aprender por tu cuenta y/la o documentación de Pyomo.
- Conocimientos de programación. Por falta de tiempo, no podremos de explicar conceptos básicos de programación (por ejemplo, qué es un bucle y un condicional, etc.) Con saber cualquier otro lenguaje de programación MATLAB (o similares) es suficiente.
- Visualización previa del curso online de Python. Si bien Python es uno de los lenguajes más fáciles de aprender, no cubriremos la sintaxis y posibilidades del lenguaje en esta ocasión (es un taller de Pyomo). Todas sus funcionalidades y librerías serán referenciadas a este material online durante el curso.
- Poder asistir a la totalidad del curso
- Ser estudiante de la UA o formar parte del colectivo PDI o PAS.
Inscripción:
El plazo de solicitud de inscripción se abrirá el miércoles 10 de febrero a las 16:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas 😉
- Debido a la alta demanda y las plazas limitas, se confirmará la inscripción vía email. Te recomendamos que estés pendiente de nuestras redes sociales (Twitter, Facebook) para recibir la información más inmediata. Para cualquier duda que tengáis podéis usar las mismas, los comentarios, nuestro formulario de contacto o preguntarnos por los pasillos de la facultad.Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.
¿Cómo me lo instalo?
Pese a que los ordenadores de las salas tendrán Anaconda con Python 3 instalado, es buena idea que traigas tu portátil para configurarlo en tu equipo. Recomendamos instalar Anaconda siguiendo estas instrucciones:
Bonus – Charla de programación: ¡Sed Hackers!
El viernes tendremos a Victor Terrón (Ingeniero de Google) que nos hablará de como convertirse en hackers
- Viernes 18 de febrero a las 13:00 h en el Salon de Actos I de la EPS (leer más)
Dirigida a estudiantes, esta charla tiene como objetivo ofrecer un enfoque distinto al habitual, mostrando el mundo de la programación accesible para todos. Todos conocemos las “Leyendas Urbanas” que existen sobre Hackers y la programación, a lo largo de la charla se lleva a cabo la comparativa de la realidad frente a la ficción. Dando también a conocer al oyente como puede comenzar a desenvolverse en este nuevo mundo. El acceso a esta charla no necesita de registro alguno.
Aprende más sobre Python
El ecosistema Python es muy amplio y se encuentra plena evolución, si quieres saber más puedes ver nuestro curso online y el blog de Pybonacci: