Science Score: 59.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
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
4 of 15 committers (26.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Repository
Python implementation of CMA-ES
Basic Info
- Host: GitHub
- Owner: CMA-ES
- License: other
- Language: Jupyter Notebook
- Default Branch: development
- Size: 7.45 MB
Statistics
- Stars: 1,213
- Watchers: 15
- Forks: 188
- Open Issues: 68
- Releases: 15
Metadata Files
README.md
pycma
[BibTeX] cite as:
Nikolaus Hansen, Youhei Akimoto, and Petr Baudis. CMA-ES/pycma on Github. Zenodo, DOI:10.5281/zenodo.2559634, February 2019.
pycma is a Python implementation of CMA-ES and a few related numerical optimization tools.
The Covariance Matrix Adaptation Evolution Strategy (CMA-ES) is a stochastic derivative-free numerical optimization algorithm for difficult (non-convex, ill-conditioned, multi-modal, rugged, noisy) optimization problems in continuous and mixed-integer search spaces.
Documentation and Getting Started (Links)
The
notebooksfolder provides example code in Jupyter notebooks, namelyHints for how to use this (kind of) optimization module in practice
Installation of the latest release
In a system shell, type
sh
python -m pip install cma
to install the latest release
from the Python Package Index (PyPI).
Type install -U instead of install to upgrade a current installation to the latest release.
The release link also provides more
installation hints and a quick start guide.
Installation from Github
The quick way (this requires git to be installed) to install the code from, for example, the development branch:
sh
pip install git+https://github.com/CMA-ES/pycma.git@development
The long way:
get the package
- either download and unzip the code by clicking the green button above
- or, with
gitinstalled, typegit clone https://github.com/CMA-ES/pycma.git
"install" the package
- either copy (or move) the
cmasource code folder into a folder which is in the Python path (e.g. the current folder) - or modify the Python path to point
to the folder where the
cmapackage folder can be found. In both cases,import cmaworks without any further installation. - or install the
cmapackage by typing
sh pip install -e .in the (pycma) folder where thecmapackage folder can be found. Moving thecmafolder away from its location invalidates this installation.- either copy (or move) the
It may be necessary to replace pip with python -m pip and/or prefixing
either of these with sudo.
Version History
-
- integer variables of candidate solutions are rounded (addressing also issue #286)
- moved main docstring from
fmintofmin2 - experimental plots for error estimates and sensitivities
- fix
numpyscalar type representations at various places - replace ineffective
use_archivesflag witharchive_sent_solutionsandarchive_after_sent
-
- a stand-alone boundary handling function wrapper
BoundDomainTransform - streamline plot docs, fix symlog plot with newest
matplotlib, plots display the value of.stop()and the version number - a few more minor fixes and improvements
- replace
setup.pywithpyproject.toml - Version
4.1.0(already since5a30571f) - move boundary handling into a separate module
- various small-ish fixes and improvements, in particular an edge case in the initialization of the Lagrange multipliers in the constraints handling
- a stand-alone boundary handling function wrapper
-
- majorly improved mixed-integer handling based on a more concise lower bound of variances and on so-called integer centering
- moved options and parameters code into a new file
- many small-ish fixes and improvements
-
- fix compatibility to
numpy2.0 (thanks to Sait Cakmak) - improved interface to
noise_handlerargument which acceptsTrueas value - improved interface to
ScaleCoordinatesnow also with lower and upper value mapping to [0, 1], see issue #210 - changed:
'ftarget'triggers with <= instead of < - assign
surrogateattribute (for the record) when callingfmin_lq_surr - various (minor) bug fixes
- various (small) improvements of the plots and their usability
- display iterations, evaluations and population size and termination criteria in the plots
- subtract any recorded x from the plotted x-values by
x_opt=index - plots are now versus iteration number instead of evaluations by default
- provide legacy
bbobbenchmarkswithout downloading - new:
CMADataLogger.zipallows sharing plotting data more easily by a zip file - new:
tolxstagnationtermination condition for when the incumbent seems stuck - new: collect restart terminations in
cma.evalution_strategy.all_stoppings - new:
stall_sigma_change_on_divergence_iterationsoption to stallsigmachange when the median fitness is worsening - new: limit active C update for integer variables
- new: provide a COCO single function
- fix compatibility to
Release
3.3.0implements- diagonal acceleration via diagonal decoding (option
CMA_diagonal_decoding, by default still off). fmin_lq_surr2for running the surrogate assisted lq-CMA-ES.optimization_tools.ShowInFolderto facilitate rapid experimentation.verb_disp_overwriteoption starts to overwrite the last line of the display output instead of continuing adding lines to avoid screen flooding with longish runs (off by default).- various smallish improvements, bug fixes and additional features and functions.
- diagonal acceleration via diagonal decoding (option
Release
3.2.2fixes some smallish interface and logging bugs inConstrainedFitnessALand a bug when printing a warning. Polishing mainly in the plotting functions. Added a notebook for how to use constraints.Release
3.2.1fixes plot of principal axes which were shown squared by mistake in version 3.2.0.Release
3.2.0provides a new interface for constrained optimizationConstrainedFitnessALandfmin_con2and many other minor fixes and improvements.Release
3.1.0fixes the return value offmin_con, improves its usability and provides abest_feasibleattribute inCMAEvolutionStrategy, in addition to various other more minor code fixes and improvements.Release
3.0.3provides parallelization withOOOptimizer.optimize(..., n_jobs=...)(fix for3.0.1/2) and improvedpicklesupport.Release
3.0.0provides non-linear constraints handling, improved plotting and termination options and better resilience to injecting bad solutions, and further various fixes.Version
2.7.1allows for a list of termination callbacks and a light copy ofCMAEvolutionStrategyinstances.Release
2.7.0logger now writes into a folder, new fitness model module, various fixes.Release
2.6.1allow possibly much larger condition numbers, fix corner case with growing more-to-write list.Release
2.6.0allows initial solutionx0to be a callable.Version
2.4.2added the functioncma.fmin2which, similar tocma.purecma.fmin, returns(x_best:numpy.ndarray, es:cma.CMAEvolutionStrategy)instead of a 10-tuple likecma.fmin. The result 10-tuple is accessible ines.result:namedtuple.Version
2.4.1includedbbobtestbed.Version
2.2.0added VkD CMA-ES to the master branch.Version
2.*is a multi-file split-up of the original module.Version
1.x.*is a one file implementation and not available in the history of this repository. The latest1.*version1.1.7can be found here.
Owner
- Name: CMA-ES
- Login: CMA-ES
- Kind: organization
- Repositories: 8
- Profile: https://github.com/CMA-ES
GitHub Events
Total
- Create event: 16
- Release event: 1
- Issues event: 45
- Watch event: 115
- Delete event: 15
- Issue comment event: 81
- Push event: 6
- Pull request review event: 4
- Pull request review comment event: 4
- Pull request event: 7
- Fork event: 10
Last Year
- Create event: 16
- Release event: 1
- Issues event: 45
- Watch event: 115
- Delete event: 15
- Issue comment event: 81
- Push event: 6
- Pull request review event: 4
- Pull request review comment event: 4
- Pull request event: 7
- Fork event: 10
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| nikohansen | n****n@i****r | 799 |
| Youhei Akimoto | y****o@s****p | 13 |
| ARF1 | A****1@g****b | 9 |
| Yoshihiko Ueno | w****e@h****p | 7 |
| Youhei Akimoto | y****o@Y****l | 7 |
| ARF1 | 5****1 | 6 |
| Sait Cakmak | s****k@f****m | 4 |
| Gabriela Suchopárová | g****a@g****m | 1 |
| Guillermo Abad López | 1****z | 1 |
| Kento Nozawa | k****w@k****p | 1 |
| Luca Rolshoven | l****n@s****h | 1 |
| Youhei Akimoto | y****i@g****m | 1 |
| brieglhostis | b****1@g****m | 1 |
| brockhof | d****f@i****r | 1 |
| Matthew Chan | c****y@m****a | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 170
- Total pull requests: 15
- Average time to close issues: 9 months
- Average time to close pull requests: 9 days
- Total issue authors: 85
- Total pull request authors: 11
- Average comments per issue: 1.76
- Average comments per pull request: 2.53
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 46
- Pull requests: 4
- Average time to close issues: about 2 months
- Average time to close pull requests: 7 days
- Issue authors: 16
- Pull request authors: 3
- Average comments per issue: 0.78
- Average comments per pull request: 2.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- nikohansen (69)
- Landau1908 (7)
- enajx (4)
- a-z-e-r-i-l-a (3)
- brockho (3)
- Cascol-SCUT (2)
- paulduf (2)
- salomonl (2)
- yhl48 (2)
- twoletters (1)
- LamNgo412 (1)
- david-woelfle (1)
- samimia-swks (1)
- shercklo (1)
- notajourney (1)
Pull Request Authors
- GuillermoAbadLopez (2)
- brieglhostis (2)
- saitcakmak (2)
- junghans (2)
- gabikadlecova (1)
- ARF1 (1)
- rolshoven (1)
- enajx (1)
- andrewleachtx (1)
- silvery107 (1)
- GaetanDesrues (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 16
-
Total downloads:
- pypi 585,393 last-month
- Total docker downloads: 24,434,450
-
Total dependent packages: 69
(may contain duplicates) -
Total dependent repositories: 362
(may contain duplicates) - Total versions: 55
- Total maintainers: 3
pypi.org: cma
CMA-ES, Covariance Matrix Adaptation Evolution Strategy for non-linear numerical optimization in Python
- Homepage: https://github.com/CMA-ES/pycma
- Documentation: https://cma.readthedocs.io/
- License: other
-
Latest release: 4.3.0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.18: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r1
published almost 3 years ago
Rankings
Maintainers (1)
alpine-v3.18: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r1
published almost 3 years ago
Rankings
Maintainers (1)
alpine-edge: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.3.0-r0
published 7 months ago
Rankings
Maintainers (1)
alpine-v3.17: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.2.2-r1
published over 3 years ago
Rankings
Maintainers (1)
alpine-edge: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.3.0-r0
published 7 months ago
Rankings
Maintainers (1)
conda-forge.org: cma
The Covariance Matrix Adaptation Evolution Strategy (CMA-ES) is a stochastic derivative-free numerical optimization algorithm for difficult (non-convex, ill-conditioned, multi-modal, rugged, noisy) optimization problems in continuous search spaces.
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.2.2
published over 3 years ago
Rankings
spack.io: py-cma
Python implementation of CMA-ES Covariance Matrix Adaptation Evolution Str ategy for non-linear numerical optimization in Python
- Homepage: https://github.com/CMA-ES/pycma
- License: []
-
Latest release: 3.3.0
published about 2 years ago
Rankings
Maintainers (1)
alpine-v3.19: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r2
published over 2 years ago
Rankings
alpine-v3.22: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.2.0-r0
published 9 months ago
Rankings
Maintainers (1)
alpine-v3.21: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.0.0-r0
published over 1 year ago
Rankings
Maintainers (1)
alpine-v3.20: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r3
published almost 2 years ago
Rankings
Maintainers (1)
alpine-v3.22: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.2.0-r0
published 9 months ago
Rankings
Maintainers (1)
alpine-v3.20: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r3
published almost 2 years ago
Rankings
Maintainers (1)
alpine-v3.19: py3-cma-pyc
Precompiled Python bytecode for py3-cma
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 3.3.0-r2
published over 2 years ago
Rankings
Maintainers (1)
alpine-v3.21: py3-cma
Python implementation of CMA-ES
- Homepage: https://github.com/CMA-ES/pycma
- License: BSD-3-Clause
-
Latest release: 4.0.0-r0
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- numpy *