NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3476 most downloaded on PyPI
CMA-ES, Covariance Matrix Adaptation Evolution Strategy for non-linear numerical optimization in Python
Last release 21 days ago
13 Sep 2026
Release timing varies
gaps range from 3 weeks to 1.4 years
Most releases are documented
notes for 20 of 31 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
31 releases · first in 2014
console output now starts to overwrite the last line after 4 regular lines, see option verb_disp_overwrite which now expresses "number of lines"
4.5.0
verb_disp_overwrite which now expresses "number of lines"runs attribute in CMAEvolutionStrategyResult2all_stoppings and all_best module attributes with informationsigma_adaptation.pyAugmentedLagrangian constraints handler and initialization bug fixcma.evolution_strategy.TPA_dimension = 300 sets TPA as default step-size adaptationoptimization_tools.EvaluationsIterator to computes.figpolish and s.grid for convenienceCountWarnings instance deliver_warnings to control theOne column per quarter.
Release 4.4.4 fix the fix of issue 343 Full Changelog : r4.4.3...r4.4.4
Addressing issue 231 , failures in corner cases with large population size, by increasing the step-size damping of CSA and TPA. This seems also to imp
bbob-f24 in 10 and 20-D while worsening the performance on bbob-f23 in 10 and'TPA_dampfac' analogous to 'CSA_dampfac'.cma.utilities.math.test...more_algorithms sub-package containing purecma and CompactGA.experimentation module (requires import cma.experimentation).Full Changelog: r4.4.2...r4.4.3
add back the (deprecated) cma.constraints_handling.BoundTransform class which was missing since 4.1.0 , however, cma.BoundTransform is the recommended…
comocma):
cma.constraints_handling.BoundTransform class4.1.0, however, cma.BoundTransform is theOOOptimizer.optimize on self.resultmatplotlib>3.8.0.cma.fitness_functions.binary_foffset = 0 by default now)fmin2 accepts a constraints function as constraints keyword argument
4.4.1
fmin2 accepts a constraints function as constraints keyword argumentCMAEvolutionStrategyResult2 class which also contains the best feasible solutionreset_options method which also clears the current termination status.optimize() and of .result_pretty().stop() value displayed with cma.plotconstraints handling is available also in the ask -and- tell interface (addressing issues #258 , #287 , and #167 )
ask can ignore_integer_variables to not mutate integer variablescma.integer_centering.centering_on (by default True)cma.transformations.RoundIntegerVariables classutils.SolutionDict can behave like a queue toointeger variables of candidate solutions are rounded (addressing also issue
fmin to fmin2numpy scalar type representations at various placesuse_archives flag with archive_sent_solutionsarchive_after_sentRefactor boundary handling code, add BoundDomainTransform stand-alone…
Refactor boundary handling code, add BoundDomainTransform stand-alone…
majorly improved mixed-integer handling based on a more concise lower bound of variances and on so-called integer centering
see https://github.com/CMA-ES/pycma?tab=readme-ov-file#version-history
see https://github.com/CMA-ES/pycma?tab=readme-ov-file#version-history
Diagonal decoding, fmin functions with surrogate and more.
Diagonal decoding, fmin functions with surrogate and more.
Smallish fixes and improvements and a constraints use case notebook.
Smallish fixes and improvements and a constraints use case notebook.
fixes plot of principal axes which were shown squared by mistake
constraints handling via a dynamic unconstrained function instantiated from cma.ConstrainedFitnessAL.
cma.ConstrainedFitnessAL.fix return value of fmin_con and make it more usable, added attribute best_feasible
fmin_con and make it more usable, added attribute best_feasibleevolution_strategy.pyFix bug when passing args in OOOptimizer.optimize.
Fix bug when passing args in OOOptimizer.optimize.
fixed EvalParallel2 from r3.0.1
EvalParallel2 from r3.0.1EvalParallel2 allows to avoid multiprocessing all together, depending on the value of number_of_processesOOOptimizer.optimize can parallelize function calls (using EvalParallel2)constraints handling with an Augmented Lagrangian, see cma.fmin_con
cma.fmin_conx0 and sigma0 cannot be a string anymore, but x0 may be a callable (a function)cma.logger.Loggerimport cma.wrapperlogger.plot(addcols=1) plots additionally correlation and precision matrices (experimental)tolflatfitness termination option (replaces warnings/errors)tolfunrel termination option (deactivated by default)available at PyPI.
CMADataLogger code moved to its own logger module
CMADataLogger code moved to its own logger moduleoutcmaes by defaultcontour_data and semilogy_signed helper functionsfitness_transformations.EvalParallel2 class (different interface)fitness_models.LQModel introducedavailable at PyPI.
The initial solution x0 can be a callable now, which is useful e.g. for the restarted IPOP version.
The initial solution x0 can be a callable now, which is useful e.g. for the restarted IPOP version.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →