[ MATLAB library ] [ GitHub ]
Contributors: Manuel López-Ibáñez, Guillaume Jacquenot.
This is the MATLAB library of the moocore project. This README describes just this component. There is also a moocore C library and command-line tools, moocore Python package and a moocore R package.
The moocore project collects fast implementations of core mathematical functions and algorithms for multi-objective optimization and makes them available to different programming languages via similar interfaces. These functions include:
- Identifying and filtering dominated vectors.
- Quality metrics such as (weighted) hypervolume, epsilon, IGD, etc.
- Computation of the Empirical Attainment Function. The empirical attainment function (EAF) describes the probabilistic distribution of the outcomes obtained by a stochastic algorithm in the objective space.
The goal of moocore is to provide an implementation of these functions that is efficient, thoroughly tested, well-documented, multi-platform (Windows, Linux, MacOS), multi-language (C, R, Python, and MATLAB so far), with minimal dependencies and reusable from other libraries and packages, thus providing an easy-to-use and high-performance building block.
Most critical functionality is implemented in C, with the R, Python and MATLAB packages providing convenient interfaces to the C code.
Keywords: empirical attainment function, summary attainment surfaces, EAF differences, multi-objective optimization, bi-objective optimization, performance measures, performance assessment
The default compilation is done with:
make all
This uses the GNU Octave tool mkoctfile, but you can use MATLAB mex with:
make all MEX=mex
If you do not want to see the command line of each compiler
invocation, also pass S=1 to make.
The functionality in MATLAB is currently limited to the computation of the hypervolume. Help in extending the MATLAB interface is welcome.
You can see the example at hypervolume.m and run it with:
make test
The example uses octave-cli, but it should be easy to run it under MATLAB.