https://github.com/altaris/noisy-moo

A wrapper-based framework for pymoo problem modification.

https://github.com/altaris/noisy-moo

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords

multi-objective-optimization optimization optimization-algorithms pymoo python
Last synced: 5 months ago · JSON representation

Repository

A wrapper-based framework for pymoo problem modification.

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 2
Topics
multi-objective-optimization optimization optimization-algorithms pymoo python
Created over 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License

README.md

noisy-moo

Python 3 MIT License Code style Maintainability Documentation

The C O W

A wrapper-based framework for pymoo problem modification and algorithm benchmarking. Initially developed to test KNN-averaging[^quatic21].

Installation

Simply run sh pip install nmoo

Getting started

In a notebook

See example.ipynb for a quick example. Launch Google Colab
notebook

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 sh python -m nmoo run --verbose 10 example:make_benchmark Refer to sh python -m nmoo --help for more information.

Main submodules and classes

  • nmoo.benchmark.Benchmark: A Benchmark object 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 to nmoo.benchmark.Benchmark.__init__ for more details.
  • nmoo.wrapped_problem.WrappedProblem: The main idea of nmoo is to wrap problems in layers. Each layer should redefine pymoo.Problem._evaluate to intercept calls to the wrapped problem. It is then possible to apply/remove noise, keep a call history, log, etc.
  • nmoo.denoisers: Sublasses of nmoo.wrapped_problem.WrappedProblem that 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 of nmoo.wrapped_problem.WrappedProblem that apply noise.

Contributing

Dependencies

  • python3.8 or newer;
  • requirements.txt for runtime dependencies;
  • requirements.dev.txt for development dependencies (optional);
  • make (optional).

Simply run sh virtualenv venv -p python3.8 . ./venv/bin/activate pip install -r requirements.txt pip install -r requirements.dev.txt

Documentation

Simply run sh 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 sh make docs-browser

Code quality

Don't forget to run sh 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

Owner

  • Name: Cédric
  • Login: altaris
  • Kind: user
  • Location: Japan
  • Company: RIKEN

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 199
  • Total Committers: 3
  • Avg Commits per committer: 66.333
  • Development Distribution Score (DDS): 0.241
Top Committers
Name Email Commits
Cédric HT a****s@u****m 151
Cédric HT n****e@a****g 47
Stefan Klikovits k****s@n****p 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 9
  • Total pull requests: 0
  • Average time to close issues: 2 months
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 0
  • Average comments per issue: 0.44
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • stklik (5)
  • altaris (4)
Pull Request Authors
Top Labels
Issue Labels
enhancement (5) bug (3) wontfix (1) good first issue (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 15 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: nmoo

A wrapper-based framework for pymoo problem modification.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 15 Last month
Rankings
Dependent packages count: 6.6%
Average: 25.9%
Stargazers count: 28.2%
Forks count: 30.5%
Dependent repos count: 30.6%
Downloads: 33.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/gh-pages.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
requirements.dev.txt pypi
  • black * development
  • mypy * development
  • pdoc * development
  • pylint * development
requirements.txt pypi
  • click *
  • gradient-free-optimizers *
  • joblib *
  • loguru *
  • numpy *
  • pandas *
  • pymoo ==0.5.0
  • seaborn *
setup.py pypi