Skip to content

xiangao1/ND-Pyomo-Cookbook

 
 

Repository files navigation

Welcome to Notre Dame PyomoFest!

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. (Optional) Register for a CRC account. Many optimization solvers supported by Pyomo are now available on the CRC clusters.

What to Bring to PyomoFest

  1. (Required) A laptop computer with Python, Pyomo, and a few solvers installed. See Getting Started for more information. Don't forget your power cord!

  2. (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.

What will be Provided

  1. Coffee, lunch, and afternoon snacks
  2. Pyomo examples and instructional material (via a download link)
  3. Advice on implementing your own research problems in Pyomo

PyomoFest Agenda and Location

Printable agenda with supplemental Pyomo installation instructions

Day 1 - Tuesday, June 5

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

Day 2 - Wednesday, June 6

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

Day 3 - Thursday, June 7

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

Getting Started with Pyomo

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.

Linear Programming

Assignment Problems

Scheduling Problems with Disjunctive Constraints

Simulation

Differential Algebraic Equations

Finance

About

A repository of Pyomo examples.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 99.8%
  • TeX 0.2%