--- id: cma version: "4.4.4" license: BSD-3-Clause license_treatment: permissive maintenance: active --- # cma — CMA-ES, Covariance Matrix Adaptation Evolution Strategy for non-linear numerical optimization in Python License: permissive · Maintenance: active · Downloads: 1.8M/mo ## What it is and what it does CMA-ES (Covariance Matrix Adaptation Evolution Strategy) is a randomized, derivative-free optimization algorithm implemented in Python for solving difficult continuous and mixed-integer optimization problems. It is designed for objective functions where gradients are unavailable or unhelpful, the search space has dependent variables, and the landscape may be non-convex, ill-conditioned, multi-modal, or noisy. The package provides two independent implementations via the CMAEvolutionStrategy class and a basic purecma.CMAES variant. The algorithm is most effective for problems with search space dimensions between five and a few hundred, requiring at least around 100 times the dimension in function evaluations. CMA-ES handles bound constraints, linear and nonlinear constraints, noise, and integer variables for mixed-integer problems. It offers both a direct optimization interface (fmin2) and an ask-and-tell interface for fine-grained control over the iteration loop. The package depends only on numpy for array operations. Use it for: - Optimize expensive black-box functions where gradients are unavailable or unreliable - Solve non-convex or multi-modal optimization problems in 5-100+ dimensions - Handle constrained optimization with bounds or nonlinear constraints - Tune hyperparameters or design parameters in machine learning or engineering workflows - Optimize noisy objective functions where derivative-based methods fail ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. CMA-ES is a derivative-free numerical optimization algorithm for difficult non-convex, multi-modal, or ill-conditioned optimization problems in continuous or mixed-integer search spaces. Yes. CMA-ES is a well-maintained, production-stable algorithm with no known vulnerabilities, low install friction, and permissive licensing. Install it if you need derivative-free optimization for difficult non-convex problems in moderate dimensions; skip it if you have gradients available or are optimizing in very small dimensions where faster methods exist. ## Install pip install cma uv add cma poetry add cma ## Installing cma Before you install: Low friction install with only numpy as a runtime dependency. Active maintenance with recent releases and a stable codebase. License in practice: BSD-3-Clause is a permissive license allowing commercial and private use with minimal restrictions. Quickstart: pip install cma import cma es = cma.CMAEvolutionStrategy(8 * [0], 0.5) xopt, es = cma.fmin2(cma.ff.rosen, 8 * [0], 0.5) Verify before relying: - Whether the package supports Python 3.10+ or has specific version constraints beyond 'Python 3' ## Package facts - License: BSD-3-Clause (permissive) - Python support: unspecified - Install friction: low - Maintenance: active - Downloads: 1.8M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags derivative-free optimization, CMA-ES algorithm, non-convex optimization, black-box optimization, evolutionary strategy, continuous optimization, multi-modal optimization, optimization, evolutionary-algorithm, black-box [View on SkillFed](https://skillfed.io/packages/cma) · [View on PyPI](https://pypi.org/project/cma/)