(40b) New Features and Comprehensive Benchmarking Study of the Pyomo Robust Optimization Solver
AIChE Annual Meeting
2021
2021 Annual Meeting
Computing and Systems Technology Division
Software Tools and Implementations for Process Systems Engineering
Sunday, November 7, 2021 - 3:45pm to 4:00pm
For practical robust optimization, many packages exist for various problem types and programming languages [9, 10, 11]. However, PyROS represents the first RO solver capability in Python/Pyomo for the aforementioned class of problems that can guarantee explicit robustness against the entire uncertainty set [12, 13]. To achieve this, PyROS implements the general robust cutting-set (GRCS) algorithmic approach and employs general polynomial decision rules to handle two-stage problems.
In this talk we present a comprehensive evaluation of the performance of PyROS. Since there is no existing robust optimization benchmark model library for the model class of interest, we start by establishing a new library of benchmark RO problems. To achieve this, we first identified a set of 10 nonlinear and/or nonconvex optimization problems across a range of sizes (number of variables and constraints) and model properties (types of nonlinearities and where in the model those arise) from existing deterministic NLP model libraries [14]. Then, given these base models, we created a benchmark suite of robust optimization problems that consider a systematically partitioned decision variable space between first- and second-stage decisions, along with different subsets and number of parameters that could be considered uncertain in each case. Each model instance is then solved via PyROS with different uncertainty set types, as well as different decision rule polynomial degrees. This leads to approximately 8,000 robust optimization problem instances. Two key outcomes of this study are to first understand the effect of decision rule flexibility on robust optimal costs, and to determine trade-offs between optimal price and robustness across hierarchies of increasingly larger uncertainty sets. Additionally, we observe general trends regarding tractability, robust optimality, and recourse flexibility. By conducting this study on such a large test set, we illustrate the broad applicability of the PyROS tool and its ability to address involved robust optimization instances.
References
[1] Qi Zhang, Michael F. Morari, Ignacio E. Grossmann, Arul Sundaramoorthy, and Jose M. Pinto. An adjustable robust optimization approach to scheduling of continuous industrial processes providing interruptible load. Computers & Chemical Engineering, 86:106-119, 2016.
[2] Hanyu Shi and Fengqi You. A computational framework and solution algorithms for two-stage adaptive robust scheduling of batch manufacturing processes under uncertainty. AIChE Journal, 62(3):687-703, 2016.
[3] Nikolaos H. Lappas and Chrysanthos E. Gounaris. Multi-stage adjustable robust optimization for process scheduling under uncertainty. AIChE Journal, 62(5):1646-1667, 2016.
[4] Logan R. Matthews, Chrysanthos E. Gounaris, and Ioannis G. Kevrekidis. Designing networks with resiliency to edge failures using two-stage robust optimization. European Journal of Operational Research, 279(3):704-720, 2019.
[5] Yuan Yuan, Zukui Li, and Biao Huang. Nonlinear robust optimization for process design. AIChE Journal, 64(2):481-494, 2018.
[6] Johannes Wiebe, Ines Cecilio, and Ruth Misener. Robust optimization for the pooling problem. Industrial & Engineering Chemistry Research, 2019.
[7] Sanjula Kammammettu and Zukui Li. Two-stage robust optimization of water treatment network design and operations under uncertainty. Industrial & Engineering Chemistry Research, 2019.
[8] Natalie M. Isenberg, Paul Akula, John C. Eslick, Debangsu Bhattacharyya, David C. Miller, and Chrysanthos E. Gounaris. A generalized cuttingâset approach for nonlinear robust optimization in process systems engineering. AIChE J. 2021.
[9] Phebe Vayanos, Qing Jin, and George Elissaios. Roc++: Robust optimization in C++. arXiv preprint. arXiv:2006.08741, 2020.
[10] Joel Goh and Melvyn Sim. Robust optimization made easy with ROME. Operations Research, 59(4):973-985, 2011.
[11] Iain Dunning and Yeesian Ng. JuMPeR: Julia for Mathematical Programming - extensions for Robust. https://github.com/IainNZ/JuMPeR.jl.
[12] Natalie M. Isenberg, John D. Siirola, Chrysanthos E. Gounaris. PyROS: A Pyomo Robust Optimization Solver for Robust Process Design. (In preparation)
[13] William E. Hart, Jean-Paul Watson, and David L. Woodruff. Pyomo: modeling and solving mathematical programs in Python. Mathematical Programming Computation 3(3): 219-260, 2011.
[14] The Optimization Firm. NLP and MINLP Test Problems. https://minlp.com/nlp-and-minlp-test-problems.