Structured Optimization Modeling with Pyomo and Coopr
Vložit
- čas přidán 24. 07. 2024
- Computational tools for modeling mathematical programs are widely used within both academia and industry. Available commercial and open-source modeling packages support generic modeling by separating modeling constructs from instance data through concepts like sets, parameters, and parameterized constraints. However, limiting models to "flat" algebraic representation forces the modeler to explicitly convert or relax high-level constructs, which can obscure much of the structure in the model. In this presentation, I will provide an overview of Pyomo, an open-source library for modeling general algebraic optimization problems in Python. I will go on to show how high-level non-algebraic modeling constructs can be coupled with automated model transformations to improve model clarity and abstraction. This coupling provides a more flexible workflow where the modeler can explicitly apply transformations that link the structured model to a particular solver, thereby separating the core model from subsequent reformulation decisions. I will draw examples from various Coopr project areas including disjunctive, bilevel, dynamic, and stochastic programming.
Dr. John D. Siirola is a Principal R&D Member of Technical Staff in the Analytics Department at Sandia National Laboratories. His main areas of expertise are systems design, operations research, optimization modeling, and optimization algorithms. John's research focuses on the intersection of computational tools with systems design and analysis; in particular, developing approaches for modeling highly structured systems, optimization algorithms that can exploit the expressed structure, and the application of these techniques to national security problems. Much of John's research is disseminated through open-source software projects. He leads the Acro project (optimization algorithms) and co-leads the Coopr project (optimization modeling). He is a core contributor to the Water Security Toolkit (modeling and analysis tools for drinking water distribution systems) and Dakota (optimization and uncertainty quantification), and contributes to numerous tools, including Utilib, PyUtilib, gcovr, and cxxtest. John has a B.S. from Purdue University (2000) and Ph.D. from Carnegie Mellon University (2005), both in Chemical Engineering. He is a senior member of the AIChE, member of INFORMS, and member of the COIN-OR Foundation. John currently serves on the COIN-OR Technical Leadership Council. He was also selected to co-chair the 2014 Foundations of Computer Aided Process Design (FOCAPD) conference. - Věda a technologie
Perfect timing. I just started using this language and was looking for a tutorial. This is great!!!
Matthew, I'm glad that you found this useful. We have another series of webinars coming up this fall...apmonitor.com/wiki/index.php/Main/ApplicationWebinars
thanks for the video...
I just can't get the Rosenbrock example to work. I have it exactly as showed but still not working.
Here is the Rosenbrock function in Python on Stack Overflow: stackoverflow.com/questions/59403528/constraints-better-as-equation-hard-or-objective-soft/ You can install scipy with `pip install scipy` or gekko with `pip install gekko`.
Thank you for this tutorial. Please, where can I find an example of an aerodynamic shape optimization problem using a space mapping based surrogate model solved with Pyomo?
A Google search shows many papers on this topic but none with the keyword Pyomo.
@@apm , Thank for your prompt reply!
Have thanks for this video, please where can I find an example of Topology optimization problem with a discretization FEM solved with promo?
I can't find anything on Google about this topic. There is this: www.scielo.br/scielo.php?script=sci_arttext&pid=S1679-78252016000200378 but no mention of Pyomo. You may want to post in the Pyomo forum (groups.google.com/forum/#!forum/pyomo-forum) to see if someone has a related project.
Thx for your help!
one hour of tutorial later and I am still unable to run a single model. Great work...
Try gekko if you need an optimization package that you can pip install and start. Setup with pyomo is more complex and this talk isn't geared towards a quick start guide. gekko.readthedocs.io/en/latest/
Hello friend!
I was wondering if you can extract the model in .lp format.
best regards
Victor Lage, I think Pyomo generates nl files, not lp files. However, there may be some new developments that allow lp files as well.
Is there an official forum where I can get further informations regarding pyomo's funcionalities?
groups.google.com/forum/#!forum/pyomo-forum