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.