A PYOMO tutorial will be held at Argonne by John D. Siirola and Jean-Paul Watson from Sandia National Laboratories on June 13. PYOMO is primarily an open-source modelling language for mathematical optimization problems developed within Python, see the abstract below. The tutorial is held under the umbrella MACS and will have the following format
- 8:30am-9:30am: Prerequisites – making sure your laptop is ready for the tutorial
- 9:30am-11:30am: Introduction to PYOMO
- 11:30am-1pm: Lunch break
- 1pm-4:30pm: Advanced topics: modeling stochastic optimization problems and optimization problems with ODE/DAE constraints. Half hour coffee break from 2:30-3:00.
Using Python and the Algebraic Modeling Language Pyomo to Specify, Solve, and Analyze Mathematical Programs
John D. Siirola and Jean-Paul Watson,Discrete Math and Complex Systems Department, Sandia National Laboratories,Albuquerque, New Mexico
The purpose of this hands-on seminar is to learn the basics of how to use the open-source Pyomo algebraic modeling language to specify, solve, and analyze mathematical programs – all within the Python programming language environment. Pyomo provides capabilities for modeling linear and non-linear programs, both with and without discrete variables. This tutorial assumes no background in Pyomo or Python. We will, however, assume that you have a laptop, and have ideally installed Coopr (https://software.sandia.gov/trac/coopr) prior to the seminar. That said, if there are installation problems or omissions, we will fix them at the start of the seminar. We will begin with a brief motivation for our interest in Pyomo and a crash course in Python. We will then introduce the Pyomo object structure (i.e., the modeling language) before developing basic models using Pyomo’s two modeling modes (Abstract and Concrete). We will conclude with several advanced topics, including efficient model generation, specification and solution of ODE and DAEs in Pyomo, and an introduction to stochastic programming with Pyomo.
Drs. Siirola and Watson are optimization professionals, albeit from different disciplines (chemical engineering and computerscience, respectively). They are co-developers of the Pyomo library and the larger Coopr package within which it is embedded.