ND Pyomo Cookbook is a collection of notebooks showing the use Pyomo to solve modeling and optimization problems. With Pyomo, one can embed within Python an optimization model consisting of decision variables, constraints, and an optimization objective. Pyomo includes a rich set of features enables the modeling and analysis of complex systems.
The notebooks in this collection were developed for instructional purposes at Notre Dame. Originally developed using the Anaconda distribution of Python, the notebooks have been updated to open directly Google Colaboratory where they can be run using only a browser window.
This collection was originally developed as a followup to PyomoFest at Notre Dame that was held June 5-7, 2018. Notes distributed at the event are included in this repository: agenda, slides and exercises
September, 2022 Update. This repository has been revised using JupyterBook. Some notebooks have been updated with more consistent use of Pyomo. Where appropriate, constraints, objectives, and expressions have been rewritten using the Pyomo decorator syntax. New notebooks include 5.4 Diffusion and Adsorption in Polymers.
- 1.1 Installing a Pyomo/Python Development Environment
- 1.2 Running Pyomo on Google Colab
- 1.3 Running Pyomo on the Notre Dame CRC Cluster
- 1.4 Cross-Platform Installation of Pyomo and Solvers
- 2.1 Production Models with Linear Constraints
- 2.3 Production Model Sensitivity Analysis
- 2.3 Linear Blending Problem
- 2.4 Design of a Cold Weather Fuel for a Camping Stove
- 2.5 Gasoline Blending
- 2.6 Model Predictive Control of a Double Integrator
- 4.1 Introduction to Disjunctive Programming
- 4.2 Machine Bottleneck
- 4.3 Job Shop Scheduling
- 4.4 Maintenance Planning
- 4.5 Scheduling Multipurpose Batch Processes using State-Task Networks
- 4.6 Unit Commitment
- 5.1 Response of a First Order System to Step and Square Wave Inputs
- 5.2 Exothermic CSTR
- 5.3 Transient Heat Conduction in Various Geometries
- 5.4 Diffusion with Adsorption in Polymers
- 6.1 Unconstrained Scalar Optimization
- 6.2 Maximizing Concentration of an Intermediate in a Batch Reactor
- 6.3 Path Planning for a Simple Car
- 6.4 Soft Landing Apollo 11 on the Moon