Abstract
An extensible open-source deterministic global optimizer (EAGO) programmed entirely in the Julia language is presented. EAGO was developed to serve the need for supporting higher-complexity user-defined functions (e.g. functions defined implicitly via algorithms) within optimization models. EAGO embeds a first-of-its-kind implementation of McCormick arithmetic in an Evaluator structure allowing for the construction of convex/concave relaxations using a combination of source code transformation, multiple dispatch, and context-specific approaches. Utilities are included to parse user-defined functions into a directed acyclic graph representation and perform symbolic transformations enabling dramatically improved solution speed. EAGO is compatible with a wide variety of local optimizers, the most exhaustive library of transcendental functions, and allows for easy accessibility through the JuMP modelling language. Together with Julia's minimalist syntax and competitive speed, these powerful features make EAGO a versatile research platform enabling easy construction of novel meta-solvers, incorporation and utilization of new relaxations, and extension to advanced problem formulations encountered in engineering and operations research (e.g. multilevel problems, user-defined functions). The applicability and flexibility of this novel software is demonstrated on a diverse set of examples. Lastly, EAGO is demonstrated to perform comparably to state-of-the-art commercial optimizers on a benchmarking test set.
Acknowledgments
We would like to thank Huiyi Cao and Kamil Khan for their fruitful discussion on differentiable McCormick relaxations and EAGO functionality. We would also like to thank William Hale and Chenyu Wang for their preliminary feedback.
Disclosure statement
No potential conflict of interest was reported by the author(s).
Notes
1 Equivalent forms of this problem are supported via the JuMP AML.
2 To ensure an ε-optimal solution is reached in finite time, the termination condition must be based on an absolute tolerance. Other conditions are included to deal with numerical issues. Additional assumptions must also be satisfied such as pointwise convergence of the relaxations and Lipschitz continuity of the functions involved.
3 Typically, domain reduction algorithms may be applied at this step.
4 If domain reduction in postprocessing yields a significant improvement, repetition may be beneficial.
Additional information
Funding
Notes on contributors
M. E. Wilhelm
M. E. Wilhelm received a B.S. in Applied Mathematics from the University of North Carolina at Greensboro, Greensboro, NC, USA (2009), and a M.S. in Chemical Engineering from Columbia University, New York, NY, USA (2011). He is currently a PhD Candidate in Chemical and Biomolecular Engineering at the University of Connecticut where his research interests include: nonconvex optimization, dynamic simulation and optimization, mathematical biology, and engineering & STEM pedagogy.
M. D. Stuber
Dr. M. D. Stuber received a Bachelor of Chemical Engineering degree from the University of Minnesota – Twin Cities (2007) and a PhD in Chemical Engineering from MIT (2012). He is currently an Assistant Professor of Chemical and Biomolecular Engineering at the University of Connecticut. His research interests include: process systems engineering, numerical analysis, optimization, and design under uncertainty, with applications in optimal cancer therapy, renewable energy and process integration, desalination and water treatment, and sustainable agriculture.