A wrapper-based framework for pymoo problem modification.
Project description
noisy-moo
A wrapper-based framework for pymoo problem modification and algorithm benchmarking. Initially developed to test KNN-averaging[^quatic21].
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.
[^quatic21]: 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nmoo-5.1.0.tar.gz.
File metadata
- Download URL: nmoo-5.1.0.tar.gz
- Upload date:
- Size: 41.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
631960c7b5f49e115f0ac4e9209bef8bdccea3f4a94aacc895a2e5383c6ca9d8
|
|
| MD5 |
a6d177338e62140c32dbed87deb9bbf7
|
|
| BLAKE2b-256 |
645e503edea005ae1b2d200cd124c12c0a0e3ae849bdfd73341cb0ca5619cbde
|
File details
Details for the file nmoo-5.1.0-py3-none-any.whl.
File metadata
- Download URL: nmoo-5.1.0-py3-none-any.whl
- Upload date:
- Size: 50.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06fa0af952dbf098e67670f33a0bdc05f66cad447ee30dbd17d4c075a39d7e18
|
|
| MD5 |
40019a228e7666059b25cf774ec48fb0
|
|
| BLAKE2b-256 |
fc6101a9cfbc5120c6ac159e4f738782740c206326cee644ce2f334a71293df4
|