Python-based Surrogate Modeling Objects (PySMO)

What is PySMO?

Python-based Surrogate Modeling Objects (PySMO) is an open-source framework for general-purpose surrogate modeling techniques, integrated with the Pyomo mathematical optimization framework (on which IDAES is also based). PySMO provides a suite of tools for building, training, validating, and deploying surrogate models in optimization problems. It supports various surrogate modeling techniques, including polynomial regression, Kriging (Gaussian process regression), and radial basis functions. PySMO is designed to be flexible and extensible, allowing users to easily incorporate new surrogate modeling methods and customize existing ones to suit their specific needs. PySMO supports flowsheeting and direct integration into an equation-oriented modeling framework, providing the full suite of tools for both sampling and surrogate model generation.

PySMO's surrogate modeling capabilities have been shown to produce comparable results and performance in mathematical optimization problems to ML models trained with open-source tools such as Keras, as well as commercial surrogate modeling tools (e.g., ALAMO) [1 , 2].

PySMO is free and open-source, and is released under the BSD license as part of IDAES. Further information may be found on GitHub. Documentation for PySMO may be found here .

Research Using PySMO