Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

moocore: Core Mathematical Functions for Multi-Objective Optimization

[ MATLAB library ] [ GitHub ] Build status Testsuite status

Contributors: Manuel López-Ibáñez, Guillaume Jacquenot.

Introduction

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

Compilation

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.

Examples

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.