noisy-moo
A wrapper-based framework for pymoo problem modification and algorithm benchmarking. Initially developed to test KNN-averaging1.
Installation
Simply run
pip install nmoo
Getting started
In a notebook
See
example.ipynb
for a quick example.
For larger benchmarks
For larger benchmarks, you may want to use nmoo's CLI. First, create a module,
say example.py,
containing your benchmark factory (a function that returns your
benchrmark),
say make_benchmark(). Then, run it using
python -m nmoo run --verbose 10 example:make_benchmark
Refer to
python -m nmoo --help
for more information.
Main submodules and classes
nmoo.benchmark.Benchmark: ABenchmarkobject represents... a benchmark 🤔. At construction, you can specify problems and algorithms to run, how many times to run them, what performance indicators to compute, etc. Refer tonmoo.benchmark.Benchmark.__init__for more details.nmoo.wrapped_problem.WrappedProblem: The main idea ofnmoois to wrap problems in layers. Each layer should redefinepymoo.Problem._evaluateto intercept calls to the wrapped problem. It is then possible to apply/remove noise, keep a call history, log, etc.nmoo.denoisers: Sublasses ofnmoo.wrapped_problem.WrappedProblemthat implement denoising algorithms. In a simple scenario, a synthetic problem would be wrapped in a noise layer, and further wrapped in a denoising layer to test the performance of the latter.nmoo.noises: Sublasses ofnmoo.wrapped_problem.WrappedProblemthat apply noise.
Contributing
Dependencies
python3.8or newer;requirements.txtfor runtime dependencies;requirements.dev.txtfor development dependencies (optional);make(optional).
Simply run
virtualenv venv -p python3.8
. ./venv/bin/activate
pip install -r requirements.txt
pip install -r requirements.dev.txt
Documentation
Simply run
make docs
This will generate the HTML doc of the project, and the index file should be at
docs/index.html. To have it directly in your browser, run
make docs-browser
Code quality
Don't forget to run
make
to format the code following black, typecheck it using mypy, and check it against coding standards using pylint.
-
Klikovits, S., Arcaini, P. (2021). KNN-Averaging for Noisy Multi-objective Optimisation. In: Paiva, A.C.R., Cavalli, A.R., Ventura Martins, P., Pérez-Castillo, R. (eds) Quality of Information and Communications Technology. QUATIC 2021. Communications in Computer and Information Science, vol 1439. Springer, Cham. https://doi.org/10.1007/978-3-030-85347-1_36 ↩
Release files for nmoo 5.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nmoo-5.1.0.tar.gz | 41.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nmoo-5.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.8 kB
Release files / nmoo-5.1.0.tar.gz
| Download URL | nmoo-5.1.0.tar.gz |
|---|---|
| Size | 41.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
631960c7b5f49e115f0ac4e9209bef8bdccea3f4a94aacc895a2e5383c6ca9d8
|
|
BLAKE2b-256 checksum How to use checksums |
645e503edea005ae1b2d200cd124c12c0a0e3ae849bdfd73341cb0ca5619cbde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / nmoo-5.1.0-py3-none-any.whl
| Download URL | nmoo-5.1.0-py3-none-any.whl |
|---|---|
| Size | 50.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06fa0af952dbf098e67670f33a0bdc05f66cad447ee30dbd17d4c075a39d7e18
|
|
BLAKE2b-256 checksum How to use checksums |
fc6101a9cfbc5120c6ac159e4f738782740c206326cee644ce2f334a71293df4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|