[ Homepage ] [ GitHub ] [ ClickPy Dashboard ]
Contributors: Manuel López-Ibáñez, Fergus Rooney, Lennart Schäpermeier.
The goal of moocore is to collect and document fast implementations of core mathematical functions and algorithms for multi-objective optimization. These functions include:
- Generate and transform nondominated sets.
- Identify and filter 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.
Keywords: empirical attainment function, summary attainment surfaces, EAF differences, multi-objective optimization, bi-objective optimization, performance measures, performance assessment
For more details, see the complete Documentation.
You can install the latest release using pip, for example:
python3 -m pip install moocoreOr to build the latest development version from GitHub:
python3 -m pip install 'git+https://github.com/multi-objective/moocore.git#egg=moocore&subdirectory=python'Building the development version requires a C/C++ compiler. Instead, you can install pre-compiled development wheels for your operating system. See the list of wheels here (https://github.com/multi-objective/moocore/tree/wheels), click in the wheel you wish to install then copy the View Raw link. For example,
python3 -m pip install https://github.com/multi-objective/moocore/raw/refs/heads/wheels/moocore-0.1.5.dev0-py3-none-macosx_10_9_universal2.whlIf the URL does not have the word raw then you are not using the View Raw link.
You can build the package with:
make dev-install
For enabling asserts (DEBUG=1) use:
make dev-install MOOCORE_DEBUG=1
You can then debug a testcase test.py with:
gdb --args python3 -m test
For enabling sanitizers (asan, ubsan) use:
make dev-install MOOCORE_SANITIZE=1
To enable the sanitizers you may need to run with:
LD_PRELOAD=$(clang -print-file-name=libasan.so) \
ASAN_OPTIONS=detect_leaks=0 \
python3 -m test
ASAN reports many irrelevant leaks by Python. For detecting actual leaks, you need to use valgrind.
There is also a moocore package for R: https://multi-objective.github.io/moocore/r