MC++ provides a collection of classes to support the construction and manipulation of factorable functions and their evaluation using a range of arithmetics. It is primarily written in C++ to promote execution speed, while the module pyMC includes Python binders through pybind11.
Expression trees in MC++ can comprise any finite combination of unary and binary operations from a default library. MC++ also features a mechanism to extend expression trees with external operations, currently including affine and polynomial subexpressions as well as multi-layer perceptrons (MLP). Through the library CRONOS, MC++ can also be extended with systems of algebraic and differential equations. Expression trees generated with MC++ can be used by the library CANON for local and global numerical optimization; and the library MAGNUS for the development and analysis of mathematical models.
The present version 4.0 of MC++ has capability for:
- Construction and differentiation of expression trees (both forward and reverse accumulation modes)
- Recursive decomposition of factorable expressions into linear/polynomial subexpressions and transcendental operations
- Elimination of variables in factorable expressions
- Decomposition of sparse polynomial expressions into quadratic forms
- Detection of reduction constraints in sparse polynomial expressions
The main bounding components in version 4.0 of MC++ include:
- Interval arithmetic
- Eigenvalue arithmetic
- Ellipsoidal arithmetic
- McCormick relaxations
- Taylor and Chebyshev models
- Polyhedral relaxations
- Superposition relaxations
A range of python notebooks are provided in src/pymc to illustrate these capabilities.
Refer to INSTALL.md for instructions.
- Repo owner: Benoit C. Chachuat
- OMEGA Research Group
- Bompadre, A., A. Mitsos, Convergence rate of McCormick relaxations, Journal of Global Optimization 52(1), 1-28, 2012
- Bompadre, A., A. Mitsos, B. Chachuat, Convergence analysis of Taylor models and McCormick-Taylor models, Journal of Global Optimization, 57(1), 75-114, 2013
- Bongartz, D., J. Najman, S. Sass, A. Mitsos, MAiNGO – McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization, Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University, 2018
- Chachuat, B, B. Houska, R. Paulen, N. Peric, J. Rajyaguru, M.E. Villanueva, Set-theoretic approaches in analysis, estimation and control of nonlinear systems, IFAC-PapersOnLine, 48(8), 981-995, 2015
- Karia, T., C.S. Adjiman, B. Chachuat, Assessment of a two-step approach for global optimization of mixed-integer polynomial programs using quadratic reformulation, Computers & Chemical Engineering, 165, 107909, 2022
- Mitsos, A., B. Chachuat, P.I. Barton, McCormick-based relaxations of algorithms, SIAM Journal on Optimization, 20(2):573-601, 2009
- Rajyaguru, J., Villanueva M.E., Houska B., Chachuat B., Chebyshev model arithmetic for factorable functions, Journal of Global Optimization, 68, 413-438, 2017
- Tsoukalas, A., A. Mitsos, Multi-variate McCormick relaxations, Journal of Global Optimization, 59(2), 633-662, 2014
- Villanueva, M.E., Set-Theoretic Methods for Analysis, Estimation and Control of Nonlinear Systems, PhD Thesis, Department of Chemical Engineering, Imperial College London, 2016
- Villanueva, M.E., J. Rajyaguru, B. Houska, B. Chachuat, Ellipsoidal arithmetic for multivariate systems, Computer Aided Chemical Engineering, 37, 767-772, 2015
- Wechsung, A., P.I. Barton, Global optimization of bounded factorable functions with discontinuities, Journal of Global Optimization, 58(1), 1-30, 2014