PyROS: The Pyomo Robust Optimization Solver

We present PyROS, a Python-based meta-solver that automates a generalized cutting-set algorithm for the solution of nonconvex two-stage robust optimization (RO) problems with uncertain equality constraints. Freely available through the open-source optimization software package Pyomo, PyROS is designed to operate on a user-provided deterministic model and uncertainty set, such that a solution to the RO counterpart can be obtained without any reformulation requirements on the part of the modeler. Second-stage degree-of-freedom variables are supported through the automatic construction of static, affine, or quadratic decision rules. PyROS includes a suite of pre-implemented classes to facilitate the representation of uncertainty sets that are commonly used in the RO literature; custom-written, nonlinear programming representable uncertainty sets are also allowed. Thus, PyROS is designed to enable users to seamlessly transition their deterministic optimization models to robust optimization workflows. We demonstrate the capabilities, reliability, and performance of PyROS with the results of a computational benchmarking study.

Article

Download

View PDF