Structured Optimization Modeling with Pyomo and Coopr

Sdílet
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

Komentáře • 17

  • @mattstirling3996
    @mattstirling3996 Před 10 lety

    Perfect timing. I just started using this language and was looking for a tutorial. This is great!!!

    • @apm
      @apm  Před 10 lety

      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

  • @yogeshmanoharan6918
    @yogeshmanoharan6918 Před 3 lety +1

    thanks for the video...

  • @osvaldoillescas3329
    @osvaldoillescas3329 Před 4 lety +1

    I just can't get the Rosenbrock example to work. I have it exactly as showed but still not working.

    • @apm
      @apm  Před 4 lety

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

  • @severintinmitonde6641
    @severintinmitonde6641 Před 4 lety +1

    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?

    • @apm
      @apm  Před 4 lety

      A Google search shows many papers on this topic but none with the keyword Pyomo.

    • @severintinmitonde6641
      @severintinmitonde6641 Před 4 lety

      @@apm , Thank for your prompt reply!

  • @gregoirenjnj8522
    @gregoirenjnj8522 Před 7 lety

    Have thanks for this video, please where can I find an example of Topology optimization problem with a discretization FEM solved with promo?

    • @apm
      @apm  Před 7 lety +1

      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.

    • @gregoirenjnj8522
      @gregoirenjnj8522 Před 7 lety

      Thx for your help!

  • @danielpombo8869
    @danielpombo8869 Před 3 lety

    one hour of tutorial later and I am still unable to run a single model. Great work...

    • @apm
      @apm  Před 3 lety

      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/

  • @Elodius2
    @Elodius2 Před 7 lety

    Hello friend!
    I was wondering if you can extract the model in .lp format.
    best regards

    • @apm
      @apm  Před 7 lety

      Victor Lage, I think Pyomo generates nl files, not lp files. However, there may be some new developments that allow lp files as well.

    • @Elodius2
      @Elodius2 Před 7 lety

      Is there an official forum where I can get further informations regarding pyomo's funcionalities?

    • @apm
      @apm  Před 7 lety

      groups.google.com/forum/#!forum/pyomo-forum