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_improvementmethod based on a varying empirical front. | 
| Function | get_cmas | Factory function that produces len(x_starts)instances of typecmaKernel. | 
| Class | CmaKernel | inheriting from the cma.CMAEvolutionStrategyclass, by adding the propertyincumbent, the attributesobjective_valuesand_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.