**moocore**: Core Algorithms for Multi-Objective Optimization
=============================================================
<!-- badges: start -->
[][py-moocore-pypi]
[][py-moocore-pypi-stats]
[![Python build status][py-build-badge]][py-build-link]
[![coverage][py-coverage-badge]][py-coverage-link]
<!-- badges: end -->
[ [**Homepage**][py-moocore-homepage] ]
[ [**GitHub**][py-moocore-github] ]
**Contributors:**
[Manuel López-Ibáñez](https://lopez-ibanez.eu),
Fergus Rooney.
---------------------------------------
Introduction
============
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][py-moocore-homepage].
Install
-------
You can install the [latest release](https://pypi.org/project/moocore/) using `pip`, for example:
```bash
python3 -m pip install moocore
```
Or to build the latest development version from GitHub:
```bash
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,
```bash
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.whl
```
If the URL does not have the word `raw` then you are not using the **View Raw** link.
R package
---------
There is also a `moocore` package for R: https://multi-objective.github.io/moocore/r
[py-build-badge]: https://github.com/multi-objective/moocore/actions/workflows/python.yml/badge.svg?event=push
[py-build-link]: https://github.com/multi-objective/moocore/actions/workflows/python.yml
[py-coverage-badge]: https://codecov.io/gh/multi-objective/moocore/branch/main/graph/badge.svg?flag=python
[py-coverage-link]: https://app.codecov.io/gh/multi-objective/moocore/tree/main/python
[py-moocore-github]: https://github.com/multi-objective/moocore/tree/main/python#readme
[py-moocore-homepage]: https://multi-objective.github.io/moocore/python
[py-moocore-pypi]: https://pypi.org/project/moocore/
[py-moocore-pypi-stats]: https://pypistats.org/packages/moocore
Raw data
{
"_id": null,
"home_page": null,
"name": "moocore",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "math, Mathematics, Multi-criteria Decision-Making, operations research, Optimization",
"author": null,
"author_email": "Manuel L\u00f3pez-Ib\u00e1\u00f1ez <manuel.lopez-ibanez@manchester.ac.uk>, Fergus Rooney <fergus.rooney@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/e6/de/854b4441995f0a6a0d792952d29becfd1a94346106dd50aa7da9dbab4a9f/moocore-0.1.9.tar.gz",
"platform": null,
"description": "**moocore**: Core Algorithms for Multi-Objective Optimization\n=============================================================\n\n<!-- badges: start -->\n[][py-moocore-pypi]\n[][py-moocore-pypi-stats]\n[![Python build status][py-build-badge]][py-build-link]\n[![coverage][py-coverage-badge]][py-coverage-link]\n<!-- badges: end -->\n\n[ [**Homepage**][py-moocore-homepage] ]\n[ [**GitHub**][py-moocore-github] ]\n\n\n**Contributors:**\n [Manuel L\u00f3pez-Ib\u00e1\u00f1ez](https://lopez-ibanez.eu),\n Fergus Rooney.\n\n---------------------------------------\n\nIntroduction\n============\n\nThe goal of **moocore** is to collect and document fast implementations of core mathematical functions and algorithms for multi-objective optimization. These functions include:\n\n * Generate and transform nondominated sets.\n * Identify and filter dominated vectors.\n * Quality metrics such as (weighted) hypervolume, epsilon, IGD, etc.\n * Computation of the Empirical Attainment Function. The empirical attainment function (EAF) describes the probabilistic\ndistribution of the outcomes obtained by a stochastic algorithm in the\nobjective space.\n\n**Keywords**: empirical attainment function, summary attainment surfaces, EAF\ndifferences, multi-objective optimization, bi-objective optimization,\nperformance measures, performance assessment\n\nFor more details, see the complete [Documentation][py-moocore-homepage].\n\nInstall\n-------\n\nYou can install the [latest release](https://pypi.org/project/moocore/) using `pip`, for example:\n\n```bash\npython3 -m pip install moocore\n```\n\nOr to build the latest development version from GitHub:\n\n```bash\npython3 -m pip install 'git+https://github.com/multi-objective/moocore.git#egg=moocore&subdirectory=python'\n```\n\nBuilding 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,\n\n```bash\npython3 -m pip install https://github.com/multi-objective/moocore/raw/refs/heads/wheels/moocore-0.1.5.dev0-py3-none-macosx_10_9_universal2.whl\n```\n\nIf the URL does not have the word `raw` then you are not using the **View Raw** link.\n\n\nR package\n---------\n\nThere is also a `moocore` package for R: https://multi-objective.github.io/moocore/r\n\n\n[py-build-badge]: https://github.com/multi-objective/moocore/actions/workflows/python.yml/badge.svg?event=push\n[py-build-link]: https://github.com/multi-objective/moocore/actions/workflows/python.yml\n[py-coverage-badge]: https://codecov.io/gh/multi-objective/moocore/branch/main/graph/badge.svg?flag=python\n[py-coverage-link]: https://app.codecov.io/gh/multi-objective/moocore/tree/main/python\n[py-moocore-github]: https://github.com/multi-objective/moocore/tree/main/python#readme\n[py-moocore-homepage]: https://multi-objective.github.io/moocore/python\n[py-moocore-pypi]: https://pypi.org/project/moocore/\n[py-moocore-pypi-stats]: https://pypistats.org/packages/moocore\n",
"bugtrack_url": null,
"license": null,
"summary": "Core Algorithms for Multi-Objective Optimization",
"version": "0.1.9",
"project_urls": {
"Documentation": "https://multi-objective.github.io/moocore/python/",
"Homepage": "https://multi-objective.github.io/moocore/python/",
"Source": "https://github.com/multi-objective/moocore/",
"Tracker": "https://github.com/multi-objective/moocore/issues"
},
"split_keywords": [
"math",
" mathematics",
" multi-criteria decision-making",
" operations research",
" optimization"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7124dce8257f79c7beeb8872b8f523351abe364b82d71a6d8d067020a583fe94",
"md5": "5d4e465bd9a1a88b42d6f5bcb210c9d8",
"sha256": "7ae55d6ee0379c6216823f9f4504e6fbbbae2b4c23c9ca9be9661c23a8bd6e76"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "5d4e465bd9a1a88b42d6f5bcb210c9d8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 590995,
"upload_time": "2025-11-02T10:29:00",
"upload_time_iso_8601": "2025-11-02T10:29:00.236831Z",
"url": "https://files.pythonhosted.org/packages/71/24/dce8257f79c7beeb8872b8f523351abe364b82d71a6d8d067020a583fe94/moocore-0.1.9-cp310-abi3-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "66406feaf580bf90bd899dabb9ff26915f7e24408b9790a0c245af5047a1590a",
"md5": "aac65f92fd4722060ca5946004350e1c",
"sha256": "e8cd10a986e6f7de061e40c985d698e45517d8a48170f6da0b946980f42701b4"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "aac65f92fd4722060ca5946004350e1c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 791731,
"upload_time": "2025-11-02T10:29:01",
"upload_time_iso_8601": "2025-11-02T10:29:01.814706Z",
"url": "https://files.pythonhosted.org/packages/66/40/6feaf580bf90bd899dabb9ff26915f7e24408b9790a0c245af5047a1590a/moocore-0.1.9-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f06ee87bf338a180d5bebe8ba40fe4b013e5f0876eb9e375d7160b59377cb98c",
"md5": "3459226adeec4af53e6c42f7f23a6211",
"sha256": "a93ba51d932878583d9abfba7750d638d0d821e4676e34dbb75d95cc4e1c8db7"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "3459226adeec4af53e6c42f7f23a6211",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 785319,
"upload_time": "2025-11-02T10:29:03",
"upload_time_iso_8601": "2025-11-02T10:29:03.538499Z",
"url": "https://files.pythonhosted.org/packages/f0/6e/e87bf338a180d5bebe8ba40fe4b013e5f0876eb9e375d7160b59377cb98c/moocore-0.1.9-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ae1594d4e38050d7bb13cd45594b0044e3c3df7f484071315c3ea2a52cd91828",
"md5": "3bfafdc481576a2c6a1a23570bed8b1f",
"sha256": "f6c318f1bee303313ea54da2a504ba5483ea2e0e94d450b24c44df0698a9af9e"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "3bfafdc481576a2c6a1a23570bed8b1f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 786326,
"upload_time": "2025-11-02T10:29:04",
"upload_time_iso_8601": "2025-11-02T10:29:04.796392Z",
"url": "https://files.pythonhosted.org/packages/ae/15/94d4e38050d7bb13cd45594b0044e3c3df7f484071315c3ea2a52cd91828/moocore-0.1.9-cp310-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ae8029fbd41355b81bb6782b4d2ace245186873030bf9907553ea3101a5b4cfa",
"md5": "86a0d7810daba74a579cb125ae3f593e",
"sha256": "6365c0b61b398c4710189bb9d5ecdfec34612c6ca49c52aebed1d64a4597dd99"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "86a0d7810daba74a579cb125ae3f593e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 778846,
"upload_time": "2025-11-02T10:29:06",
"upload_time_iso_8601": "2025-11-02T10:29:06.326215Z",
"url": "https://files.pythonhosted.org/packages/ae/80/29fbd41355b81bb6782b4d2ace245186873030bf9907553ea3101a5b4cfa/moocore-0.1.9-cp310-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2dd4039f3b8dbf821bc67e2f53852f3b07e9e6b09027accc31e47b41986a8508",
"md5": "ed35654d2e8bab6fe3e678e3b8efeabd",
"sha256": "b2628c9d9158bfcbc381f58e72e27861a781ebc24b3d51bdedae809be8c09072"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "ed35654d2e8bab6fe3e678e3b8efeabd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 498739,
"upload_time": "2025-11-02T10:29:07",
"upload_time_iso_8601": "2025-11-02T10:29:07.881807Z",
"url": "https://files.pythonhosted.org/packages/2d/d4/039f3b8dbf821bc67e2f53852f3b07e9e6b09027accc31e47b41986a8508/moocore-0.1.9-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cd192999b5abdb09c81f254f687a35da989fa0e4663a0aa68f173c36d940c392",
"md5": "470c5528160529524bdcda222cc6f534",
"sha256": "36cb7dc148e0a99c499af246161d098bc0dc2204a98838eaa6f3ebdd56216455"
},
"downloads": -1,
"filename": "moocore-0.1.9-cp310-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "470c5528160529524bdcda222cc6f534",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 487258,
"upload_time": "2025-11-02T10:29:09",
"upload_time_iso_8601": "2025-11-02T10:29:09.163578Z",
"url": "https://files.pythonhosted.org/packages/cd/19/2999b5abdb09c81f254f687a35da989fa0e4663a0aa68f173c36d940c392/moocore-0.1.9-cp310-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e6de854b4441995f0a6a0d792952d29becfd1a94346106dd50aa7da9dbab4a9f",
"md5": "32917ab7fde215499adbe2ed20b077ec",
"sha256": "ddcdb91e3c1b51b6558d4e20d8132f0ca169b72614ef656bebf0809638d1adbf"
},
"downloads": -1,
"filename": "moocore-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "32917ab7fde215499adbe2ed20b077ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 412785,
"upload_time": "2025-11-02T10:29:11",
"upload_time_iso_8601": "2025-11-02T10:29:11.671003Z",
"url": "https://files.pythonhosted.org/packages/e6/de/854b4441995f0a6a0d792952d29becfd1a94346106dd50aa7da9dbab4a9f/moocore-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-02 10:29:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "multi-objective",
"github_project": "moocore",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "moocore"
}