with `hypervolume_improvement` method based on a varying empirical front.

The front is either all kernels but one or based on the
`list_attribute` of `moes` (like `archive`) as given on
initialization.

Usage::
    >>> import comocma, cma
    >>> list_of_solvers_instances = comocma.get_cmas(13 * [5 * [0.4]], 0.7, {'verbose':-9})
    >>> fitness = comocma.FitFun(cma.ff.sphere, lambda x: cma.ff.sphere(x-1))
    >>> moes = comocma.Sofomore(list_of_solvers_instances, [11, 11])
    >>> moes.front_observed = IndicatorFront()
    >>> moes.optimize(fitness, iterations=47) # doctest:+ELLIPSIS
    Iterat #Fevals   Hypervolume   axis ratios   sigmas   min&max stds***
    >>> moes = comocma.Sofomore(list_of_solvers_instances, [11, 11])
    >>> moes.front_observed = IndicatorFront(list_attribute='archive')
    >>> moes.optimize(fitness, iterations=37) # doctest:+ELLIPSIS
    Iterat #Fevals   Hypervolume   axis ratios   sigmas   min&max stds***
    >>> moes.front_observed.set_kernel(moes[3], moes)
    >>> f_points = [moes.front_observed.hypervolume_improvement(point)
    ...             for point in moes[3]._last_offspring_f_values] 
Method __init__ getattr(moes, list_attribute) contains the list to create the front.
Method hypervolume_improvement Undocumented
Method set_kernel Set empirical front for evolving the given kernel.
def __init__(self, list_attribute=None, NDA=None):

getattr(moes, list_attribute) contains the list to create the front.

NDA is a non-dominated archive with a hypervolume_improvement method.

def hypervolume_improvement(self, point):
Undocumented
def set_kernel(self, kernel, moes, lazy=True):

Set empirical front for evolving the given kernel.

By default, make changes only when kernel has changed.

Details: moes.reference_point and, in case, its attribute with name self.list_attribute: str is used.

API Documentation for comocma, generated by pydoctor at 2020-04-18 16:47:06.