This toolbox infers the Pareto trade-off surface corresponding to a vector of competing objective functions. In principle, each Pareto solution is a different weighting of the objectives used. Therefore, one could use differential weighting and approximte the Pareto front using many different trials with a single objective optimization algorithm. This approach, however, has shown to not be particularly efficient (exception is MOEA/D). This MATLAB and Python toolbox implements adaptive multimethod search to ensure a fast, reliable and computationally efficient solution to multiobjective optimization problems. This method is called a multi-algorithm, genetically adaptive multiobjective, or AMALGAM, method, to evoke the image of a procedure that blends the attributes of the best available individual optimization algorithms. AMALGAM finds a well-distributed set of Pareto solutions within a single optimization run, and achieves a good performance compared to commonly used methods such as SPEA2, NSGA-II and MOEA/D. The AMALGAM toolbox implements multi-core (thread) evaluation of the offspring to speed-up inference of CPU-intensive system models, and provides convergence diagnostics and graphical output. Built-in case studies involving (among others) multimodality, high-dimensionality, bounded parameter spaces, dynamic simulation models, and distributed multi-core computation illustrate the main capabilities and functionalities of the AMALGAM toolbox.
- Download and unzip the zip file 'MATLAB_code_AMALGAM_V2.0.zip' in a directory 'AMALGAM'.
- Add the toolbox to your MATLAB search path by running the script 'install_AMALGAM.m' available in the root of 'AMALGAM'
- You are ready to run the examples.
- After intalling, you can simply direct to each example folder and execute the local 'example_X.m' file.
- Please Make sure you read carefully the instructions (i.e., green comments) in 'install_AMALGAM.m' and the manual !!!
- Download and unzip the zip file 'Python_code_AMALGAM_V2.0.zip' to a directory called 'AMALGAM'.
- Go to Command Prompt and directory of example_X in the root of 'AMALGAM'
- Now you can execute this example by typing 'python example_X.py'.
- Instructions can be found in the file 'AMALGAM.py' and in the manual !!!
- Vrugt, Jasper A. ([email protected])
- Vrugt, J.A. (2024), Distribution-Based Model Evaluation and Diagnostics: Elicitability, Propriety, and Scoring Rules for Hydrograph Functionals, Water Resources Research, 60, e2023WR036710, https://doi.org/10.1029/2023WR036710
- Vrugt, J.A., Multi-criteria optimization using the AMALGAM software package: Theory, concepts, and MATLAB implementation, UCI, 2015
- Vrugt, J.A., B.A. Robinson, and J.M. Hyman (2009), Self-adaptive multimethod search for global optimization in real-parameter spaces, IEEE Transactions on Evolutionary Computation, 13(2), pp. 243-259, https://doi.org/10.1109/TEVC.2008.924428
- Vrugt, J.A., P.H. Stauffer, T. Wöhling, B.A. Robinson, and V.V. Vesselinov (2008), Inverse modeling of subsurface flow and transport properties: A review with new developments, Vadose Zone Journal, 7(2), pp. 843-864, https://doi.org/10.2136/vzj2007.0078
- Wöhling, T., J.A. Vrugt, and G.F. Barkle (2008), Comparison of three multiobjective optimization algorithms for inverse modeling of vadose zone hydraulic properties, Soil Science Society of America Journal, 72, 305 - 319, https://doi.org/10.2136/sssaj2007.0176
- Wöhling, T., and J.A. Vrugt (2008), Combining multi-objective optimization and Bayesian model averaging to calibrate forecast ensembles of soil hydraulic models, Water Resources Research, 44, W12432, https://doi.org/10.1029/2008WR007154
- Vrugt, J.A., and B.A. Robinson (2007), Improved evolutionary optimization from genetically adaptive multimethod search, Proceedings of the National Academy of Sciences of the United States of America, 104, pp. 708-711, https://doi.org/10.1073/pnas.061047110407
- Vrugt, J.A., and B.A. Robinson (2007), Treatment of uncertainty using ensemble methods: Comparison of sequential data assimilation and Bayesian model averaging, Water Resources Research, 43, W01411, https://doi.org/10.1029/2005WR004838
- Schoups, G.H., J.W. Hopmans, C.A. Young, J.A. Vrugt, and W.W. Wallender (2006), Multi-objective optimization of a regional spatially-distributed subsurface water flow model, Journal of Hydrology, pp. 20-48, 311(1-4), https://doi.org/10.1016/j.jhydrol.2005.01.001
- Vrugt, J.A., M.P. Clark, C.G.H. Diks, Q. Duan, and B. A. Robinson (2006), Multi-objective calibration of forecast ensembles using Bayesian model averaging, Geophysical Research Letters, 33, L19817, https://doi.org/10.1029/2006GL027126
- Vrugt, J.A., H.V. Gupta, L.A. Bastidas, W. Bouten, and S. Sorooshian (2003), Effective and efficient algorithm for multi-objective optimization of hydrologic models, Water Resources Research, 39(8), art. No. 1214, https://doi.org/10.1029/2002WR001746
- 1.0
- Initial Release
- 2.0
- Improved postprocessing capabilities
- Python implementation
- Example 1: ZDT1: test function
- Example 2: ZDT2: test function
- Example 3: ZDT3: test function
- Example 4: ZDT4: test function
- Example 5: ZDT6: test function
- Example 6: ZDT6: test function, discrete parameter space
- Example 7: DTLZ1: test function, 3 objectives
- Example 8: DTLZ2: test function, 3 objectives
- Example 9: DTLZ3: test function, 3 objectives
- Example 11: Real-world example using rainfall-discharge modeling
- Example 12: Watershed modeling using driven & nondriven hydrograph
- Example 13: Bayesian model averaging: RMSE, IS and CRPS
- Example 14: Multi-criteria BMA training temperature ensemble
- Example 15: Multi-criteria BMA training sea-level pressure ensemble