Recent Releases of cmaes
cmaes - v0.12.0
New Algorithms
CatCMA with Margin (GECCO2025) by @ha-mano
CatCMA with Margin (CatCMAwM) is a method for mixed-variable optimization problems, simultaneously optimizing continuous, integer, and categorical variables. CatCMAwM extends CatCMA by introducing a novel integer handling mechanism, and supports arbitrary combinations of continuous, integer, and categorical variables in a unified framework.
Source code
```python import numpy as np from cmaes import CatCMAwM def SphereIntCOM(x, z, c): return sum(x * x) + sum(z * z) + len(c) - sum(c[:, 0]) def SphereInt(x, z): return sum(x * x) + sum(z * z) def SphereCOM(x, c): return sum(x * x) + len(c) - sum(c[:, 0]) def f_cont_int_cat(): # [lower_bound, upper_bound] for each continuous variable X = [[-5, 5], [-5, 5]] # possible values for each integer variable Z = [[-1, 0, 1], [-2, -1, 0, 1, 2]] # number of categories for each categorical variable C = [3, 3] optimizer = CatCMAwM(x_space=X, z_space=Z, c_space=C) for generation in range(50): solutions = [] for _ in range(optimizer.population_size): sol = optimizer.ask() value = SphereIntCOM(sol.x, sol.z, sol.c) solutions.append((sol, value)) print(f"#{generation} {sol} evaluation: {value}") optimizer.tell(solutions) def f_cont_int(): # [lower_bound, upper_bound] for each continuous variable X = [[-np.inf, np.inf], [-np.inf, np.inf]] # possible values for each integer variable Z = [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]] # initial distribution parameters (Optional) # If you know a promising solution for X and Z, set init_mean to that value. init_mean = np.ones(len(X) + len(Z)) init_cov = np.diag(np.ones(len(X) + len(Z))) init_sigma = 1.0 optimizer = CatCMAwM( x_space=X, z_space=Z, mean=init_mean, cov=init_cov, sigma=init_sigma ) for generation in range(50): solutions = [] for _ in range(optimizer.population_size): sol = optimizer.ask() value = SphereInt(sol.x, sol.z) solutions.append((sol, value)) print(f"#{generation} {sol} evaluation: {value}") optimizer.tell(solutions) def f_cont_cat(): # [lower_bound, upper_bound] for each continuous variable X = [[-5, 5], [-5, 5]] # number of categories for each categorical variable C = [3, 5] # initial distribution parameters (Optional) init_cat_param = np.array( [ [0.5, 0.3, 0.2, 0.0, 0.0], # zero-padded at the end [0.2, 0.2, 0.2, 0.2, 0.2], # each row must sum to 1 ] ) optimizer = CatCMAwM(x_space=X, c_space=C, cat_param=init_cat_param) for generation in range(50): solutions = [] for _ in range(optimizer.population_size): sol = optimizer.ask() value = SphereCOM(sol.x, sol.c) solutions.append((sol, value)) print(f"#{generation} {sol} evaluation: {value}") optimizer.tell(solutions) if __name__ == "__main__": f_cont_int_cat() # f_cont_int() # f_cont_cat() ```We recommend using CatCMAwM for continuous+integer and continuous+categorical settings. In particular, [Hamano et al. 2025] shows that CatCMAwM outperforms CMA-ES with Margin in mixed-integer scenarios. Therefore, we suggest CatCMAwM in place of CMA-ES with Margin or CatCMA.
CMA-ES-SoP by (PPSN 2024) @kento031
CMA-ES on sets of points (CMA-ES-SoP) is a variant of CMA-ES for optimization on sets of points. In the optimization on sets of points, the search space consists of several disjoint subspaces containing multiple possible points where the objective function value can be computed. In the mixed-variable cases, some subspaces are continuous spaces. Note that the discrete subspaces with more than five dimensions require computational cost for the construction of the Voronoi diagrams.
Source code
```python import numpy as np from cmaes.cma_sop import CMASoP # numbers of dimensions in each subspace subspace_dim_list = [2, 3, 5] cont_dim = 10 # numbers of points in each subspace point_num_list = [10, 20, 40] # number of total dimensions dim = int(np.sum(subspace_dim_list) + cont_dim) # objective function def quadratic(x): coef = 1000 ** (np.arange(dim) / float(dim - 1)) return np.sum((coef * x) ** 2) # sets_of_points (on [-5, 5]) discrete_subspace_num = len(subspace_dim_list) sets_of_points = [( 2 * np.random.rand(point_num_list[i], subspace_dim_list[i]) - 1) * 5 for i in range(discrete_subspace_num)] # add the optimal solution (for benchmark function) for i in range(discrete_subspace_num): sets_of_points[i][-1] = np.zeros(subspace_dim_list[i]) np.random.shuffle(sets_of_points[i]) # optimizer (CMA-ES-SoP) optimizer = CMASoP( sets_of_points=sets_of_points, mean=np.random.rand(dim) * 4 + 1, sigma=2.0, ) best_eval = np.inf eval_count = 0 for generation in range(400): solutions = [] for _ in range(optimizer.population_size): # Ask a parameter x, enc_x = optimizer.ask() value = quadratic(enc_x) # save best eval best_eval = np.min((best_eval, value)) eval_count += 1 solutions.append((x, value)) # Tell evaluation values. optimizer.tell(solutions) print(f"#{generation} ({best_eval} {eval_count})") if best_eval < 1e-4 or optimizer.should_stop(): break ```Maximum a Posteriori CMA-ES (PPSN 2024) by @ha-mano
MAP-CMA is a method that is introduced to interpret the rank-one update in the CMA-ES from the perspective of the natural gradient. The rank-one update derived from the natural gradient perspective is extensible, and an additional term, called momentum update, appears in the update of the mean vector. The performance of MAP-CMA is not significantly different from that of CMA-ES, as the primary motivation for MAP-CMA comes from the theoretical understanding of CMA-ES.
Source code
```python import numpy as np from cmaes import MAPCMA def rosenbrock(x): dim = len(x) if dim < 2: raise ValueError("dimension must be greater one") return sum(100 * (x[:-1] ** 2 - x[1:]) ** 2 + (x[:-1] - 1) ** 2) if __name__ == "__main__": dim = 20 optimizer = MAPCMA(mean=np.zeros(dim), sigma=0.5, momentum_r=dim) print(" evals f(x)") print("====== ==========") evals = 0 while True: solutions = [] for _ in range(optimizer.population_size): x = optimizer.ask() value = rosenbrock(x) evals += 1 solutions.append((x, value)) if evals % 1000 == 0: print(f"{evals:5d} {value:10.5f}") optimizer.tell(solutions) if optimizer.should_stop(): break ```Safe CMA-ES (GECCO 2024) by @kento031
Safe CMA-ES is a variant of CMA-ES for safe optimization. Safe optimization is formulated as a special type of constrained optimization problem aiming to solve the optimization problem with fewer evaluations of the solutions whose safety function values exceed the safety thresholds. The safe CMA-ES requires safe seeds that do not violate the safety constraints. Note that the safe CMA-ES is designed for noiseless safe optimization. This module needs torch and gpytorch.
Source code
```python import numpy as np from cmaes.safe_cma import SafeCMA # objective function def quadratic(x): coef = 1000 ** (np.arange(dim) / float(dim - 1)) return np.sum((x * coef) ** 2) # safety function def safe_function(x): return x[0] """ example with a single safety function """ if __name__ == "__main__": # number of dimensions dim = 5 # safe seeds safe_seeds_num = 10 safe_seeds = (np.random.rand(safe_seeds_num, dim) * 2 - 1) * 5 safe_seeds[:,0] = - np.abs(safe_seeds[:,0]) # evaluation of safe seeds (with a single safety function) seeds_evals = np.array([ quadratic(x) for x in safe_seeds ]) seeds_safe_evals = np.stack([ [safe_function(x)] for x in safe_seeds ]) safety_threshold = np.array([0]) # optimizer (safe CMA-ES) optimizer = SafeCMA( sigma=1., safety_threshold=safety_threshold, safe_seeds=safe_seeds, seeds_evals=seeds_evals, seeds_safe_evals=seeds_safe_evals, ) unsafe_eval_counts = 0 best_eval = np.inf for generation in range(400): solutions = [] for _ in range(optimizer.population_size): # Ask a parameter x = optimizer.ask() value = quadratic(x) safe_value = np.array([safe_function(x)]) # save best eval best_eval = np.min((best_eval, value)) unsafe_eval_counts += (safe_value > safety_threshold) solutions.append((x, value, safe_value)) # Tell evaluation values. optimizer.tell(solutions) print(f"#{generation} ({best_eval} {unsafe_eval_counts})") if optimizer.should_stop(): break ```What's Changed
- Fix the broken link to Katib documentation by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/188
- MAP-CMA (PPSN2024) by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/186
- Add tests for free-threaded python by @porink0424 in https://github.com/CyberAgentAILab/cmaes/pull/189
- [Proposal] Support 1D search space in CMA-ES by @y0z in https://github.com/CyberAgentAILab/cmaes/pull/190
- Fix mypy type error in workflow by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/195
- Safe CMA-ES (GECCO 2024) by @kento031 in https://github.com/CyberAgentAILab/cmaes/pull/187
- Update README.md by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/198
- Update pyproject.toml by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/199
- fix the discretization process of CMA-ESwM by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/191
- Remove unnecessary 'global' declarations causing flake8 F824 errors by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/200
- Update pyproject.toml by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/201
- CatCMA with Margin (GECCO2025) by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/203
- CMA-ES-SoP (PPSN 2024) by @kento031 in https://github.com/CyberAgentAILab/cmaes/pull/196
- Remove
<details>tags hiding variant algorithm descriptions by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/205 - Update supported Python versions by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/206
- Bump up the version to v0.12.0 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/204
New Contributors
- @y0z made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/190
- @kento031 made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/187
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.11.1...v0.12.0
- Python
Published by github-actions[bot] 10 months ago
cmaes - v0.11.1
What's Changed
- fix the weight of CatCMA by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/184
- Bump the version up to
v0.11.1by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/185
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.11.0...v0.11.1
PyPI: https://pypi.org/project/cmaes/0.11.1/
- Python
Published by github-actions[bot] almost 2 years ago
cmaes - v0.11.0
Highlights
CatCMA [Hamano+, GECCO2024]
arXiv: https://arxiv.org/pdf/2405.09962
CatCMA is a method for mixed-category optimization problems, which is the problem of simultaneously optimizing continuous and categorical variables. CatCMA employs the joint probability distribution of multivariate Gaussian and categorical distributions as the search distribution.
Usage is like below:
```python import numpy as np from cmaes import CatCMA
def spherecom(x, c): dimco = len(x) dimca = len(c) if dimco < 2: raise ValueError("dimension must be greater one") sphere = sum(x * x) com = dim_ca - sum(c[:, 0]) return sphere + com
def rosenbrockclo(x, c): dimco = len(x) dimca = len(c) if dimco < 2: raise ValueError("dimension must be greater one") rosenbrock = sum(100 * (x[:-1] ** 2 - x[1:]) ** 2 + (x[:-1] - 1) ** 2) clo = dimca - (c[:, 0].argmin() + c[:, 0].prod() * dimca) return rosenbrock + clo
def mcproximity(x, c, catnum): dimco = len(x) dimca = len(c) if dimco < 2: raise ValueError("dimension must be greater one") if dimco != dimca: raise ValueError( "number of dimensions of continuous and categorical variables " "must be equal in mcproximity" )
c_index = np.argmax(c, axis=1) / cat_num
return sum((x - c_index) ** 2) + sum(c_index)
if name == "main": contdim = 5 catdim = 5 catnum = np.array([3, 4, 5, 5, 5]) # catnum = 3 * np.ones(catdim, dtype=np.int64) optimizer = CatCMA(mean=3.0 * np.ones(contdim), sigma=1.0, catnum=catnum)
for generation in range(200):
solutions = []
for _ in range(optimizer.population_size):
x, c = optimizer.ask()
value = mc_proximity(x, c, cat_num)
if generation % 10 == 0:
print(f"#{generation} {value}")
solutions.append(((x, c), value))
optimizer.tell(solutions)
if optimizer.should_stop():
break
```
What's Changed
- Add support for Python 3.12 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/153
- Remove
setup.pyand use build module by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/154 - Fix CI failures by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/158
- get mean by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/159
- add question template by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/162
- fix sigma setting by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/160
- Add GitHub action setting for continuous benchmark by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/168
- fix typo by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/169
- fix BIPOP-CMA in visualization by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/170
- update readme by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/171
- update by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/172
- fix the oldsigma assertion when lradapt=True by @Kreyparion in https://github.com/CyberAgentAILab/cmaes/pull/174
- remove kurobako dependency by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/175
- Support for numpy v2.0 by @porink0424 in https://github.com/CyberAgentAILab/cmaes/pull/177
- catcma (GECCO2024) by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/178
- fix CatCMA by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/179
- Update README.md by @ha-mano in https://github.com/CyberAgentAILab/cmaes/pull/181
- Bump the version up to
v0.11.0by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/183
New Contributors
- @Kreyparion made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/174
- @porink0424 made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/177
- @ha-mano made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/178
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.10.0...v0.11.0
- Python
Published by github-actions[bot] almost 2 years ago
cmaes - v0.10.0
What's Changed
- add DX-NES-IC by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/149
- xNES implementation by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/150
- add LRA-CMA-ES by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/151
- Bump the version up to v0.10.0 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/152
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.9.1...v0.10.0
- PyPI: https://github.com/CyberAgentAILab/cmaes/blob/main/.github/workflows/pypi-publish.yml
- Python
Published by github-actions[bot] almost 3 years ago
cmaes - v0.9.1
What's Changed
- Remove
tox.iniby @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/131 - Fix a broken link to Optuna's documentation by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/132
- Drop Python 3.6 support. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/130
- Reuse
CMAinsideCMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/133 - Add rng related methods by @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/135
- Fix correction of out-of-range continuous params of
CMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/134 - Fix correction of out-of-range discrete params of
CMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/136 - Avoid to use
typing.List,typing.Dict, andtyping.Tuple. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/139 - Check feasibility of sampled discrete parameters in
CMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/140 - Refactor
CMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/141 - Add a test case for no discrete spaces. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/143
- Allow no discrete spaces in
CMAwMby @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/142 - Remove warnings in CMAwM class by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/144
- Revert handling of infeasible discrete parameters by @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/145
- Bump the version up to v0.9.1 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/138
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.9.0...v0.9.1
- Python
Published by github-actions[bot] over 3 years ago
cmaes - v0.9.0
Highlights
CMA-ES with Margin is now available. It introduces a lower bound on the marginal probability associated with each discrete dimension so that samples can avoid being fixed to a single point. It can be applied to mixed spaces of continuous (float) and discrete (including integer and binary). This algorithm is proposed by Hamano, Saito, @nomuramasahir0 (a maintainer of this library), and Shirakawa, has been nominated as best paper at GECCO'22 ENUM track.
|CMA-ES|CMA-ESwM| |---|---| |
|
|
The above figures are taken from EvoConJP/CMA-ESwithMargin.
Please check out the following examples for the usage.
What's Changed
- Running benchmark of Warm Starting CMA-ES on GitHub Actions. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/99
- Validate bounds domain contains mean by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/100
- Fix overflow errors uncovered by Coverage-guided Fuzzing. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/104
- Fuzzing for sep-CMA-ES by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/105
- Set license_file on setup.cfg by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/106
- fix sep-CMA description by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/107
- Temporarily disable a GitHub action for kurobako benchmarks by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/113
- Fix mutable by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/112
- Run tests with Python 3.10 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/109
- Update author and maintainer package info. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/116
- Introduce some related projects on README by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/118
- Migrate the project metadata to pyproject.toml by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/119
- Revert #119 to support Python 3.6. by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/122
- Support CMA-ES with Margin. by @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/121
- Add integer examples for CMA-ES with Margin by @nomuramasahir0 in https://github.com/CyberAgentAILab/cmaes/pull/125
- Support Python 3.11 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/123
- Add README of CMA-ES with margin by @knshnb in https://github.com/CyberAgentAILab/cmaes/pull/124
- Follow-up #126: Remove Scipy dependency by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/127
- Remove SciPy dependency by @amylase in https://github.com/CyberAgentAILab/cmaes/pull/126
- Use gh instead of ghr by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/128
- Bump the version up to v0.9.0 by @c-bata in https://github.com/CyberAgentAILab/cmaes/pull/129
New Contributors
- @knshnb made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/121
- @amylase made their first contribution in https://github.com/CyberAgentAILab/cmaes/pull/126
References
Full Changelog: https://github.com/CyberAgentAILab/cmaes/compare/v0.8.2...v0.9.0
- Python
Published by github-actions[bot] over 3 years ago
cmaes - v0.8.0
CHANGES
New features
Warm-starting CMA-ES is now available. It estimates a promising distribution, then generates parameters of the multivariate gaussian distribution used for the initialization of CMA-ES, so that you can exploit optimization results from a similar optimization task. This algorithm is proposed by @nmasahiro, a maintainer of this library, and accepted at AAAI 2021.
| Rot Ellipsoid | Ellipsoid |
| ---------------------- | ------------------ |
|
|
|
Link
- PyPI: https://pypi.org/project/cmaes/0.8.0/
- Python
Published by github-actions[bot] over 5 years ago
cmaes - v0.7.0
CHANGES
New features
Separable CMA-ES is added at https://github.com/CyberAgent/cmaes/pull/82. It accelerates the search by ignoring the dependency of variables. This is inefficient if there is a strong dependency between variables; however, this technique significantly improves the performance if the dependency can be ignored.
| Benchmark |
| --- |
|
|
Dependency
- Drop Python 3.5 support (#74)
Links
- PyPI: https://pypi.org/project/cmaes/0.7.0/
- Python
Published by c-bata over 5 years ago
cmaes - Release v0.6.0
CHANGES
New features
should_stop() method which checks some termination criterion is added. You can easily implement IPOP-CMA-ES (#50) and BIPOP-CMA-ES (#54) by using this API. These algorithms performs well on multi-modal functions (See the benchmark of #58).
| IPOP-CMA-ES | BIPOP-CMA-ES |
| --- | --- |
|
|
|
- Auger, A., Hansen, N.: A restart CMA evolution strategy with increasing population size. In: Proceedings of the 2005 IEEE Congress on Evolutionary Computation (CEC’2005), pp. 1769–1776 (2005a)
- Hansen N. Benchmarking a BI-Population CMA-ES on the BBOB-2009 Function Testbed. In the workshop Proceedings of the Genetic and Evolutionary Computation Conference, GECCO, pages 2389–2395. ACM, 2009.
Remove Optuna sampler.
Remove CMASampler(deprecated at v0.4.0) and monkeypatch (deprecated at v0.5.0) for Optuna.
Please use Optuna's official CMA-ES sampler which will be stabled at v2.0.0. You can quickly migrated to Optuna's official sampler by replacing your imports with optuna.samplers.CmaEsSampler(). See the documentation for details.
Deprecate cmaes.cma module.
cmaes.cma module is now deprecated. Please import CMA class from the package root (#46).
python
from cmaes.cma import CMA # Deprecated!
↓
from cmaes import CMA # Do this!
Link
- PyPI: https://pypi.org/project/cmaes/0.6.0/
- Python
Published by c-bata almost 6 years ago
cmaes - Release v0.5.1
CHANGES
Bug fixes
- Fix numerical overflow errors (simplified version of #34) (#41, thanks @HideakiImamura).
Links
- PyPI: https://pypi.org/project/cmaes/0.5.1/
- Python
Published by c-bata almost 6 years ago
cmaes - Release v0.5.0
CHANGES
Bug fixes
- Fix numerical overflow errors (#31)
Optuna's sampler interface
- Deprecate
patch_fast_itersection_search_space(#28) - Use
suggest_float()APIs (#25)
Links
- PyPI: https://pypi.org/project/cmaes/0.5.0/
- Python
Published by c-bata about 6 years ago
cmaes - Release v0.4.0
CHANGES
CMASampler is deprecated because it is ported to optuna.samplers.CmaEsSampler from Optuna v1.3.0.
optuna.samplers.CmaEsSampler is about 2-times slower than CMASampler. If you want to make it faster, please call cmaes.monkeypatch.patch_fast_intersection_search_space() before running study.optimize().
New features
- Monkeypatch for faster intersection search space (#20)
- Support step argument on IntUniformDistribution (#21)
API Changes
- Deprecate CMASampler (#22)
Bug fixes
- Fix scale of log uniform distribution of CMASampler (#16)
- Python
Published by c-bata about 6 years ago
cmaes - Release v0.3.2
PyPI: https://pypi.org/project/cmaes/0.3.2/
CHANGES
API changes
- CMA provides
dimproperty method for the number of dimensions. - CMA provides
set_boundsmethod to update boundary constraints.
Bug fixes
- Disable when search_space is changed.
- Python
Published by c-bata about 6 years ago
cmaes - Release v0.3.1
PyPI: https://pypi.org/project/cmaes/0.3.1/
CHANGES
Improvements
- Python 3.5 support.
- Add docstring.
- Python
Published by c-bata over 6 years ago
cmaes - Release v0.3.0
CHANGES
PyPI: https://pypi.org/project/cmaes/0.3.0/
Improvements
- Reduce memory usage.
- Repair infeasible parameters when exceeds a resampling limit.
Bug fixes
- Fixed a bug when using RDB storage.
- Fixed an arithmetic overflow of the covariance matrix.
- Python
Published by c-bata over 6 years ago
|
|