moocore: Core Algorithms for Multi-Objective Optimization#

Version: 0.1.6 (What’s new)

Date May 14, 2025

Useful links: Install | Source Repository | Issue Tracker

This webpage documents the moocore Python package. There is also a moocore R package.

The goal of the moocore project (multi-objective/moocore) is to collect fast implementations of core mathematical functions and algorithms for multi-objective optimization and make 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.

Most critical functionality is implemented in C, with the R and Python 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

API Reference

The reference guide contains a detailed description of the functions, modules, and objects.

API reference
Examples

Detailed examples and tutorials.

Examples

The following two images compare the speed of computing the hypervolume indicator in 3D and 4D using moocore, pymooo, BoTorch, DEAP-er and jMetalPy.

pic1 pic2