set(MAiNGO_use_filib TRUE CACHE BOOL "Use filib++ as interval library (otherwise, the more basic interval library within MC++ will be used.")
set(MAiNGO_build_parser TRUE CACHE BOOL "Build MAiNGO executable with parser.")
set(MAiNGO_build_parser TRUE CACHE BOOL "Build MAiNGO executable with parser (not compatible with Intel compiler due to missing C++17 features).")
set(MAiNGO_build_standalone FALSE CACHE BOOL "Build MAiNGO as standalone solver with problem.h.")
set(MAiNGO_build_melon TRUE CACHE BOOL "Build MAiNGO executable with the MeLOn toolbox (not compatible with Intel compiler due to missing C++17 features).")
set(MAiNGO_use_mpi FALSE CACHE BOOL "Build parallel version of MAiNGO.")
set(MAiNGO_build_test FALSE CACHE BOOL "Build MAiNGO test cases.")
if(MAiNGO_build_test)
# The parser is required for the tests
set(MAiNGO_build_parser TRUE CACHE INTERNAL "Build MAiNGO executable with parser." FORCE)
message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")
message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")
endif()
endfunction(add_dependency_subdir DEPENDENCY)
add_dependency_subdir(babbase)
add_dependency_subdir(fadbad)
if(MAiNGO_use_filib OR MCPP_use_filib)
add_dependency_subdir(filib)
add_dependency_subdir(filib)
endif()
add_dependency_subdir(blas)
add_dependency_subdir(lapack)
add_dependency_subdir(cpplapack)
add_dependency_subdir(mcpp)
add_dependency_subdir(mumps)
add_dependency_subdir(ipopt)
add_dependency_subdir(nlopt)
add_dependency_subdir(knitro)
add_dependency_subdir(clp)
add_dependency_subdir(cplex)
if(MAiNGO_build_melon)
add_dependency_subdir(melon)
add_dependency_subdir(json)
endif()
add_dependency_subdir(blas)
add_dependency_subdir(lapack)
add_dependency_subdir(cpplapack)
add_dependency_subdir(mcpp)
add_dependency_subdir(mumps)
add_dependency_subdir(ipopt)
add_dependency_subdir(nlopt)
add_dependency_subdir(knitro)
add_dependency_subdir(clp)
add_dependency_subdir(cplex)
if(MAiNGO_build_parser)
add_dependency_subdir(libale)
add_dependency_subdir(libale)
endif()
# --------- Setup the Executable/.dll output Directory -------------
set_target_properties(MAiNGO PROPERTIES LINK_FLAGS /ignore:4099)#/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
set_target_properties(MAiNGOcpp PROPERTIES LINK_FLAGS /ignore:4099)#/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
set_target_properties(test-maingo PROPERTIES LINK_FLAGS /ignore:4099)#/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
#  <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
Thank you for using the beta version 0.2.1 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the "Issues"
Thank you for using the beta version 0.3.0 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the "Issues"
functionality in [GitLab](https://git.rwth-aachen.de/avt.svt/public/maingo.git) or send an e-mail to MAiNGO@avt.rwth-aachen.de.
## How to cite
...
...
@@ -61,16 +61,17 @@ If you are new to MAiNGO, we recommend looking at the following documents in thi
## Example applications
MAiNGO has been successfully applied to flowsheet-optimization problems ([Bongartz & Mitsos 2017a](https://link.springer.com/article/10.1007/s10898-017-0547-4), [Bongartz & Mitsos 2017b](https://www.sciencedirect.com/science/article/pii/B9780444639653501070), [Bongartz & Mitsos 2019](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507)),
optimization problems with artificial neural networks ([Rall et al. 2018](https://www.sciencedirect.com/science/article/pii/S0376738818324293), [Schweidtmann & Mitsos 2018](https://link.springer.com/article/10.1007/s10957-018-1396-0), [Rall et al. 2020](https://doi.org/10.1016/j.memsci.2020.117860)),
hybrid mechanistic models ([Schweidtmann et al. 2019a](https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X), [Schweidtmann et al. 2019b](https://www.sciencedirect.com/science/article/pii/B9780128186343501570), [Huster et al. 2019a](https://www.sciencedirect.com/science/article/pii/B9780128185971500680), [Huster et al. 2019b](https://link.springer.com/article/10.1007/s11081-019-09454-1)),
MAiNGO has been successfully applied to flowsheet-optimization problems ([Bongartz & Mitsos 2017a](https://link.springer.com/article/10.1007/s10898-017-0547-4), [Bongartz & Mitsos 2019](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507), [Bongartz et al. 2020](https://link.springer.com/article/10.1007/s11081-020-09502-1)),
optimization problems with artificial neural networks ([Schweidtmann & Mitsos 2018](https://link.springer.com/article/10.1007/s10957-018-1396-0)),
hybrid mechanistic models with applications in energy processes ([Schweidtmann et al. 2019a](https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X), [Schweidtmann et al. 2019b](https://www.sciencedirect.com/science/article/pii/B9780128186343501570), [Huster et al. 2019a](https://www.sciencedirect.com/science/article/pii/B9780128185971500680), [Huster et al. 2019b](https://link.springer.com/article/10.1007/s11081-019-09454-1)),
hybrid mechanistic models with applications in membrane development ([Rall et al. 2019](https://www.sciencedirect.com/science/article/pii/S0376738818324293), [Rall et al. 2020](https://doi.org/10.1016/j.memsci.2020.117860)), [Rall et al. 2020b](https://doi.org/10.1016/j.memsci.2020.118208),
and nonlinear scheduling with artificial neural networks embedded ([Schäfer et al. 2020](https://doi.org/10.1016/j.compchemeng.2019.106598)).

MAiNGO works particularly well for problems which can be formulated in a reduced-space manner ([Bongartz & Mitsos 2017a](https://link.springer.com/article/10.1007/s10898-017-0547-4)).
MAiNGO holds specialized relaxations for functions found in the field of process engineering ([Najman & Mitsos 2016](https://www.sciencedirect.com/science/article/pii/B9780444634283502721), [Najman et al. 2019](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494)).
MAiNGO holds specialized relaxations for functions found in the field of process engineering ([Najman & Mitsos 2016](https://www.sciencedirect.com/science/article/pii/B9780444634283502721), [Najman et al. 2019](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494), [Bongartz et al. 2020](https://link.springer.com/article/10.1007/s11081-020-09502-1)).
All implemented specialized intrinsic functions can be found at `doc/implementedFunctions/Implemented_functions.pdf`.
## References
...
...
@@ -79,12 +80,14 @@ Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). [MAiNGO - **M**cCormick
Bongartz, D., & Mitsos, A. (2017a). [Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations](https://link.springer.com/article/10.1007/s10898-017-0547-4). *Journal of Global Optimization*, 69(4), 761-796.<br><br>
Bongartz, D., & Mitsos, A. (2017b). [Infeasible path global flowsheet optimization using McCormick relaxations](https://www.sciencedirect.com/science/article/pii/B9780444639653501070). In *Computer Aided Chemical Engineering* (Vol. 40, pp. 631-636). Elsevier.<br><br>
Bongartz, D., & Mitsos, A. (2019). [Deterministic global flowsheet optimization: Between equation‐oriented and sequential‐modular methods](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507). *AIChE Journal*, 65(3), 1022-1034.<br><br>
Bongartz, D., Najman, J., & Mitsos, A. (2020). [Deterministic global optimization of steam cycles using the IAPWS‑IF97 model](https://link.springer.com/article/10.1007/s11081-020-09502-1). *Optimization & Engineering*, in press.<br><br>
Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019a). [Impact of accurate working fluid properties on the globally optimal design of an organic Rankine cycle](https://www.sciencedirect.com/science/article/pii/B9780128185971500680). In *Computer Aided Chemical Engineering* (Vol. 47, pp. 427-432). Elsevier.<br><br>
Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019b). [Working fluid selection for organic rankine cycles via deterministic global optimization of design and operation](https://link.springer.com/article/10.1007/s11081-019-09454-1). *Optimization and Engineering*, 1-20.<br><br>
Najman, J., & Mitsos, A. (2016). [Convergence order of McCormick relaxations of LMTD function in heat exchanger networks](https://www.sciencedirect.com/science/article/pii/B9780444634283502721). In *Computer Aided Chemical Engineering* (Vol. 38, pp. 1605-1610). Elsevier.<br><br>
Najman, J., Bongartz, D., & Mitsos, A. (2019). [Relaxations of thermodynamic property and costing models in process engineering](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494). *Computers & Chemical Engineering*, 130, 106571.<br><br>
Rall, D., Menne, D., Schweidtmann, A. M., Kamp, J., von Kolzenberg, L., Mitsos, A., & Wessling, M. (2019). [Rational design of ion separation membranes](https://www.sciencedirect.com/science/article/pii/S0376738818324293). *Journal of membrane science*, 569, 209-219.<br><br>
Rall, D., Schweidtmann, A. M., Aumeier, B. M., Kamp, J., Karwe, J., Ostendorf, K., Mitsos, A., & Wessling, M. (2020). [Simultaneous rational design of ion separation membranes and processes](https://doi.org/10.1016/j.memsci.2020.117860). *Journal of Membrane Science*, 117860.<br><br>
Rall, D., Schweidtmann, A. M., Kruse, M.,Evdochenko, E., Mitsos, A., & Wessling, M. (2020). [Multi-scale membrane process optimization with high-fidelity ion transport models through machine learning](https://doi.org/10.1016/j.memsci.2020.118208). *Journal of Membrane Science*, 118208.<br><br>
Schäfer, P., Schweidtmann, A. M., Lenz, P. H., Markgraf, H. M., & Mitsos, A. (2020). [Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices](https://doi.org/10.1016/j.compchemeng.2019.106598). *Computers & Chemical Engineering*, 132, 106598.<br><br>
Schweidtmann, A. M., & Mitsos, A. (2018) [Deterministic Global Optimization with Artificial Neural Networks Embedded](https://link.springer.com/article/10.1007/s10957-018-1396-0). *Journal of Optimization Theory and Applications*, 180, 925–948.<br><br>
Schweidtmann, A. M., Huster, W. R., Lüthje, J. T., & Mitsos, A. (2019a). [Deterministic global process optimization: Accurate (single-species) properties via artificial neural networks](https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X). *Computers & Chemical Engineering*, 121, 67-74.<br><br>
- MAiNGO now uses the toolkit MeLOn - Machine Learning Models for Optimization
- MeLOn contains tools for modeling and training different machine learning models such as artificial neural networks or Gaussian processes
- The models from MeLOn can now be used when writing problems for the C++-API of MAiNGO
- These models use some custom relaxations available in MAiNGO through MC++ for faster convergence
- In order to use MeLOn within MAiNGO, the Cmake flag MAiNGO_build_melon needs to be set to true (default)
- Note that MeLOn is not compatible with current Intel Compilers due to missing C++17 features
- MAiNGO algorithm:
- The parser now preserves the order of variable declaration and does not eliminate variables that do not occur in the problem
- Added new intrinsic functions (for more details, see doc/implementedFunctions/Implemented_functions.pdf):
- Common acquisition functions for Bayesian optimization:
- Lower confidence bound
- Expected improvement
- Probability of improvement
- Examples & documentation:
- Examples were added for the use of the models from MeLOn:
- An example for problems with artificial neural networks embedded
- An example for problems with Gaussian processes embedded (e.g., minimizing the prediction or variance of a Gaussian process)
- An example for using MAiNGO within Bayesian optimization (i.e., maximizing/minimizing typical acquisition functions for Bayesian optimization that use Gaussian processes)
- The documentation for building MAiNGO was improved
- A section on the output written by MAiNGO was added