moocore
Core Algorithms for Multi-Objective Optimization
What it is and what it does
moocore is a Python library that implements fast algorithms for multi-objective optimization problems. It provides core mathematical functions for working with Pareto-optimal solutions, including generation and transformation of nondominated sets, identification of dominated vectors, and computation of quality metrics like hypervolume, epsilon, and IGD. The library also implements the empirical attainment function, which characterizes the probabilistic distribution of outcomes from stochastic optimization algorithms.
The package is built on compiled C/C++ backends for performance and wraps them with a Python interface using cffi, numpy, and platformdirs. It targets researchers and practitioners in operations research, multi-criteria decision-making, and evolutionary optimization who need efficient implementations of these core algorithms. The library supports current Python versions (3.10 through 3.14) and is actively maintained.
Use it for:
- Evaluate and compare multi-objective optimization algorithms by computing hypervolume and other quality indicators on their solution sets.
- Filter dominated solutions from a candidate set to identify the Pareto frontier in bi- or many-objective problems.
- Analyze stochastic optimization algorithm performance using empirical attainment functions and summary attainment surfaces.
- Build decision-support tools that need fast computation of dominance relationships and quality metrics.
- Research and benchmark evolutionary multi-objective optimization methods with standardized performance measures.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides fast implementations of core algorithms for multi-objective optimization, including nondominated set generation, dominance filtering, hypervolume and quality metrics, and empirical attainment function computation.
Yes, if you work in multi-objective optimization or need fast implementations of dominance filtering and quality metrics. The library is actively maintained, has no known vulnerabilities, supports modern Python versions, and offers prebuilt wheels for common platforms. The LGPL-2.1-or-later license requires attention if you plan proprietary use. Medium install friction is acceptable for a compiled package with broad platform coverage.
Install
moocore on PyPI
pip
pip install moocoreuv
uv add moocorepoetry
poetry add moocoreInstalling moocore
Before you install
Medium install friction due to compiled C/C++ components; prebuilt wheels available for Python 3.10+ on macOS, Linux (x86_64 and aarch64), and Windows. Active maintenance with recent releases.
License in practice
Licensed under LGPL-2.1-or-later (copyleft); derivative works and modifications must be distributed under compatible terms. Suitable for research and open-source projects; proprietary use requires careful licensing review.
Quickstart
pip install moocore
import moocore
# Example: filter dominated solutions from a set of objective vectors
result = moocore.filter_dominated(objectives)
Requires Python 3.10 or later; building from source requires a C/C++ compiler.
Verify before relying
- Specific performance benchmarks or scalability limits for large objective spaces
- Whether the package supports GPU acceleration or distributed computation
- Detailed API documentation and available function signatures beyond the description excerpt
Package facts
| License | LGPL-2.1-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — cffi, numpy, platformdirs |
| Maintenance | actively maintained — 33 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,019,593/month — #4,495 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: moocore-0.3.2-cp310-abi3-macosx_10_9_universal2.whl; moocore-0.3.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; moocore-0.3.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; moocore-0.3.2-cp310-abi3-musllinux_1_2_aarch64.whl; moocore-0.3.2-cp310-abi3-musllinux_1_2_x86_64.whl; moocore-0.3.2-cp310-abi3-win_amd64.whl; moocore-0.3.2-cp310-abi3-win_arm64.whl
Keywords: math, Mathematics, Multi-criteria Decision-Making, operations research, Optimization
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
paretosetComputes the Pareto (non-dominated) set from…
permissive · top 15,000 on PyPI
pymoopymoo implements single- and multi-objective…
permissive · top 5,000 on PyPI
deapDEAP is an evolutionary computation framework…
copyleft · top 15,000 on PyPI
optunaOptuna is a hyperparameter optimization…
permissive · top 5,000 on PyPI
directsearchSolves unconstrained and linearly constrained…
copyleft · top 15,000 on PyPI
pygadPyGAD is a Python library for building and…
unclear · top 15,000 on PyPI
hyperoptHyperopt performs serial and parallel…
permissive · top 5,000 on PyPI
fairlearnFairlearn assesses and mitigates fairness…
permissive · top 15,000 on PyPI
cmaesProvides CMA-ES (Covariance Matrix Adaptation…
permissive · top 5,000 on PyPI
ropt-dakotaProvides Dakota optimization algorithms as a…
copyleft · top 15,000 on PyPI