We are delighted to be hosting PyomoFest at Notre Dame on June 5-7. Thanks to gracious support from the Notre Dame Center for Research Computing and Sandia National Laboratory at Albequerque, this unique event will bring together campus researchers from a wide range of disciplines to a build an exciting new community of Pyomo users.
PyomoFest will include a mixture of presentations, hands-on sessions, and opportunities to consult with instructors on model development relevant to your own research. To make the best use of these opportunities, we urge PyomoFest participants to take several actions in preparation for the event. These include:
-
Download and install a Pyomo/Python development environment that you can use at the workshop. The Getting Started guides below provide instructions on how to install Python, Pyomo, and a basic set of solvers.
-
Review basic conceptual frameworks for optimization modeling. The notebooks in this repository include examples of linear programming (LP), mixed-integer linear programming (MILP), nonlinear programming (NLP), and more.
-
A goal of PyomoFest is to help new users apply Pyomo to their research. We encourage you to bring a research relevant application problem with you to the workshop. Unique data sets could arranged as simple spreadsheet.csv files, for example, and literature models could be summarized in some mathematical form.
-
A pre-workshop session will be held at 10am-12pm on Friday, June 1, in Room 116 DeBartolo Hall. The first hour provide a brief high-level overview of basic optimization concepts. During the second hour, we will offer help getting your laptop or a research problem ready for the workshop.
-
(Optional) Register for a CRC account. Many optimization solvers supported by Pyomo are now available on the CRC clusters.
-
(Required) A laptop computer with Python, Pyomo, and a few solvers installed. See Getting Started for more information. Don't forget your power cord!
-
(Recommended) A simple optimization problem that is relavent to your research. This may come from literature or be adapted from the Pyomo examples (see below). For best results, bring the mathematical model for your problem, posed as algebraic or differential equations, on paper. During PyomoFest, you will have the opportunity to work on implemented these problems in Pyomo and interact directly with expert users and developers.
Need help either installing Pyomo or identifying a getting started problem (i.e., mini-project)? Please take advantage of these opportunities:
- 10 AM - 12 PM on Friday, June 1 in Room 116 DeBartolo Hall. Pre-workshop tutorial and one-on-one help.
- 10 AM - 12 PM on Monday, June 4 in Room 181 Fitzpatrick Hall (conference room next to CBE main office). One-on-one help.
- Setup an appointment with Prof. Alex Dowling (adowling at nd.edu) or Prof. Jeff Kantor (kantor.1 at nd.edu) for advice on identifying a getting started problem.
- Setup an appointment with Jacob Gerace (jgerace at nd.edu) for help installing software.
- Coffee, lunch, and afternoon snacks
- Pyomo examples and instructional material (via a download link)
- Advice on implementing your own research problems in Pyomo
Printable agenda with supplemental Pyomo installation instructions
B01 McCourtney Hall (entire day)
8:00 AM - 8:30 AM
- Last minute help installing software
8:30 AM - 12:00 PM
- Python Tutorial
- Pyomo Fundamentals & Overview
- Introductory Excercises
12:00 PM - 1:00 PM
- Lunch Break
1:00 PM - 4:30 PM
- Introduction to Mixed Integer Programming (MIP) Algorithms
- MIP Excercises
- Pyomo Cookbooks by Prof. Kantor
B01 McCourtney Hall (entire day)
8:00 AM - 8:30 AM
- One-on-one advice from instructors
8:30 AM - 12:00 PM
- Nonlinear Programming (NLP) Algorithms
- Introduction to IPOPT
- NLP Excercises
- Structured Modeling and Pyomo Blocks
- Transformations
12:00 PM - 1:00 PM
- Lunch Break
1:00 PM - 4:30 PM
- Pyomo.DAE: Dynamic Optimization
- Pyomo.GDP: Sequencing and Switching
- Other Advanced Capabilities of Pyomo
B01 McCourtney Hall (morning)
8:00 AM - 8:30 AM
- One-on-one advice from instructors
8:30 AM - 12:00 PM
- Pyomo.PySP: Stochastic Programming
W210 Duncan Student Center (lunch and afternoon)
12:00 PM - 1:00 PM
- Lunch Break
1:00 PM - 4:30 PM
- Collaboration Time
Pyomo is a state-of-the-art package for modeling and solving optimization problems embedded within Python. Using Pyomo, complex models are described by specifying an optimization objective, one or more sets of decision variables, and collections of linear, nonlinear, discrete, and dynamical constraints. Pyomo includes a rich set of features to enable high-level modeling of complex systems, specifying solvers, and using Python to display the solution.
- Production Models with Linear Constraints
- Linear Blending Problems
- Mixture Design for a Cold Weather Camping Fuel
- Simple Gasoline Blending Example
- Machine Bottleneck
- Job Shop Scheduling
- Scheduling Multipurpose Batch Processes using State-Task Networks