comocma.como module documentationcomocma
This module contains the implementation of the Multiobjective framework called
Sofomore, and its instantiation with cma-es to obtain COMO-CMA-ES, defined in
the paper [Toure, Cheikh, et al. "Uncrowded Hypervolume Improvement:
COMO-CMA-ES and the Sofomore framework."
GECCO'19-Genetic and Evolutionary Computation Conference. 2019.].
Only the bi-objective framework is functional and has been thoroughly tested.
| Class | Sofomore | No summary |
| Class | IndicatorFront | with hypervolume_improvement method based on a varying empirical front. |
| Function | get_cmas | Factory function that produces len(x_starts) instances of type cmaKernel. |
| Class | CmaKernel | inheriting from the cma.CMAEvolutionStrategy class, by adding the property incumbent, the attributes objective_values and _last_offspring_f_values. |
| Class | FitFun | Define a callable multiobjective function from single objective ones. Example: fitness = comocma.FitFun(cma.ff.sphere, lambda x: cma.ff.sphere(x-1)). |
| Function | sort_random | No summary |
| Function | sort_increasing | No summary |
| Function | sort_decreasing | No summary |
| Function | sort_even_odds | No summary |
| Function | sort_odds_even | No summary |
Factory function that produces `len(x_starts)` instances of type `cmaKernel`.
Parameters
----------
x_starts : TYPE list or list of lists or list of or ndarrays or ndarray
The initial means of the returned cmas.
sigma_starts : TYPE float or list of floats
The initial step-sizes of the returned cmas.
inopts : TYPE dict or list of dicts, optional
The cmas' options.
number_created_kernels : TYPE int, optional
Used as the starting index for the returned cma's names.
The values of the options' key 'verb_filenameprefix' rely upon this
argument `number_created_kernels`.
Returns
-------
A list of `CmaKernel` instances.
Example::
>>> import comocma
>>> dimension = 10
>>> sigma0 = 0.5
>>> num_kernels = 11
>>> cma_opts = {'tolx': 10**-4, 'popsize': 32}
>>> list_of_solvers = comocma.get_cmas(num_kernels * [dimension * [0]], sigma0, cma_opts)
produce `num_kernels` cma instances.
Used for the update order of a Sofomore instance.
Example::
moes = Sofomore(list_of_instances, reference_point, {'update_order': sort_random})
randomly picks the kernels to update in the `tell` method of Sofomore.
Example::
moes = Sofomore(list_of_instances, reference_point, {'update_order': sort_increasing})
updates respectively `self[0]`, `self[1]`, ..., `self[-1]`
in the `tell` method of Sofomore.
Example::
moes = Sofomore(list_of_instances, reference_point, {'update_order': sort_decreasing})
updates respectively `self[-1]`, `self[-2]`, ..., `self[0]`
in the `tell` method of Sofomore.